LandfallDocs
Integrations · Source control

Connecting GitHub to Landfall

Connect a GitHub organization so Beacon, the room's AI agent, can search code, read commits and pull requests, and trace an incident back to the change that caused it.

  • As a source: the Landfalls Incident Response GitHub App, installed on your organization. There is no key to paste.
  • As a trigger: the same App. You choose which GitHub events open an incident; see Opening incidents from GitHub.
Datadog alert
error in checkout-service
→
Beacon
correlates the deploy SHA
→
GitHub
the commit that broke it

How it works

Landfall registers one GitHub App, and your organization installs it the way you would install any other GitHub App, choosing which repositories it can see. There is no secret to create, copy or rotate on your side.

When Beacon needs to read, Landfall signs a request as the App and GitHub returns an access token for your installation that lasts about an hour. Landfall keeps that token in memory only. What it stores for your organization is the installation ID and the GitHub organization name, neither of which is a secret.

Uninstalling the App, or narrowing its repository access, in your GitHub organization's settings takes effect at once.

What you'll need

  • An owner of the GitHub organization you want to connect. A member who is not an owner can only request the install, and nothing is connected until an owner approves it on GitHub.
  • An admin on your Landfall organization. Only an admin can start the install and save the mapping and trigger settings.

1. Install the GitHub App

  1. Integrations → Source control → GitHub → Connect GitHub

    Before you connect, the GitHub panel reads Not connected and shows one button. Clicking it makes Landfall sign a token that ties the install to your Landfall organization for the next 10 minutes, then sends your browser to GitHub's install page for the Landfalls Incident Response App.

  2. Choose repository access

    GitHub asks whether the App can see all repositories, including ones created later, or only select repositories. This is GitHub's own install screen, and Landfall can read only what you select here. You can change the choice later from the App's settings in your GitHub organization.

  3. Check exactly what access is requested

    GitHub shows the permission summary before you approve anything. Every permission is read-only. The App has no write permission at all, so nothing through this connection can push, merge or comment.

    github.com · <your-org> · Settings · GitHub Apps · Landfalls Incident Response
    The installed Landfalls Incident Response App in a GitHub organization's settings, with the read access summary and Repository access set to All repositories.
    The App as installed on an organization. The Permissions line reads Read access to Dependabot alerts, actions, code, metadata, pull requests, secret scanning alerts, and security events, and Repository access is where you switch between all repositories and a selected few. The organization's name and avatar are blurred.
    github.com · Landfalls Incident Response · Permissions & events
    Part of the App's repository permission list: Code scanning alerts, Contents and Dependabot alerts at Read-only, and Codespaces through Environments at No access.
    Part of the permission list Landfall registered for the App. Code scanning alerts, Contents and Dependabot alerts are Read-only, and the other permissions in this section are No access. An installing organization cannot grant more than this.
    PermissionWhat it's for
    Contents: readSearch code, read file contents, list commits, diff a commit, and blame a file: Beacon's code-browsing operations.
    Pull requests: readList and read pull requests, so a finding can link the pull request that shipped a change.
    Actions: readWorkflow runs, so a failed run of a workflow you mark deploy-critical can open an incident.
    Code scanning alerts: readAn optional trigger: open an incident from a code scanning alert.
    Dependabot alerts: readAn optional trigger: open an incident from a Dependabot alert.
    Secret scanning alerts: readAn optional trigger: open an incident when a leaked secret is detected. Where the secret was found is removed before the alert reaches an incident timeline; see Opening a war room from GitHub.
  4. Back in Landfall, connected

    GitHub sends your browser back to the Integrations page. Before saving anything, Landfall checks the installation against GitHub's API, and an installation it cannot reach is not saved. Once it is saved, the panel reads Connected and shows the GitHub organization, the installation, and a note that repository access is managed on GitHub.

2. Map repositories to services

Beacon links an alerting service, from Datadog, CloudWatch or any other connected source, to the repository it lives in. In the GitHub panel's Service → repository mapping section, click + Add mapping for each service and enter the service name your telemetry uses, the owner and the repository. Then click Save mapping & triggers. An unmapped service still works: Beacon falls back to searching the repositories it can see. A mapping makes the first lookup immediate.

Right after you connect, Landfall also tries this for you. It takes the service names from your organization's recent incidents and compares them with the repositories the installation can see. A confident match is filled in, and anything less certain gets a needs confirmation badge and a Confirm button in the same section. It never overwrites a mapping you entered yourself. If nothing matches yet, nothing is written, and you enter mappings by hand.

