GitHub Issues Tracker reporting and analytics (Project Management Reporting and Analytics)
Dec 10, 2013: Check out https://github.com/StephenOTT/GitHub-Time-Tracking for Time Tracking with GitHub Issue Tracker, Milestones, and Code Commits
Dec 1, 2013: Make sure to add the following commit/code to Sewyer gem for proper JSON response. This is needed because of the way that GitHub Octokit.rb 2.x returns its responses as Sewyer::Reponses
–https://github.com/lostisland/sawyer/pull/15
I welcome any and all feedback!!! Please post a issue, question or pull request!!
Downloads issues their comments from GitHub repositories into a mongodb database.
Analytics are then run on the issues and comments in the mongodb database.
Primary use at this point is project management based analytics that are not currently available on GitHub.com
New::: Support for downloading multiple repositories into the same database allowing analysis of multiple repositories at the same time: EXAMPLE:
Register/Create a Application at https://github.com/settings/applications/new. Set your fields to the following:
1.1. Homepage URL: http://localhost:9292
1.2. Authorization callback URL: http://localhost:9292/auth/github/callback
1.3. Application Name: GitHub-Analytics
or whatever you want to call your application.
Install MongoDB (typically: brew update
, followed by: brew install mongodb
)
cd
into the app
folder and run the following commands in the app
folder:
3.1. Run mongod
in terminal
3.2. Open a second terminal window and run: bundle install
3.3.GITHUB_CLIENT_ID="YOUR CLIENT ID" GITHUB_CLIENT_SECRET="YOUR CLIENT SECRET" bundle exec rackup
Get the Client ID and Client Secret from the settings of your created/registered GitHub Application in Step 1.
Go to http://localhost:9292
Github Analytics: Ruby Ottawa Meetup (http://bit.ly/1cVFe9s)
##Screenshots:
##Process Overview:
1.1. Group issues assigned to each user across multiple repositories
Time Reporting.
using the emoji :alarm_clock:
plus a DateTime format such as Feb 2, 2013 3pm or any sort of combination a email notification would be created to notify the user as a reminder. Could be used about tasks, due dates, milestones, label changes, etc.
Using the :clock1:
or any version of the clock emoji to provide time tracking. Example would be :clock1: 2h
. This would signify 2h of work spend on the issue done by the following user. Adding additional features like: :clock: 2h Sept 22, 2014
or other variations would provide time details time tracking down to dates, time of day etc.
4.1. Using the Clock Emoji we can extend the details that can posted. Example you could include categorization information, comments, descriptions, followups, etc.
Labels Assignment across multiple Repositories.
History of Label Assignment per issue.
6.1. Using the history of label assignment per issue, you can use labels such as “25% Complete”, “50% Complete”, “75% Complete”, etc to show a history of a specific issues timeline from start to completion in terms of perceived % completed. This helps with post-launch reviews, and with analysis of problematic issues.
7.1. History of percentage complete of a Milestone
Break down of GFM Task Lists per users and aggregate per repo and across multiple repos
History of Issue Assignment per issue.
Issues Closed (Count) per user.
Total comments made per user.
Breakdown of comments made referencing other users per user
Issues per milestone.
Duration of issues open.
Avg time issues open/Time is takes to close.
Character count per post: avg per user, per issue, etc.
Issues opened and closed per min, hour, day, week, month, quarter, year.
Issues being watched
Most popular issues (most watched, most commented, etc)
Issues assigned to users
Counts of issues that are assigned to users and closed by the same user
Number of times issues are opened and closed repeatedly.
Sentiment analysis of issues and comments for that issue
Labels analysis
Assignment changes of issues: Visual of issue assignment changes per user and timeframe
Printable table breakdown of issues assigned to each user
Printable table breakdown of weekly activity metrics of specific users: HIGHLY used by old school PMs that staff often report to.
Milestone changes (Event Analysis) - Changes of milestone
Analysis of URLs being used in issues and comments (popular url mentions, number of github issues uploads etc)
Analysis of number of comments per issues before they are closed.
Analysis of Popular labels (has cloud implications if analysis becomes a service you could analyze popular labels across repos as well as their usage.
Comment Streaks and Issue Creation/Close streaks
Emoticon usage: PMs could say to use specific emoticons when they want to support something like “+1”, and this can be tallied.
Task counts and usage analysis.
Events Analysis: Modification of Issues and Comments
Deleted comments: when, by who, whos posts, their own posts? etc.
Pintrest style breakdown of images in comments with links back to comments/issues and context for specific image.
Cross-Issue reference usage. Most referenced Issues. Timeframe breakdown
Pie charts of issues and label assignment
Analysis of issues with more than one label
Analysis of Events and Label assignment
Change in milestone due dates
Change in milestone number of issues and %completed over time (line graph (%completed and time/dates)
Analysis of users on which teams: duration, added, removed dates, etc.
Breakdown of Repo Activity at high level: starts, forks, issues opened, closed, commits, etc. Exec style printable report that provides a high level overview for review when in high level meetings.
Pull Requests: when, by who, refs of other issues, comments made, duration open, amount of code etc.
Creation of new repos
deletion of repos
Repos analysis: languages, teams, branches, tags, deletions of repos, contributors, etc. Meant to be high level for reporting.
bar graph is issue activity (number of posts broken down by time)
Add special characters to GitHub post + time value to do time tracking within issues. Github GFM text does not show all text.
Track Thanks yous. Tracking when a user submits a pull request or issue and people thank you for submitting. See if that person is more likely to submit another issue/pull request (because people thanked them they are more likely to submit more requests/issues in the future).
Use new BETA feature of MongoDB for Text Analysis/Text Search for providing Time Tracking feature. Use invisible text in issues (html comments) to provide time tracking capability
View issues from multiple repositories with labels and milestones to provide PMs with high level overview of priority issues
Most Referenced Issues
Most Referenced Users
Most Referenced Repos
Compare Followers of 2 or more users. See which followers they have in common.
Compare Stared Repos of 2 or more users: The Repos the users have Stared. See which Repos they users have in common.
##Events Analysis:
–
–
Printable Issue queues for PMs with spikelines shows activity:
–
Issues Count Assigned to specific users + unassigned count:
–
Issue Events Timeline (This is all issue events for all issues grouped together)
–
Pie chart of Issue Event Types - All Issue events for all issues
https://github.com/StephenOTT/GitHub-Analytics/issues/1#issuecomment-29685800
With some simple modifications for uploading to GitHub rather than just downloading from GitHub, a full GitHub “Backup your Repo” solution can be provided. Backup.co is currently providing a private beta for this. This would be a easy solution to provide
Time Tracking. Using GFM and text searching on the DB side we can gather time tracking information Added as part of GitHub-Time-Tracking Web App.
Network Analysis of GitHub Issues to show network graph of issue mentions and use mentions. This can show dependencies within the project/issue tracker and show who is the most popular user to be mentioned for types of issues. This would produce very interesting graphics for large projects.
Provide CSV, Excel, JSON, etc upload capability to GitHub Issue Tracker. This would build off of number 1 above but would also provide the added benefit for groups to generate issues based on something like an Excel file. (Other projects have accomplished this already)
“Project Templates” - A series of issues, milestones, and labels that are created and applied in a repo for when a new project is started. These would be customizable based on the company’s/organization’s specific project methodology and process.
Repo Comparisons - Allows you to select 2 or more Repos and be provided with comparative stats (issues, users, stars, languages, labels, activity, Git Stats, Keywords, Revision Activity, similar users, similar code, Gems/Libraries/etc used, similar dependencies
Have a ability to grab all of the users stats about their system when creating an issue in GitHub. Stats like: Device, browser, resolution, browser version, OS, etc.