From ef99a739dda73fba60df011e34981c2cb5e23a3c Mon Sep 17 00:00:00 2001 From: hugocasa Date: Thu, 13 Aug 2026 13:03:42 +0200 Subject: [PATCH] fix(github-app): complete the self-managed setup instructions, render the page header (#10683) * docs(github-app): state the pull-direction permissions and the App owner field The in-product "How to create a GitHub App" panel only listed Contents and Metadata, which covers the push direction of git sync. Webhooks, pull requests and checks are what the git to Windmill direction needs, and a GHE Cloud (*.ghe.com) app also needs App owner, whose field hint was the only place saying so. Co-Authored-By: Claude Opus 5 (1M context) * fix(instance-settings): render the GitHub App page header The branch tested the pre-rename category name, so the page rendered with no header at all. Naming the header after the category duplicates the card below it, so the card that holds the app credentials is now labelled for what it is, next to the webhook base url card. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 5 (1M context) --- .../lib/components/InstanceSettings.svelte | 7 ++-- .../src/lib/components/instanceSettings.ts | 6 ++-- .../instanceSettings/GhesAppSettings.svelte | 36 +++++++++++++++++-- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/frontend/src/lib/components/InstanceSettings.svelte b/frontend/src/lib/components/InstanceSettings.svelte index bbe5432f06..0a21e8897e 100644 --- a/frontend/src/lib/components/InstanceSettings.svelte +++ b/frontend/src/lib/components/InstanceSettings.svelte @@ -1144,10 +1144,11 @@ description="Configure where secrets (secret variables) are stored." link="https://www.windmill.dev/docs/core_concepts/workspace_secret_encryption" /> - {:else if category == 'GitHub Enterprise App'} + {:else if category == 'GitHub App'} {:else if category == 'DB Health'} = { ], 'GitHub App': [ { - label: 'GitHub App', + // The category header above already names the section; this labels the + // card that holds the app credentials, next to the webhook base url one. + label: 'App configuration', description: - 'Configure a self-managed GitHub App to enable git sync without stats.windmill.dev.', + 'Use your own GitHub App instead of the Windmill-managed one on stats.windmill.dev.', key: 'github_enterprise_app', fieldType: 'github_enterprise_app', storage: 'setting', diff --git a/frontend/src/lib/components/instanceSettings/GhesAppSettings.svelte b/frontend/src/lib/components/instanceSettings/GhesAppSettings.svelte index ae5347d278..da63e8d64a 100644 --- a/frontend/src/lib/components/instanceSettings/GhesAppSettings.svelte +++ b/frontend/src/lib/components/instanceSettings/GhesAppSettings.svelte @@ -194,13 +194,34 @@
  • Callback URL: <your-windmill-url>/gh_success
  • -
  • Uncheck Active under Webhook (not needed)
  • +
  • + Uncheck Active under Webhook. Windmill registers the webhooks it + needs per repository, so the app-level webhook stays unused. +
  • 3. Set repository permissions:

    • Contents: Read & write
    • Metadata: Read-only
    +

    + Those two are the minimum, for the push direction (Windmill → git). Add these for + the pull direction (git → Windmill), all read & write: +

    +
      +
    • + Repository webhooks: deploy commits within seconds instead of + polling the repository +
    • +
    • + Pull requests: open pull requests for the branches Windmill pushes, + and maintain the deploy-preview comment +
    • +
    • + Checks: post the "Windmill diff" and deploy status checks on commits + and pull requests +
    • +

    4. Under "Where can this GitHub App be installed?", choose Any account (or restrict to your organization). @@ -219,7 +240,18 @@

    8. The Base URL is your GitHub instance root (e.g. - https://github.com or https://github.mycompany.com). + https://github.com, https://mycompany.ghe.com or + https://github.mycompany.com). On GHE Cloud (*.ghe.com), also + set App owner to the organization or user that owns the app: its + installation urls carry the owner. +

    +

    + Full setup guide: Self-managed GitHub App.