LandfallDocs
Integrations · Source control

Connecting GitHub to Landfall

Connect a GitHub organization so Beacon, the investigator agent, can search code, read commits and pull requests, and trace an incident back to the specific change that caused it — not just the infrastructure it broke. GitHub can also open a Landfall war room directly, from a security or deploy-failure signal; see Triggering Integrations → GitHub.

Datadog alert
error in checkout-service
Beacon
correlates the deploy SHA
GitHub
the commit that broke it

One GitHub App, not a key you paste in

Every other Landfall integration asks you to create your own API key or webhook. GitHub works differently: Landfall registers one GitHub App, and your organization installs it — the same way you'd install any other GitHub App, choosing exactly which repositories it can see. There is no secret to generate, copy, or rotate on your side; GitHub itself issues short-lived, revocable tokens to Landfall behind the scenes, scoped only to the repositories you selected.

You stay in control the whole time: uninstalling the App, or narrowing its repository access, from your GitHub organization's settings takes effect immediately — Landfall never holds a credential that outlives that decision.

What you'll need

  • Owner or admin access on the GitHub organization you want to connect.
  • Your Landfall organization's slug — it appears in your Landfall URL, e.g. /o/acme/….
  • An admin on your Landfall organization.

Connect your organization

  1. Settings → Integrations → GitHub → Connect

    Landfall mints a short-lived, signed token binding the install flow to your Landfall organization, and sends your browser to GitHub's own install page for the Landfalls Incident Response App.

  2. Choose repository access

    GitHub asks which repositories the App can see — all repositories (current and future) or a hand-picked subset. This choice is entirely GitHub's own native install UI; Landfall never sees anything you didn't select.

    github.com/organizations/your-org/settings/installations
    GitHub's Install Landfalls Incident Response page, showing the landfalls-ai organization with the app installed.
    One click installs — or, as shown here, confirms — the App on your organization.
  3. Exactly what access is requested

    GitHub shows the permission set before you approve anything. Landfall requests only what the investigator agent and the incident-trigger webhook actually use, all read-only — there is no write scope in the App at all, so there is no code path that could push, merge, or comment even by accident.

    github.com/organizations/your-org/settings/apps/landfalls-incident-response
    The installed GitHub App's settings page, showing 'Read access to Dependabot alerts, actions, code, metadata, pull requests, secret scanning alerts, and security events' and repository access set to All repositories.
    This exact summary — Read access to Dependabot alerts, actions, code, metadata, pull requests, secret scanning alerts, and security events — is what your organization approves. Nothing more.
  4. Redirected back, connected

    GitHub sends your browser back to Landfall with the installation confirmed. Landfall verifies it live against GitHub's API before marking the connection as configured — an installation that can't actually be reached is refused rather than saved.

The permission set, in detail

Every permission below is Read-only, set once when the App was registered — an installing organization cannot grant more than this even if it wanted to.

github.com/.../landfalls-incident-response/permissions
GitHub App repository permissions list showing Code scanning alerts, Contents, and Dependabot alerts each set to Read-only and marked Selected.
PermissionWhat it's for
Contents: readSearch code, read file contents, list commits, diff a commit or PR, blame a line/file — the investigator agent's core code-browsing tools.
Pull requests: readList and read pull requests, so a finding can link the actual PR that shipped a change.
Actions: readRead workflow runs — correlating a deploy SHA to the commits it shipped, and (optionally) triggering an incident on a deploy-critical workflow failure.
Code scanning alerts: readOptional trigger source — open an incident from a critical code-scanning alert.
Dependabot alerts: readOptional trigger source — open an incident from a critical dependency vulnerability.
Secret scanning alerts: readOptional trigger source — open an incident when a leaked secret is detected. The alert's location/matched-secret fragment is stripped before it ever reaches an incident timeline; see Triggering Integrations → GitHub.
Security-alert reads are independent of code browsing

Enabling code search/browsing does not require enabling security-alert triggering, and vice versa — both ride the same connection, but each is a separate opt-in event type (see triggering docs). A tenant that only wants deploy-correlation without exposing secret-scanning alert data can decline that scope's use entirely by leaving it out of the connection's enabled event types.

Mapping repositories to services

Landfall correlates an alerting service (from Datadog, CloudWatch, or any other connected telemetry source) to a GitHub repository by name. In Settings → Integrations → GitHub, map each service name your telemetry uses to the owner/repo it lives in. An unmapped service falls back to the repository search the agent already has access to — mapping just makes the very first correlation immediate instead of a search.

What the investigator agent can do once connected

The moment a github connection exists, the agent automatically gains it as a new capability — no separate switch, no agent-side code change, the same dynamic discovery every other source uses (see Integrations Architecture):

  • Search code across every repository the installation can see.
  • Read a file's contents at any commit or branch.
  • List recent commits and pull requests for a repository.
  • Diff a commit or pull request.
  • Blame a line or file to find who (and which PR) last touched it.
  • Correlate a deploy marker or SHA to the commits it shipped.

Every result the agent surfaces carries a permalink back to the exact commit, PR, file, and line — a finding is never "somewhere in the repo," it's a link you can open.

Troubleshooting

SymptomCause
Agent can't find a repositoryIt wasn't included in the installation's repository selection. Add it from github.com/organizations/your-org/settings/installations — access updates immediately, no reconnection needed in Landfall.
Connection shows disconnectedThe App was uninstalled, or its repository access was revoked, on GitHub's side. Reinstall it from Settings → Integrations → GitHub to reconnect.
A finding's code link 404sThe branch was force-pushed or the file was deleted after the finding was recorded — the permalink is pinned to the commit SHA at the time, which is intentional (it documents what the agent actually saw), but that commit may no longer be reachable if history was rewritten.

What Landfall does with the connection

  • Reads only. The App has no write scope at all — not a convention, a hard limit enforced by GitHub itself on every token it issues.
  • Per-installation tokens, minted on demand. Landfall never stores a long-lived GitHub credential for your organization; it holds only your non-secret installation id and mints a short-lived (about one hour) access token from it when the agent actually needs one.
  • Scoped to what you selected. Repository access is enforced by GitHub, not by Landfall's own bookkeeping — the same install-time choice that limits a human collaborator's access limits the agent's.
  • Revocable from your side, immediately. Uninstall the App, or narrow its repository access, from your GitHub organization's settings and access ends at once.