Awesome
Hari Sekhon - GitHub Graph Commit Times
<!-- TODO: Replace Azure DevOps Pipeline ID here -->GitHub Graph Commit Times
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.
<!-- INDEX_START --> <!-- INDEX_END -->Features
- 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
Run
go run main.go <username>
eg.
go run main.go harisekhon
Build
To compile a portable binary:
make build
Run Binary
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
Result
graph.svg
:
Caveats
GitHub API returns Times in UTC
...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.
More Core Repos
<!-- OTHER_REPOS_START -->Knowledge
<!-- Not support on GitHub Markdown: <iframe src="https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md" width="100%" height="500px"></iframe> Does nothing: <embed src="https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md" width="100%" height="500px" /> -->DevOps Code
<!-- [![Gist Card](https://github-readme-stats.vercel.app/api/gist?id=f8f551332440f1ca8897ff010e363e03)](https://gist.github.com/HariSekhon/f8f551332440f1ca8897ff010e363e03) -->Containerization
CI/CD
DBA - SQL
DevOps Reloaded
Misc
The rest of my original source repos are here.
Pre-built Docker images are available on my DockerHub.
<!-- 1x1 pixel counter to record hits --> <!-- OTHER_REPOS_END -->