What you will do
- GitHub uses one GitHub App per NopsAI installation, installed on as many organizations and personal accounts as you need. It is stored in
setting/git-apps/github.yaml. - NopsAI creates the App and stores its App ID, private key, and webhook secret itself. There is nothing to copy by hand.
- GitLab, Bitbucket, Gitea, and generic providers use managed Git Webhook Sources instead.
- Repository access is what lets a run check out code and read repo-local Knowledge Context at the run commit.
Before you start
- Provider
- A repository on GitHub, GitLab, Bitbucket, or Gitea
- Permission
- Administrator access to configure Git Apps or webhook sources
- Reachability
- The provider must be able to reach your NopsAI webhook endpoint
- Credentials
- None for GitHub — GitHub issues them and NopsAI stores them. A webhook signing secret for other providers.
Steps
- 01
Register the App or webhook source
For GitHub, use Connect GitHub in System > Git Apps, or the GitHub step of the first-install wizard: it creates the App on GitHub, stores the credentials it issues, and sends you on to pick the account and repositories. For other providers, create a Git Webhook Source and copy its signing secret into the provider.
Verify- Use the installation Verify action, or check recent deliveries on the webhook source.
- 02
Confirm repository visibility
List the repositories the installation can reach.
List installation repositoriesbash curl -s localhost:8080/v1/git-apps/github/installations/$INSTALLATION_ID/repositories \ -H "Authorization: Bearer $NOPSAI_TOKEN" - 03
Send a test event
Push a commit, then check that the delivery arrived and was accepted.
Verify- The delivery appears with a success status under the webhook source or App installation.
How it works
One GitHub App serves every account: install it again on each further organization rather than registering a second App. An installation from an account other than the one that owns the App is held as Pending approval until an operator accepts it.
The App private key and webhook secret are stored as credential references, which is what the connect flow writes. The legacy inline environment variables remain only for migration.
Internal service URLs such as git_bot_api_url stay in system configuration and do not belong in the app-scoped Git App file.
Implementation evidence
doc/git-apps.mdConnect flow, multi-installation management, GitOps schema, and git-bot routing.
doc/git-webhook-sources.mdNon-GitHub provider configuration and security.