What it looks like

When Beacon posts a finding that cites code it read through this connection, the canvas shows a Code finding card: the lines it read, pinned to a commit, with a link back to GitHub.

app.landfalls.ai · War room
A pinned Code finding card showing lines 41 and 42 of a source file, with a GH chip reading acme/web-edge:src/origin.ts#L41-44.
A Code finding card from the widget showcase's example data. It shows two lines of src/origin.ts in acme/web-edge, and the GH chip links to lines 41 to 44 at the commit the finding was made against.

What Beacon can read

OperationWhat comes back
searchCodeFiles that match a search, across the installation or scoped to one owner or repository. File-level matches only, with no line numbers.
getFileContentsA file's contents at a commit or branch, by default the repository's default branch.
listCommitsCommit history for a repository, optionally limited to a path or a time window.
listPullRequestsRecent pull requests for a repository.
getPullRequestOne pull request's title, description and review state.
diffCommitThe file and line diff for one commit, or a pull request's merge commit.
getBlameWhich commit and author last touched each line of a file.
correlateDeployThe commits and pull requests between two deploy markers, given as SHAs or as timestamps.
listInstallationRepositoriesThe repositories this installation can see, up to 100 per call.

These operations reach Beacon and every agent that joins the room through get_signal_catalog and query_signals, with no GitHub-specific code on the agent side. See Integrations architecture.

Opening incidents from GitHub

The same App can open a war room from a code scanning, secret scanning or Dependabot alert, or from a failed run of a workflow you mark deploy-critical. Each of the four is off until you turn it on in the panel's Incident triggering section. See Opening a war room from a GitHub alert or failed deploy.

Security alerts are a separate choice

Code browsing and alert triggering use the same connection, but each alert type has its own switch. The App's permissions are the same either way; the switches decide which alerts Landfall acts on. Leave secret scanning off if you do not want those alerts to open incidents.

Troubleshooting

The panel still reads Not connected?
  • The install link is good for 10 minutes. If you took longer on GitHub, start again from Connect GitHub.
  • If a member who is not an owner ran the install, GitHub only sent a request. An owner has to approve it on GitHub, then run Connect GitHub again.
  • GitHub App is not configured on this platform under the button means the Landfall deployment you use has no GitHub App set up.
Connected, but Beacon finds nothing?
  • The repository was not in the installation's selection. Add it from the App's settings in your GitHub organization. Access changes at once, with nothing to redo in Landfall.
  • Beacon is searching instead of going straight to a repository. Add a mapping for that service (step 2).
The connection shows as failing?

When GitHub reports a change to the installation, Landfall drops its cached token and records the GitHub connection as failed, so the GitHub tile reads failing. That happens when the App is uninstalled or repositories are removed, and today also when repositories are added. If the App is still installed, reads keep working. To clear the status, or to reconnect after an uninstall, click Disconnect in the GitHub panel, then Connect GitHub.

A finding's code link returns 404?

The link is pinned to the commit the finding was made against, so it shows what Beacon actually read. If that branch was force-pushed or history was rewritten, GitHub may no longer serve that commit.

Reference

FieldValue
PanelIntegrations → Source control → GitHub. Nothing to type in; Connect GitHub starts the install.
CredentialNone on your side. Landfall's App exchanges a signed request for an installation token that lasts about an hour, held in memory only.
What Landfall storesThe installation ID, the GitHub organization name, your repository mappings and your trigger settings. None of these is a secret.
PermissionsRead access to Dependabot alerts, actions, code, metadata, pull requests, secret scanning alerts, and security events (code scanning alerts)
Repository accessAll repositories, or only the ones you select, set on GitHub
Read operationssearchCode, getFileContents, listCommits, listPullRequests, getPullRequest, diffCommit, getBlame, correlateDeploy, listInstallationRepositories
AccessRead-only. The App has no write permission, so Landfall cannot push, merge, comment, or dismiss an alert.
ActivityThe panel's Recent activity section lists the latest reads made through this connection and any incident GitHub opened, from your organization's audit log.
RevokeUninstall the App, or narrow its repository access, from your GitHub organization's settings. Disconnect in Landfall removes Landfall's record only; the App stays installed until an owner uninstalls it.
Trigger endpointPOST https://api.landfalls.ai/triggers/github, set once by Landfall on the App. See the triggering page.