Engineering analytics for your software project. Minimize lead time. Manage your technical debt. Keep code quality high.
Connect your project on GitHub and get analytics about your code base for every pull request.
See:
- the hot spots on your code (where the most of your work is done)
- how the complexity of your code base evolves
- how the time from opening a pull request to merging it evolves
If you run Codefrog periodically you can work on the problem areas in your code and see how your team gets faster in delivering high quality code.
Whenever new code is pushed, Codefrog is notified by GitHub and ingests information about issues, pull requests, releases and the code itself (tags and of course commits) (see core.models.Project.ingest())
The codefrog engine calculates now metrics from the raw data of GitHub. Metrics like:
- times it takes to close issues or pull requests,
- the complexity changes of every change in every file,
- the change frequency of every file,
- and more
After the metrics are calculated the user (developer or manager) can see the state of the code base and how it changed over time in the web interface.
There is also a thing called pullrequestbot
then posts a short report directly into the pull request, so the developer sees immediatly the impact her code changes will have to the system.
The project assumes that you have a Postgres Database running on localhost port 5432.
-
Move into directory:
cd codefrog
-
Create and virtual environement:
python3 -m venv .env source .env/bin/activate
-
Install requirements:
pip install -r requirements.txt
-
Create directory for storing git repos:
sudo mkdir ~/codefrog_projects_git_repos
-
Move into project dir and start project
cd codefrog export SECRET_KEY=something_secret ./manage.py runserver 0.0.0.0:8000
Every time new code is pushed to the repository the new code will build and tested and if everything is alright it will be deployed to production.
Deployment to production is only executed when the branch is called master
or prefixed with release/
.
Codefrog uses Github Actions for this process. See .github/workflows/deploy-to-production.yml