Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/rulesets/develop.ruleset.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,17 @@
}
]
}
},
{
"type": "merge_queue",
"parameters": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Provide the required merge queue merge method

When these ruleset JSON files are applied through the GitHub repository rulesets API, this new merge_queue rule is invalid because parameters.merge_method is documented as required (MERGE, SQUASH, or REBASE). The same block was added to main.ruleset.json, so both protected branches may reject the ruleset update rather than enabling the queue. Add the chosen method to each merge_queue parameters object.

Useful? React with 👍 / 👎.

"check_response_timeout_minutes": 60,
"grouping_strategy": "ALLGREEN",
"max_entries_to_build": 5,
"max_entries_to_merge": 5,
"min_entries_to_merge": 1,
"min_entries_to_merge_wait_minutes": 0
}
}
Comment on lines +42 to 52

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The merge_queue rule type in GitHub Repository Rulesets does not support the merge_method parameter. Including it will cause ruleset validation to fail when GitHub parses the JSON schema. The merge method is instead determined by the repository's general settings or pull request merge settings.

    {
      "type": "merge_queue",
      "parameters": {
        "check_response_timeout_minutes": 60,
        "grouping_strategy": "ALLGREEN",
        "max_entries_to_build": 5,
        "max_entries_to_merge": 5,
        "min_entries_to_merge": 1,
        "min_entries_to_merge_wait_minutes": 0
      }
    }

],
"bypass_actors": []
Expand Down
11 changes: 11 additions & 0 deletions .github/rulesets/main.ruleset.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,17 @@
}
]
}
},
{
"type": "merge_queue",
"parameters": {
"check_response_timeout_minutes": 60,
"grouping_strategy": "ALLGREEN",
"max_entries_to_build": 5,
"max_entries_to_merge": 5,
"min_entries_to_merge": 1,
"min_entries_to_merge_wait_minutes": 0
}
}
Comment on lines +39 to 49

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The merge_queue rule type in GitHub Repository Rulesets does not support the merge_method parameter. Including it will cause ruleset validation to fail when GitHub parses the JSON schema. The merge method is instead determined by the repository's general settings or pull request merge settings.

    {
      "type": "merge_queue",
      "parameters": {
        "check_response_timeout_minutes": 60,
        "grouping_strategy": "ALLGREEN",
        "max_entries_to_build": 5,
        "max_entries_to_merge": 5,
        "min_entries_to_merge": 1,
        "min_entries_to_merge_wait_minutes": 0
      }
    }

],
"bypass_actors": []
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
branches: [develop]
push:
branches: [develop]
merge_group:
types: [checks_requested]
Comment thread
coderabbitai[bot] marked this conversation as resolved.

permissions:
contents: read
Expand Down Expand Up @@ -53,13 +55,14 @@ jobs:
node-version: "22.22.1"
- run: npm ci
- name: Validate branch name
if: github.event_name != 'merge_group'
env:
BRANCH_NAME: ${{ github.event.pull_request.head.ref || github.ref_name }}
BRANCH_NAME: ${{ github.event.merge_group.head_ref || github.event.pull_request.head.ref || github.ref_name }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Skip branch validation for merge-group refs

When this job runs for merge_group, GitHub uses a temporary queue branch (gh-readonly-queue/{base_branch}/... in the merge-queue docs), so this value becomes a queue ref rather than the original PR branch. scripts/validation/validate-branch-name.js only accepts protected names, bot names, audit branches, or {prefix}/..., so npm run validate:branch-name exits 1 and CI • Unified Checks / All Checks Passed still fails in the queue. Skip this step for merge_group or teach the validator to accept the queue ref.

Useful? React with 👍 / 👎.

run: npm run validate:branch-name
Comment on lines 57 to 61
- run: npm run validate:json
- run: npm run validate:issue-fields
- run: npm run validate:retired-doc-links
- run: npm run validate:frontmatter:changed -- --base ${{ github.event.pull_request.base.sha || github.event.before }} --head ${{ github.event.pull_request.head.sha || github.sha }}
- run: npm run validate:frontmatter:changed -- --base ${{ github.event.merge_group.base_sha || github.event.pull_request.base.sha || github.event.before }} --head ${{ github.event.merge_group.head_sha || github.event.pull_request.head.sha || github.sha }}

# Composite status check: ensures all checks pass before merge
all-checks:
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/main-branch-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened, edited, ready_for_review]
merge_group:
types: [checks_requested]

