GitHub Value is a free and open-source application designed to help measure the adoption, value, and impact of GitHub features.
- GitHub Copilot usage analytics and metrics
- Developer engagement tracking
- Light/Dark theme support
- Responsive Material Design UI
github-value will take you through setup the first time you run it. You can manually configure it by copying the .env.example
file to .env
and configure the environment variables.
Kubernetes
@MattG57 has built a Kubernetes deployment for github-value. You can find it here.
If you want to deploy it to your own cluster, you can use the following command.
Heroku
You can deploy the application to Heroku using the Heroku CLI.
WARNING: Deploying to Heroku will cost you about $17/month.
Login, create a new app, and deploy the application.
heroku login
# If new app, create it
heroku create your-app-name
# Set stack to container
heroku stack:set container -a your-app-name
# Push and deploy
git push heroku main
# Check the logs
heroku logs --tail
# Check the status of the app
heroku ps
# Open the app in the browser
heroku open
The first time you visit the app it will walk you through creating the GitHub App in your organization.
You will need to manually add the config vars to the Heroku app. You can also edit config vars from your app’s Settings
tab in the Heroku Dashboard.
# Set all config vars
heroku config:set GITHUB_APP_ID="1234567"
heroku config:set GITHUB_APP_INSTALLATION_ID="12345678"
heroku config:set GITHUB_APP_PRIVATE_KEY="$(cat path/to/secret.key)"
heroku config:set GITHUB_WEBHOOK_SECRET="secret"
heroku config:set WEBHOOK_PROXY_URL="https://smee.io/123" # You can get this URL from your app after it starts
heroku config:set BASE_URL="https://octodemo-9e26d32b64b8.herokuapp.com" # This is the URL of your Heroku app
# Verify that the config vars are set correctly
heroku config
# Restart the app
heroku restart -a app_name
The docker compose file will automatically set up a MongoDB database for you.
If you want to use a different database, you can change the connection string in the .env
file or via the environment variables.
MONGO_URI=mongodb://mongo:27017/github-value
github-value will create the GitHub App for you the first time you run it. The app credentials are managed via the .env
file or via the environment variables.
GITHUB_WEBHOOK_SECRET=
GITHUB_APP_ID=
GITHUB_APP_PRIVATE_KEY='-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----'
Set permissions for the app as described in github-manifest.json
- Repository Permisions
- Issues: Read and Write
- Pull requests: Read and Write
- Organization Permissions
- Members: Read
- GitHub Copilot Business: Read
- Subscribe to events
- Pull request
- Member (optional)
- Team (optional)
- Team add (optional)
NEW Enterprise App
If you have multiple organizations you'd like to monitor copilot usage for, you can now create GitHub Apps for use within the Enterprise.
- Registering a GitHub App
- Set permissions as described in permissions
Organization App
You can create an organization app directly from github-value. On your first launch when you visit the website it will take you through setup. Simply click register and follow the instructions. You can also optionally use an existing app.Tip
This repository is Codespaces and DevContainers ready! Just open the repository in GitHub Codespaces or in Visual Studio Code and you're good to go! 🚀
Pre-requisites:
- Docker and Docker Compose
- Node.js 23+ (for local development)
- Angular CLI (
npm install -g @angular/cli
)
You can start the Develop task by pressing Ctrl+Shift+B
or running Run Task from the global Terminal menu.
Right click the terminal sidebar and click Unsplit terminal if you're lacking space to view them side by side.
Start up the database. It's defined in the docker-compose.yml
file.
docker-compose up -d mongo
Then, you can run the server and the client separately.
cd backend
cp .env.example .env # Configure your env variables
npm install
npm run dev
cd frontend
npm install
npm run start
Congratulations! You now have a fully functioning development environment! 🧑💻
Feel free to submit issues or pull requests! Contributions are welcome! 🤗
This project is licensed under the MIT License. See the LICENSE file for details.