Repository navigation
[ci-maintainer] meeting-recordings-refresh PR #331 blocked: required Lint and build never runs while MEETING_REFRESH_APP_* secrets are unprovisioned #335
Description
CI Issue
The daily Refresh meeting recordings PR is now permanently blocked from merging until the two App secrets from #296 are provisioned.
#305 (merged 6cbb1e8) made meeting-recordings-refresh.yml mint an App token via actions/create-github-app-token only when MEETING_REFRESH_APP_ID / MEETING_REFRESH_APP_PRIVATE_KEY exist, falling back to GITHUB_TOKEN otherwise. The secrets have not been provisioned, so the fallback is still in effect and the PR is still authored with GITHUB_TOKEN — which means GitHub creates its pull_request runs with zero jobs (action_required) and no check-run ever lands on the head SHA.
What changed since #296: Lint and build is now a required status check on main (maintainer half of #296, 2026-10-10). That correctly stops a zero-check head from merging — but it also means the automation PR can no longer merge at all, because the only thing that would produce Lint and build on its head is the App-token path that is skipped.
Evidence
- Scheduled run 38453838846 (2026-10-13T19:18Z): step
Mint App token so the PR triggers pull_request workflows→ skipped;Open PR with recording feed snapshot→ success, authorgithub-actions[bot]. - Resulting PR docs: refresh community meeting recordings #331 (head
fa534fb, opened 2026-10-13T19:19Z):mergeable_state: blocked.Buildrun 38453933859,Vitest38453933904,npm audit38453933880,TypeScript & Lint Check38453933953 — allevent=pull_request,triggering_actor=github-actions[bot], conclusionaction_required,jobs.total_count = 0.GET /commits/fa534fb/check-runs→ onlyDCO, Netlify (3).GET /commits/fa534fb/status→dcosuccess,netlifysuccess,tidepending. NoLint and build.- hive scanner already noted on docs: refresh community meeting recordings #331 (2026-10-13T22:48Z) it has nothing to push — merge is blocked on review labels, and even with them tide cannot merge without the required context.
- Prior refresh PRs docs: refresh community meeting recordings #249 / docs: refresh community meeting recordings #293 merged on DCO + Netlify alone (the gap [ci-maintainer] meeting-recordings-refresh PR is opened with GITHUB_TOKEN so Build/npm audit never run on it; #293 merged with zero check-runs #296 fixed); docs: refresh community meeting recordings #331 is the first one hitting the new required check.
- This lane cannot verify or set secrets (
GET /actions/secrets→ 403 for the App), so no agent can finish this.
Recommendation
Needs a human — no code change can close this. @clubanderson (per the /hive decision A on #296):
- Create a GitHub App (or reuse an existing hivecommons App) with
contents: write+pull-requests: writeonhivecommons/docs, installed on the repo. - Add repo secrets
MEETING_REFRESH_APP_IDandMEETING_REFRESH_APP_PRIVATE_KEY(Settings → Secrets and variables → Actions). - Re-run
Refresh meeting recordingsviaworkflow_dispatch(or wait for the 12:17 UTC cron). The next run updates theautomation/meeting-recordings-refreshbranch; confirmLint and buildandnpm auditcheck-runs appear on the new head SHA of docs: refresh community meeting recordings #331 and thatmergeable_stateleavesblocked.
Until then, #331 (and every daily refresh after it, since create-pull-request reuses the same branch) will sit open with tide: pending. If the App route is not wanted, the alternative is removing Lint and build from the required checks and accepting unverified data-only merges — but that re-opens the #296 gap and is not recommended.
No workflow edit is needed for option A as already merged; nothing here is pushable by this lane.
Filed by ci-maintainer agent (ACMM L6 — full mode)
🐝 Hive Agent: ci-maintainer | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown
— hive: agent=ci-maintainer backend=copilot model=claude-fable-5.1 copilot=1.0.88
Activity
hivecommons-hive commentedon Oct 14, 2026
What to reply
/hive approve: go with the recommendation/hive decision <your instructions>: go ahead, following your instructions/hive help: show these againIf this issue is waiting only for reporter confirmation after a merged fix, the reporter or a maintainer can reply
/fixedinstead.Only a maintainer with write access can un-park; everything else is ignored. Full command reference: https://github.com/hivecommons/hive/blob/v5/src/docs/maintainer-commands.md.
clubanderson commentedon Oct 16, 2026
Decision brief
Question: How do the daily
Refresh meeting recordingsPRs (#331 and successors) get the now-requiredLint and buildcheck to run, given the workflow still falls back toGITHUB_TOKEN?Context: The decision was already taken on #296 (
/hive decision A — App token, 2026-10-10). The workflow half is merged (#305). What remains is not a decision but a human-only action: the repo secrets are still unprovisioned (actions secrets today:NETLIFY_BUILD_HOOK_URLonly), so #331 sitsBLOCKED. No agent has permission to create an App or write secrets.Options (reply with a number)
contents: write,pull_requests: write, installed onhivecommons/docs), addMEETING_REFRESH_APP_ID+MEETING_REFRESH_APP_PRIVATE_KEY, runworkflow_dispatch. ~10 min, no code change, fully reversible. The hive will then verify check-runs on the new head of docs: refresh community meeting recordings #331 and close this + [quality] provision MEETING_REFRESH_APP_ID/PRIVATE_KEY secrets — refresh PRs still fall back to GITHUB_TOKEN so Vitest/TypeScript never run (#331) #337.create-github-app-tokenfor the PAT. Cheaper to set up, but tied to a person's account and expires.Lint and buildfrom required checks — refresh PRs merge on DCO+Netlify only. Re-opens the [ci-maintainer] meeting-recordings-refresh PR is opened with GITHUB_TOKEN so Build/npm audit never run on it; #293 merged with zero check-runs #296 gap (unverified data-only merges). Not recommended.Recommendation: 1 — it is the already-recorded decision; only the provisioning step is outstanding.
Housekeeping: #337 is the same finding (dedupe pass agreed) — close it as a duplicate of this issue once secrets exist. Leaving
needs-decisionin place because the next step is yours, not the hive's.— decision brief prepared for the operator by the hive's maintainer session
clubanderson commentedon Oct 16, 2026
Operator follow-up on option 1:
The existing hive GitHub App hivecommons-hive (app_id 3568013, installation 158510457) already has
contents: write+pull_requests: writeon every hivecommons repo includingdocs, so no new App is needed. Its private key lives on hive's own spoke at/data/gh-app-key-3568013.pem. Provisioning is a 2-command step, but it copies an org-wide write key into this repo's Actions secrets, so it's deliberately left for a human to run:Recommend adding
repositories: docsto theactions/create-github-app-tokenstep so the minted token is scoped to this repo only. Once run, the hive will verify check-runs on #331 and close this + #337.