permissions:
contents: read
Expand Down Expand Up @@ -45,6 +47,11 @@ jobs:
const missingSections = (body, sections) =>
sections.filter((entry) => !entry.regex.test(String(body || ''))).map((entry) => entry.name);

if (context.eventName === 'merge_group') {
core.info('Branch shape already validated at PR open/edit time. Passing in merge queue context.');
return;
}

if (!['pull_request', 'pull_request_target'].includes(context.eventName)) {
fail(`This guard only runs on pull_request or pull_request_target events (received '${context.eventName}').`);
return;
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/validate-pr-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
# - any future step that executes repository code must preserve this trust boundary
pull_request_target:
types: [opened, edited, reopened, synchronize, ready_for_review]
merge_group:
types: [checks_requested]

permissions:
contents: read
Expand All @@ -17,7 +19,11 @@ jobs:
validate-pr-template:
runs-on: ubuntu-latest
steps:
- name: Pass in merge queue context
if: github.event_name == 'merge_group'
run: echo "✅ PR template already validated at PR open/edit time. Skipping re-validation in merge queue."
- name: Validate pull request body against required template sections
if: github.event_name != 'merge_group'
uses: actions/github-script@v7
with:
script: |
Expand Down
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- **GitHub Merge Queue support** — Added `merge_group: types: [checks_requested]` trigger to `checks.yml`, `validate-pr-template.yml`, and `main-branch-guard.yml` so required status checks fire correctly inside GitHub's Merge Queue. Skipped branch-name validation for `merge_group` runs and updated the changed-files comparison to use merge-queue SHAs. Added `merge_queue` rule (ALLGREEN grouping, 60-minute check timeout) to both `develop` and `main` branch rulesets. ([PR #1008](https://github.com/lightspeedwp/.github/pull/1008), [Issue #1008](https://github.com/lightspeedwp/.github/issues/1008))

- **Mermaid WCAG 2.2 AA colour contrast validation** — Added `scripts/validation/validate-mermaid-colour-contrast.js` which checks every `style` declaration in Mermaid diagrams against a pre-verified WCAG 2.2 AA palette (minimum 4.5:1 contrast ratio). The validator supports `--changed-files` scoping for CI efficiency, flags unparseable hex values as errors, strips inline `%%` comments before parsing, and generates a dated markdown report under `.github/reports/mermaid/`. Added `npm run validate:mermaid-contrast` script. Updated `.github/workflows/validate-mermaid-pr.yml` to run all three diagram checks (syntax, accessibility, contrast) on every PR that modifies `.md`/`.mdx` files, posting a consolidated status comment. Updated `instructions/mermaid.instructions.md` with the approved seven-role WCAG AA palette and required structure. Fixed all existing diagram `style` declarations across `README.md`, `docs/AGENT_CREATION.md`, `profile/README.md`, `scripts/README.md`, `tests/README.md`, and `.github/ISSUE_TEMPLATE/README.md` to use the approved palette triples (`fill`, `color`, `stroke`). ([#977](https://github.com/lightspeedwp/.github/pull/977), [#976](https://github.com/lightspeedwp/.github/issues/976))

### Changed
Expand Down Expand Up @@ -120,7 +122,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Onboarding page: Wapuu-Yoduu for wisdom and guidance
- Glossary page: Wapuu-Astropuu for reference and learning
- References page: Wapuu-Rocket for navigation and discovery
All Wapuus feature responsive sizing (clamp 100-200px), drop-shadow filters for visual depth, proper accessibility attributes (aria-hidden), and fluid flexbox layouts for hero sections that adapt across mobile, tablet, and desktop viewports.
All Wapuus feature responsive sizing (clamp 100-200px), drop-shadow filters for visual depth, proper accessibility attributes (aria-hidden), and fluid flexbox layouts for hero sections that adapt across mobile, tablet, and desktop viewports.

### Fixed

Expand Down
Loading