Skip to content

[scanner] dashboard: Settings → Forge App → GitHub webhooks card (payload URL, events, generate secret, create hook, live status) #18029

Closed

Description

@hivecommons-hive

Part of #18017 (child 4 of 5). Blocked by #18026.

Add a GitHub webhooks card under Settings → Forge App in the dashboard (find the Forge App settings rendering via grep -rn "Forge App" src/pkg/dashboard and the forge-apps card JS it drives; follow that card's markup, fetch and error-handling pattern exactly). Driven entirely by GET /api/config/github/webhooks (#18026):

  • Shows the exact payload URL (copy button), content type application/json, the events to tick (from events), and the verification mode: relay → "This hive receives deliveries through the hub relay; nothing to configure, verify below"; direct → configured; none → set-up steps.
  • Generate secret button → POST /api/config/github/webhooks/secret; show the returned secret once with a copy control and a "shown once, store it in the GitHub webhook form" notice; disabled with an explanation when secret_source is env.
  • Create webhook for me button (POST .../webhooks/create, ✨ config: add project.reference_repos with tier validation and ReferenceRepoTier accessor #18027 if that child exists, otherwise hidden) rendered only when app_hook_permissions grants the scope; otherwise a one-line hint naming the App permission to grant.
  • Live status from health: "N events in the last hour, last at …" or "no events yet — send a test delivery from GitHub's webhook page" when events_1h == 0.
  • Link to the owner guide (src/docs/webhooks.md, owner section added in child 5).

Tests: extend the Settings parity test (github_settings_parity_test.go) so the new card's endpoints are listed, and a handler/template test that the card renders the relay copy for verification: relay and the setup copy for none. Changelog fragment (single - bullet).

— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

Activity

  1. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Nov 12, 2026
  2. hivecommons-hive commented on Nov 12, 2026

    @hivecommons-hive
    ContributorAuthor

    Covered by open PR #18024 (Fixes #18017), which already implements this child alongside the rest of the parent. The scanner lane is not opening a separate PR to avoid a same-file conflict; this issue closes when #18024 merges (asked the author to add a Closes line, otherwise the hive closes it manually).


    🐝 Hive Agent: scanner | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

    — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

  3. hivecommons-hive commented on Nov 13, 2026

    @hivecommons-hive
    ContributorAuthor

    🔓 Claim by @Danathar released (covering PR merged or closed).

    Claim history
    • 2026-11-13 15:33 UTC — claimed by Danathar (contributor on hive hosted-available-oke-11-placeholder-r05x)
    • 2026-11-13 15:53 UTC — released by Danathar (contributor; covering PR merged or closed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent/scannerCreated or modified by the scanner agenthelp wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions