{"id":15579473,"url":"https://github.com/davep/git2gantt","last_synced_at":"2025-09-19T04:32:35.351Z","repository":{"id":66520509,"uuid":"169769013","full_name":"davep/git2gantt","owner":"davep","description":"Simple tool to output a mermaid gantt chart that shows git repo coding runs","archived":false,"fork":false,"pushed_at":"2024-06-17T15:59:09.000Z","size":68,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-11T21:55:42.815Z","etag":null,"topics":["gantt","gantt-chart","gantt-diagram","git","mermaid","python","python3","time"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-08T17:00:52.000Z","updated_at":"2021-09-29T16:11:45.000Z","dependencies_parsed_at":"2024-10-28T14:56:58.290Z","dependency_job_id":"503d7ea5-a94b-4208-a0b8-25b9e61f59c5","html_url":"https://github.com/davep/git2gantt","commit_stats":{"total_commits":60,"total_committers":2,"mean_commits":30.0,"dds":"0.050000000000000044","last_synced_commit":"c3a700741954f222bca70be1b8a030400fcc7119"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fgit2gantt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fgit2gantt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fgit2gantt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fgit2gantt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davep","download_url":"https://codeload.github.com/davep/git2gantt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233550957,"owners_count":18692916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gantt","gantt-chart","gantt-diagram","git","mermaid","python","python3","time"],"created_at":"2024-10-02T19:15:26.621Z","updated_at":"2025-09-19T04:32:29.948Z","avatar_url":"https://github.com/davep.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git2gantt\n\n## Introduction\n\n`git2gantt` is a simple tool that's designed to create\n[mermaid](https://mermaidjs.github.io/) [gantt chat\ncode](https://mermaidjs.github.io/gantt.html) from one or more git\nrepositories.\n\n## Setup\n\n`git2gantt` is written in, and requires, Python 3 -- likely Python 3.5 at\nthe oldest. While it should run itself, I've also used\n[`pipenv`](https://pipenv.readthedocs.io/en/latest/) to help control extra\nthings, like being able to easily [lint](https://www.pylint.org/) the code.\n\nTo set up using pipenv, simply type:\n\n```sh\n$ make setup\n```\n\nIf you need to run pylint over the code, simply type:\n\n```sh\n$ make lint\n```\n\n## Usage\n\n```\nusage: git2gantt [-h] [-a AUTHOR] [-d DESCRIPTION] [-e] [-f FUZZ] [-t TITLE]\n                 [-v]\n                 repos [repos ...]\n\ngit history to mermaid gantt chart tool\n\npositional arguments:\n  repos\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -a AUTHOR, --author AUTHOR\n                        Limit to commits by the given author.\n  -d DESCRIPTION, --description DESCRIPTION\n                        Description to give each session.\n  -e, --every-branch    Uses commits for every available branch.\n  -f FUZZ, --fuzz FUZZ  Size of a 'fuzzy' period when deciding contiguous\n                        days.\n  -t TITLE, --title TITLE\n                        The title for the chart.\n  -v, --version         Show version information.\n```\n\nTo produce a gantt chart for a single repository, simply:\n\n```sh\n$ git2gantt /path/to/repo\n```\n\nThe mermaid code will be output. Capture that and run it through mermaid to\ncreate the chart. The output will look something like this:\n\n![Sample1](img/sample1.svg)\n\nIt's possible to run `git2gantt` over more than one repository at a time.\nFor example:\n\n```sh\n$ git2gantt /path/to/repo1 /path/to/repo2\n```\n\nThe resulting output will be something like:\n\n![Sample2](img/sample2.svg)\n\nThe title of the chart can be changed using the `--title` parameter. The\ntitle of each \"coding session\" can be set with the `--description`\nparameter. For other changes to the output, simply edit the output before\npassing it through Mermaid.\n\n## Assumptions\n\nThis tool was initially written as a way of visualising the work done on a\nnumber of work projects, so for now it concentrates just on work days. What\na working day is will be different from person to person, and culture to\nculture, etc. I aim to carry on working on this tool and make it a lot more\nflexible in this regard.\n\nThis is just an early test to get things up and going.\n\n## TODO\n\n- [ ] Be smarter about the concept of a \"working day\".\n- [ ] Allow the option to not even worry about \"working days\".\n- [X] Add a parameter that gives some wiggle room for a coding session\n      length.\n- [ ] Look at including Mermaid such that the output is optionally an actual\n      chart.\n- [X] Have repository checking/cleaning do a bit of a search for the root of\n      the repository -- that way people don't need to specify the root of\n      the repository, just some location within it.\n\n[//]: # (README.md ends here)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavep%2Fgit2gantt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavep%2Fgit2gantt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavep%2Fgit2gantt/lists"}