Skip to content

Auto-skip release validation columns from PR labels on main release tabs#231

Merged
jvbriones merged 5 commits intomainfrom
copilot/update-skipped-validation-logic
Mar 20, 2026
Merged

Auto-skip release validation columns from PR labels on main release tabs#231
jvbriones merged 5 commits intomainfrom
copilot/update-skipped-validation-logic

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 19, 2026

Release validation rows were always initialized with empty Validated cells, even when PR labels explicitly indicate validation should be skipped. This update adds label-driven auto-skip behavior for main release tabs and leaves all pre- tabs unchanged.

Description

  • Main-release-only auto-skip

    • Applies skip logic only when writing to non-pre- tabs (main release tabs after rename).
    • pre-* tabs do not get automatic Skipped values.
  • Supported skip labels

    • Global: skip-release-validation
    • Granular: skip-release-validation[android|ios|design|chrome|firefox]
    • design skips both validation columns for the repo type.
  • Repo-aware label filtering

    • Mobile ignores extension-only labels: [chrome], [firefox]
    • Extension ignores mobile-only labels: [android], [ios]
    • Invalid labels are ignored, not errored.
  • Comments column for auto-skips

    • Uses the existing template Comments column (column J), rather than adding a new comment column.
    • When any validation cell is auto-skipped, the skip reason and effective labels are written to that existing Comments column.
  • Sheet range updates

    • Header updates remain A2:H2 (renaming validated columns for platform-specific labels).
    • Row read/append ranges use A3:J / A4:J so existing Design Validation and Comments columns are preserved and the auto-skip note is written in Comments.

Example

// Extension main-release row with labels:
// skip-release-validation[chrome], skip-release-validation[design]
[
  /* ...A-F... */,
  'Skipped', // Validated (Chrome)
  'Skipped', // Validated (Firefox) via [design]
  '', // Design Validation (existing template column)
  'Release validation automatically skipped due to PR labels: skip-release-validation[chrome], skip-release-validation[design]' // Comments (existing template column)
]

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.


Note

Medium Risk
Medium risk because it changes how the post-merge tracker writes Google Sheets rows (expands to columns A–J and mutates validation/comment cells) based on PR labels, which could affect reporting if label parsing or column indexing is wrong.

Overview
Adds label-driven auto-skip behavior to the post-merge validation tracker so PRs labeled skip-release-validation (or granular skip-release-validation[...]) automatically get Skipped populated in the relevant Validated columns and a reason written into the existing Comments column.

Updates sheet read/append ranges from A3:H/A4:H to A3:J/A4:J and extends generated rows to include the extra Design Validation and Comments columns, preserving template columns while inserting the auto-skip note.

Written by Cursor Bugbot for commit d8b8462. This will update automatically on new commits. Configure here.

Co-authored-by: davidmurdoch <187813+davidmurdoch@users.noreply.github.com>
Copilot AI changed the title [WIP] Update post-merge validation to handle skip-release-validation labels Auto-skip release validation columns from PR labels on main release tabs Mar 19, 2026
Copilot AI requested a review from davidmurdoch March 19, 2026 16:00
Comment thread .github/scripts/post-merge-validation-tracker.mjs Outdated
Copilot AI and others added 2 commits March 19, 2026 17:10
Co-authored-by: davidmurdoch <187813+davidmurdoch@users.noreply.github.com>
Co-authored-by: davidmurdoch <187813+davidmurdoch@users.noreply.github.com>
@jvbriones jvbriones marked this pull request as ready for review March 20, 2026 08:07
@jvbriones
Copy link
Copy Markdown
Contributor

jvbriones commented Mar 20, 2026

added a commit to apply the logic in both main and rc tabs. The script actually only looks at daily merged PRs in main populating the pre- tab, and when it detects a new version bump in package.json it just remove the pre- prefix and creates a new pre- tab for current main version.

Changes look good, this is the current behaviour:

Screenshot 2026-03-20 at 08 59 56

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

.slice()
.sort((a, b) => new Date(a.mergedAtIso) - new Date(b.mergedAtIso))
.map((e) => e.row);
.map((e) => applyAutoSkipToRow(e.row, e.labels, repo));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

processTab passes wrong repo format to auto-skip

Medium Severity

processTab is defined at module scope so the repo reference on this line resolves to the module-level repo ("MetaMask/metamask-extension", full owner/repo format) rather than the repo-name-only value ("metamask-extension") that processRepo receives as its parameter. applyAutoSkipToRow and getAutoSkipLabelsForPR accept a parameter named repoName and happen to work only because endsWith('-mobile') / endsWith('-extension') match both formats. If the detection logic is ever tightened, this will silently break. The repo name (not the full path) needs to be passed explicitly, e.g. as a parameter to processTab.

Additional Locations (2)
Fix in Cursor Fix in Web

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.

The finding is accurate as a code hygiene observation — processTab closing over the module-level repo instead of receiving an explicit parameter is a latent coupling issue — but it is not a live bug for our two supported repos:

.endsWith('-mobile')` and .endsWith('-extension')

@jvbriones jvbriones merged commit e80d306 into main Mar 20, 2026
21 checks passed
@jvbriones jvbriones deleted the copilot/update-skipped-validation-logic branch March 20, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants