Discovering Repos¶
git-processor and pr-processor's default command is their worker
(worker.py), so one-shot scripts like discover_repos.py need
--entrypoint python3 to override that:
docker compose run --rm --entrypoint python3 git-processor discover_repos.py <org-or-group> --provider github
--provider is github (default), gitlab, bitbucket_cloud,
bitbucket_server, or azure_devops (Azure DevOps Services/cloud only —
Azure DevOps Server/TFS isn't supported). <org-or-group> is an
org/group/workspace, not a personal account — this discovers everything
the org owns, not one user's repos. Queues each repo found — safe to
re-run later to pick up new ones.
Filtering what gets queued¶
To skip archived/inactive repos or ones matching a name pattern (e.g. bot
repos), write a discover_config.yaml to /var/lib/eng-metrics-suite/
on the host:
exclude_archived: true # skip repos the provider reports as archived
exclude_inactive_days: 730 # skip repos with no push in this many days
exclude_patterns: # skip repos whose "org/repo" name matches (regex, re.search)
- "-bot$"
- "^terraform-"
Then pass it via --config:
docker compose run --rm --entrypoint python3 git-processor discover_repos.py <org-or-group> --provider github --config /var/lib/eng-metrics-suite/discover_config.yaml
Coverage varies by provider
GitHub supports all three keys. Bitbucket Cloud has no "archived"
concept (exclude_archived never matches there) and checks
updated_on instead of push date for inactivity. Bitbucket Server's
repo-list endpoint exposes neither signal, so only exclude_patterns
does anything there. Azure DevOps is similar to Bitbucket Server: its
repo-list endpoint has no push date at all (exclude_inactive_days is
a no-op), and its closest "archived" signal (isDisabled) means
something slightly different — hidden org-wide, not just inactive —
so treat exclude_archived there as an approximation.
Next: Jira Integration if you want change failure rate/MTTR or an investment allocation report too, or straight to Running Workers to actually import what you just queued.