Web application that displays a list of TODO markers in git repositories.
It updates its internal database of TODO entries by scanning the repositories source files periodically. This scanning is cheap after the first time, because it remembers which hash was last scanned and only scans files changed since then.
The application was designed to be deployed on Heroku, but it should be straighforward to deploy it in any cloud service or local network.
The application is written for Python 2.7, using Flask and MongoDB.
For a complete list consult requirements.txt.
This project is in its early stages, and there are a number of limitations:
- At the moment only works with Stash servers. Github and local git repositories are planned.
- The markup searched to identify TODO entries in code is limited, but will be configurable in the future.
The following environment variables must be available for it to work:
TODO_DASHBOARD_GIT_URL
: full url to stash server. Examplehttps://www.example.com/stash
.TODO_DASHBOARD_AUTH
: authentication, given as a pairuser:pass
.TODO_DASHBOARD_PROJECTS
: list of projects to scan. All repositories of each project will be scanned, and this should be set to a comma-separated list.
This variables should be configured remotely using the heroku config:set
command.
You should periodically execute update.py
in Heroku in order to
update the database, using heroku run python update.py
.
You can easily configure Heroku Scheduler
to do this periodically. Alternatively, you can POST
to /fetch
url in order to start a
full update or to /fetch/<project>/<slug>
to update only a single repository. The latter makes
it easy to make a post-push hook update the database automatically.