This Golang program generates a graphical representation (SVG) of commit activity by hour for any number of GitHub repositories.
It can also filter commits by a specific user or email.
There is also a similar version in Bash in the HariSekhon/DevOps-Bash-tools repo.
- Fetch commits from multiple GitHub repositories
- Visualize commits by hour (0-23)
- Option to filter commits by username or email
- Saves output as an SVG graph
go run main.go <username>
eg.
go run main.go harisekhon
To compile a portable binary:
make build
Will fetch all public non-fork repos and for each one the commit log to generate the commits for the graph.
./github-graph-commit-times harisekhon
graph.svg
:
...and there is no way to know the original timezone of the programmer this way.
Scripts git/git_graph_commit_times_*.sh
that generate graphs from local git repo checkouts in the
DevOps-Bash-tools repo will get local timezone hours from the local
git log
in each checkout, but this only works if you have all the repos checked out locally so requires much more
admin than querying the GitHub API.
This issue has been raised against GitHub API.
The rest of my original source repos are here.
Pre-built Docker images are available on my DockerHub.