gsxdsm
d59c1b162f
FN-8855: enforce configured PR checks before merging
Add configurable Fusion-side PR check gating across merge surfaces.
- Add project required-check settings, validation, UI controls, CLI support, and operator documentation.
- Evaluate configured checks before dashboard and CLI PR merges, accepting successful, skipped, and neutral checks.
- Bind merges to the evaluated PR head SHA to prevent push-and-merge races.
- Cover required-check policy and head-SHA merge behavior with tests.
Files changed:
.changeset/fn-8855-required-checks.md | 7 +
docs/dashboard-guide.md | 5 +
docs/settings-reference.md | 1 +
.../src/commands/__tests__/task-lifecycle.test.ts | 30 ++++-
packages/cli/src/commands/task-lifecycle.ts | 17 ++-
.../core/src/__tests__/required-checks.test.ts | 16 +++
packages/core/src/config/index.ts | 1 +
packages/core/src/config/required-checks.ts | 16 +++
packages/core/src/config/settings-schema.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/types.ts | 6 +
packages/core/src/types/settings/settings-scope.ts | 6 +
packages/core/src/types/task/task-tracking.ts | 5 +
.../settings/__tests__/section-keys.test.ts | 1 +
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/MergeSection.search.ts | 3 +
.../components/settings/sections/MergeSection.tsx | 30 ++++-
.../__tests__/MergeSection.requiredChecks.test.tsx | 50 +++++++
.../settings-default-descriptions.test.tsx | 1 +
packages/dashboard/src/__tests__/github.test.ts | 123 +++++++++++++++++
packages/dashboard/src/github.ts | 149 +++++++++++++--------
.../dashboard/src/routes/register-git-github.ts | 38 ++++--
.../src/routes/register-task-workflow-routes.ts | 8 +-
packages/i18n/locales/en/app.json | 4 +-
24 files changed, 441 insertions(+), 79 deletions(-)
Fusion-Task-Id: FN-8855
Fusion-Task-Lineage: 708e9c27-72be-4925-bf09-5db421bcaa67
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-09 01:33:06 -07:00
..
2026-08-07 17:33:56 -07:00
2026-08-09 01:33:06 -07:00
2026-06-03 13:02:23 -07:00
2026-08-03 09:04:45 -07:00
2026-04-23 23:02:35 -07:00
2026-05-01 05:04:05 -07:00
2026-06-14 15:29:35 -07:00
2026-07-30 21:50:37 -07:00
2026-08-07 01:36:34 -07:00
2026-07-14 23:18:55 -07:00
2026-07-25 00:54:46 -07:00
2026-08-03 12:16:32 -07:00
2026-08-01 06:09:04 -07:00
2026-07-25 00:54:46 -07:00
2026-07-15 14:01:08 -07:00
2026-07-19 13:34:25 -07:00