Commit Enrichment
BlameTrail automatically enriches deploy commits with GitHub metadata including PR details, changed files, and commit history.
When a service is linked to a GitHub repository and a GitHub token is configured, BlameTrail automatically fetches additional metadata for each deploy. This enrichment transforms a bare commit SHA into a rich context that makes suspect scoring and incident investigation significantly more useful.
What gets enriched
For each deploy, BlameTrail fetches the following from the GitHub API:
| Data | Description |
|---|---|
| Commit messages | Full commit messages for all commits in the deploy |
| Linked pull requests | PR titles, numbers, and authors for commits merged via pull request |
| Changed files | List of files modified, added, or deleted, ranked by relevance |
This metadata appears on the deploy detail page, in suspect scoring results, and in AI-generated incident summaries.
Prerequisites
Commit enrichment requires two things:
1. A linked repository
When creating or editing a service, set the Repository field to the GitHub repository in owner/repo format (e.g., acme/payments-api). This tells BlameTrail which repository to query for commit data.
2. A GitHub token
Configure a GitHub personal access token in one of two places:
- Organization-wide — Go to Organization > Settings and add a token in the GitHub section. This token is used for all services in the organization.
- Per-service — Set a token on an individual service to override the organization-wide token.
Token scopes
| Repository visibility | Required scope |
|---|---|
| Private | repo |
| Public | public_repo |
The token is stored encrypted at rest and is never returned by the API after being saved.
How enrichment runs
Enrichment runs asynchronously in the background after a deploy is ingested:
- Your CI/CD pipeline sends a deploy event to the ingest endpoint.
- BlameTrail records the deploy and returns a response immediately.
- A background job picks up the deploy and calls the GitHub API to fetch commit metadata, PR associations, and changed files.
- The enriched data is stored alongside the deploy record.
If the GitHub API is unavailable or the token lacks sufficient permissions, the deploy is still recorded -- it just won't have enrichment data. BlameTrail logs the failure for debugging.
Changed file ranking
BlameTrail ranks changed files by relevance rather than listing them alphabetically. Files are scored based on:
- File type — Source code files rank higher than configuration or documentation.
- Change magnitude — Files with more additions and deletions rank higher.
- Path patterns — Files in core application paths rank above test or build files.
This ranking helps you focus on the most impactful changes first when investigating a suspect deploy.
Viewing enriched data
Enriched deploy data appears in several places:
- Deploy detail page — Full list of commits, linked PRs, and changed files.
- Incident suspect list — Each suspect deploy shows its commit message, linked PR, and top changed files.
- AI incident summaries — When generating an AI summary, BlameTrail includes enrichment data from suspect deploys as context.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| No enrichment data appears | GitHub token not configured | Add a token in Organization > Settings or on the service |
| 401 errors in logs | Token expired or revoked | Generate a new token and update it in settings |
| Missing PR associations | Commits were pushed directly, not merged via PR | This is expected -- only PR-merged commits show PR metadata |
| Private repo returns 404 | Token has public_repo scope but not repo | Update the token to include the repo scope |