Skip to content

docs(admin): overhaul the GitHub App integration guide with the provisioned permission model #1680

Description

@FelixTJDietrich

docs/admin/github-integration.mdx now drifts from the live, deliberately-designed app configuration (both hephaestus-aet and hephaestus-staging-aet were rebuilt 2026-09-01 to a tiered model and are byte-identical). The guide is also the operator's template for self-hosted installs, so it must teach the model, not just list checkboxes. Fold in the following session knowledge:

1. Tiered permission model (replaces the flat tables):

2. Event list update: the full current set incl. the provisioned families (check_run, check_suite, status, workflow_run, workflow_job, deployment, deployment_status, deployment_review, merge_group, merge_queue_entry, release, commit_comment, create, delete, dependabot_alert, secret_scanning_alert, code_scanning_alert, issue_dependencies) with one-line rationale each, and an explicit "deliberately not subscribed" list (deploy_key, team_add, deployment_protection_rule, exemption_request_push_ruleset — approval-gate/plumbing events; the app observes, it never gates).

3. Operational mechanics section (currently undocumented):

  • Permission increases take effect per-installation only after each installed org approves the pending request (org → Settings → GitHub Apps); reductions and event changes apply immediately. Batch increases to minimize approval rounds.
  • Brand vs instance URLs: homepage = product domain (hephaestus.build); webhook URL + OAuth callbacks = the instance hostname — webhook deliveries do NOT follow redirects, so a brand-domain webhook URL silently loses every event.
  • Failed-delivery triage and Redeliver live on the App's Advanced tab.
  • App ownership transfer (e.g. to an org) preserves app ID, client credentials, private keys, and all installations; after transfer check "Where can this app be installed" → Any account.
  • Consent-screen texts: description mirrors the literal grants (reads vs writes, "never modifies your code"), per-environment apps required (single webhook URL per app), staging apps carry a name suffix.

Done when the guide teaches the tiered model with per-row rationale, the operational-mechanics section exists, the manifest/OAuth templates match, and a note instructs future permission changes to update this page in the same PR (no app/docs drift).

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationpriority:highAddress this sprint - Significant impactsize:MThis PR changes 30-99 lines, ignoring generated files.

    Type

    No type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions