Integrating GitHub with Span
Last updated: June 9, 2026
Overview
The GitHub integration is one of the foundational data sources in Span. It captures the full lifecycle of your engineering work — from the first commit through code review, merge, and deployment — enabling Span to compute pull request, code quality, contributor activity, and DORA metrics across your organization.
Span supports both GitHub Cloud (github.com) and will be launching support for GitHub Enterprise Server (GHES) in the summer of 2026.
Setting Up the Integration
Step 1 — Connect GitHub
Navigate to Settings → Integrations in Span.
Click Connect next to GitHub.
You'll be redirected to GitHub to authorize the Span GitHub App.
Step 2 — Install the GitHub App
During the authorization flow, you'll choose whether to grant access to:
All repositories in your organization, or
Selected repositories only
Span will only ever access repositories within the scope you grant.
Step 3 — Start Syncing
Once authorized, Span begins ingesting data from your repositories. Initial historical backfill may take some time depending on the size of your organization.
Multi-organization support: You can connect multiple GitHub organizations to a single Span workspace. Each organization's data is kept separate.
Permissions Required
The Span GitHub App uses read-only permissions only. It never writes to, modifies, or deletes data in your GitHub account.
Permission | Access | Purpose |
|---|---|---|
| Read | Repository contents and code |
| Read | PR metadata, reviews, and comments |
| Read | Deployment events for DORA metrics |
| Read | Issue linking to PRs |
| Read | Organization membership and team structure |
| Read | Repository names, branches, creation dates |
| Read | Org-level settings |
| Read | Copilot seat assignments (optional) |
| Read | GitHub Projects data |
| Read | Repository-level projects |
| Read | Commit status checks |
Data Collected
Span reads the following data from GitHub:
Pull Requests
Title, description, status, and labels
All timestamps (opened, ready for review, merged, closed)
Full PR timeline events (review requests, approvals, dismissals, etc.)
File-level diffs (additions and deletions)
Code Reviews
Review state per reviewer (approved, changes requested, commented, dismissed)
Inline code comments and general PR comments
Review request history
Commits
Commit messages, authors, and timestamps
Commit-to-PR association
Repositories & Organization
Repository metadata (name, owner, default branch, visibility)
Organization teams and team membership
User accounts and organization membership
GitHub Copilot (optional)
Copilot seat assignments and activity
Accepted code suggestions (lines of code)
Metrics Powered by GitHub
PR Cycle Time
Span breaks down the full PR lifecycle into granular time intervals:
Interval | Definition |
|---|---|
Coding | First commit → PR opened |
Awaiting First Review | PR opened → first review |
Reworking | First review → last action (addressing feedback) |
Idling | Last action → merge |
Deploying | Merge → production (requires deployment tracking) |
Lead Time for Changes | First commit → production (requires deployment tracking) |
Pull Request Metrics
PRs Merged / Week — Merge frequency per contributor
Weighted PRs / Week — PR volume scaled by size and complexity
PR Size — Lines added and removed per PR
% of PRs Merged Without Review — PRs merged without a human reviewer
% of PRs Merged With Tests — PRs that include test file changes
PR Revert Rate — Percentage of merged PRs subsequently reverted
PR Review Cycles — Number of back-and-forth interactions between author and reviewers
PR Link Rate — Percentage of PRs linked to a tracked issue
Est. Bug PR Density — Estimated bug escape rate based on bugfix PR analysis
Code Review Metrics
PRs Reviewed / Week — Reviews completed per contributor
Review Response Time — Average time to complete a review after being requested
Comments Authored / Week — Review feedback volume per contributor
Comments Received / PR — Average number of comments received per PR
Commit & Activity Metrics
Commit Days / Week — Days per week with at least one commit
Lines of Code — Total lines added and removed
DORA Metrics (require additional integrations)
These metrics combine GitHub data with your deployment and incident management tools (e.g., PagerDuty, Incident.io, Rootly):
Metric | Additional Integration Needed |
|---|---|
Deployment Frequency | Deployment tracking |
Lead Time for Changes | Deployment tracking |
Change Failure Rate | Incident management |
Mean Time to Recover (MTTR) | Incident management |
AI Impact Metrics (require Copilot integration)
AI Code Ratio — Share of merged lines detected as AI-generated (supports Python, TypeScript, JavaScript, Ruby, Java, C#, Go, Kotlin, Swift)
Accepted AI Lines vs. All Merged Lines — AI code as a percentage of total output
AI Days / Week — Days per week with AI tool activity per contributor
Gen AI Weekly / Monthly Active Users — Copilot adoption across the organization
Frequently Asked Questions
Does Span store my source code? Span reads diffs to compute code-level metrics (e.g., lines of code, AI code detection) but does not store the full contents of your source code.
How fresh is the data? Data is synced continuously. Most metrics reflect activity within minutes of it occurring in GitHub.
Can I restrict which repositories Span accesses? Yes. During GitHub App installation you can choose specific repositories, and this can be updated at any time from your GitHub organization settings.
Does Span support GitHub Enterprise Server? Yes. Span supports both GitHub Cloud and GitHub Enterprise Server (GHES) deployments.
💡 Tip: The GitHub integration works best when paired with an issue tracker (Jira, Linear) for issue-linking metrics and a deployment/incident tool (PagerDuty, Rootly) for complete DORA metrics coverage.