Skip to content

refactor(ci): consolidate the CI-env scrubber into a shared testing module#1442

Merged
mergify[bot] merged 1 commit into
mainfrom
devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441
May 28, 2026
Merged

refactor(ci): consolidate the CI-env scrubber into a shared testing module#1442
mergify[bot] merged 1 commit into
mainfrom
devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented May 19, 2026

with_ci_env (clear every CI-provider env var before applying
test overrides) lived in two copies — one inside the tests
sub-module of detector.rs, one inside scopes_send.rs (which
also had a with_ci_env_async counterpart). Both spelled the same
10-var list inline; both were drifting candidates.

Extract to a new crate::testing (#[cfg(test)] mod testing) with
the env-var list named as a const, sync + async variants behind one
helper that builds the override list. Each test module now does a
plain use crate::testing::with_ci_env;.

Net -71 / +51. No behavior change; the existing 49 mergify-ci
tests still pass.

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

@jd
Copy link
Copy Markdown
Member Author

jd commented May 19, 2026

This pull request is part of a Mergify stack:

# Pull Request Link
1 refactor(ci): consolidate the CI-env scrubber into a shared testing module #1442 👈
2 refactor: drop stale Phase X.Y doc markers and one inline color branch #1443
3 refactor(tui): share StyledGlyph across queue show/status renderers #1444
4 refactor(queue): drop indexmap, group_by_scope returns a Vec<(K, V)> #1445
5 refactor(ci): swap uuid for getrandom in the GHA heredoc delimiter #1446
6 refactor(config): standardize the workspace on serde_yaml_ng for YAML parsing #1447
7 test(ci): add live smoke test for ci scopes select-all path #1460
8 feat(rust): port ci scopes to native Rust #1461
9 feat(ci): parse JUnit XML reports in native Rust #1465
10 feat(ci): encode JUnit cases as OTLP and upload to Mergify CI Insights #1466
11 feat(ci): promote ci junit-process from shim to native Rust #1467
12 feat(ci): promote ci junit-upload from shim to native as a deprecated alias #1468

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 19, 2026

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🟢 🤖 Continuous Integration

Wonderful, this rule succeeded.
  • all of:
    • check-success=ci-gate

🟢 👀 Review Requirements

Wonderful, this rule succeeded.
  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

🟢 🔎 Reviews

Wonderful, this rule succeeded.
  • #changes-requested-reviews-by = 0
  • #review-requested = 0
  • #review-threads-unresolved = 0

🟢 📕 PR description

Wonderful, this rule succeeded.
  • body ~= (?ms:.{48,})

@jd jd force-pushed the devs/jd/worktree-rust-port/introduce-commandcontext-queue-freeze-prelude--1b272570 branch from 32cbcd9 to c542b1f Compare May 19, 2026 13:04
@jd jd force-pushed the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch from 9484593 to 3e6ba1c Compare May 19, 2026 13:04
@jd jd temporarily deployed to func-tests-live May 19, 2026 13:04 — with GitHub Actions Inactive
@jd
Copy link
Copy Markdown
Member Author

jd commented May 19, 2026

Revision history

# Type Changes Reason Date
1 initial 9484593 2026-05-19 13:04 UTC
2 rebase 9484593 → 3e6ba1c (rebase only) 2026-05-19 13:04 UTC
3 rebase 3e6ba1c → 6d57a9c (rebase only) 2026-05-19 14:15 UTC
4 rebase 6d57a9c → a946696 (rebase only) 2026-05-20 08:42 UTC
5 rebase a946696 → fcfd504 (rebase only) 2026-05-20 09:05 UTC
6 rebase fcfd504 → 2b55249 (rebase only) 2026-05-21 07:25 UTC
7 rebase 2b55249 → b12bb5c (rebase only) 2026-05-21 07:56 UTC
8 rebase b12bb5c → 8b64b4d (rebase only) 2026-05-21 12:39 UTC
9 content 8b64b4d → ab88212 2026-05-22 07:10 UTC
10 rebase ab88212 → 3f12d27 (rebase only) 2026-05-22 14:40 UTC
11 rebase 3f12d27 → 3d06f0f (rebase only) 2026-05-27 07:53 UTC
12 rebase 3d06f0f → d7c68e9 (rebase only) 2026-05-27 08:27 UTC
13 content d7c68e9 → 5b8ad61 (raw) Scrub GITHUB_OUTPUT in the canonical CI_ENV_VARS list — moved here from the Phase B expansion so PRs lower in the stack (#1465 parse JUnit XML) inherit the fix and stop hitting GHA's 'Matching delimi… 2026-05-27 10:04 UTC

@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 19, 2026 13:04 Failure
@mergify mergify Bot requested a review from a team May 19, 2026 13:19
@jd jd force-pushed the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch from 3e6ba1c to 6d57a9c Compare May 19, 2026 14:14
@jd jd force-pushed the devs/jd/worktree-rust-port/introduce-commandcontext-queue-freeze-prelude--1b272570 branch from c542b1f to 141fec6 Compare May 19, 2026 14:14
@jd jd temporarily deployed to func-tests-live May 19, 2026 14:15 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 19, 2026 14:15 Failure
@jd jd temporarily deployed to func-tests-live May 19, 2026 14:18 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 19, 2026 14:18 — with GitHub Actions Inactive
@jd jd marked this pull request as ready for review May 19, 2026 14:57
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 27, 2026 07:53 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch from 3d06f0f to d7c68e9 Compare May 27, 2026 08:27
@jd jd temporarily deployed to func-tests-live May 27, 2026 08:27 — with GitHub Actions Inactive
@jd jd temporarily deployed to func-tests-live May 27, 2026 08:27 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 27, 2026 08:28 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch from d7c68e9 to 5b8ad61 Compare May 27, 2026 10:04
@jd jd temporarily deployed to func-tests-live May 27, 2026 10:04 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 27, 2026 10:06 Failure
Base automatically changed from devs/jd/worktree-rust-port/introduce-commandcontext-queue-freeze-prelude--1b272570 to main May 27, 2026 14:34
@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 27, 2026

@jd this pull request is now in conflict 😩

@mergify mergify Bot added the conflict label May 27, 2026
…odule

`with_ci_env` (clear every CI-provider env var before applying
test overrides) lived in two copies — one inside the `tests`
sub-module of `detector.rs`, one inside `scopes_send.rs` (which
also had a `with_ci_env_async` counterpart). Both spelled the same
10-var list inline; both were drifting candidates.

Extract to a new `crate::testing` (`#[cfg(test)] mod testing`) with
the env-var list named as a const, sync + async variants behind one
helper that builds the override list. Each test module now does a
plain `use crate::testing::with_ci_env;`.

Net `-71 / +51`. No behavior change; the existing 49 `mergify-ci`
tests still pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Change-Id: Icd8c84417ad51b242cc8d9664d1cd40fff744497
@jd jd force-pushed the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch from 5b8ad61 to ac2002a Compare May 28, 2026 07:44
Copilot AI review requested due to automatic review settings May 28, 2026 07:44
@jd jd temporarily deployed to func-tests-live May 28, 2026 07:44 — with GitHub Actions Inactive
@mergify mergify Bot deployed to Mergify Merge Protections May 28, 2026 07:45 Active
@mergify mergify Bot removed the conflict label May 28, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Consolidates two duplicated with_ci_env test helpers (in detector.rs and scopes_send.rs) into a new crate-level #[cfg(test)] mod testing module. The shared helper centralizes the CI-provider env var list and exposes both sync and async variants, also adding GITHUB_OUTPUT to the scrub list to avoid clobbering a GHA runner's step-output file when the suite runs on Actions.

Changes:

  • New crates/mergify-ci/src/testing.rs with CI_ENV_VARS const plus with_ci_env / with_ci_env_async helpers built on temp_env.
  • Removed inline helpers in detector.rs and scopes_send.rs, replaced with use crate::testing::....
  • Wired the new module via #[cfg(test)] mod testing; in lib.rs.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
crates/mergify-ci/src/testing.rs New shared test helper module with const env-var list and sync/async scrubbers.
crates/mergify-ci/src/scopes_send.rs Drops duplicated sync+async helpers, imports shared ones.
crates/mergify-ci/src/detector.rs Drops duplicated sync helper, imports shared one.
crates/mergify-ci/src/lib.rs Registers the new testing module under #[cfg(test)].

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mergify mergify Bot requested a review from a team May 28, 2026 08:00
@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 28, 2026

Merge Queue Status

  • Entered queue2026-05-28 08:26 UTC · Rule: default
  • Checks skipped · PR is already up-to-date
  • Merged2026-05-28 08:27 UTC · at ac2002a0cf4fae136ccfb9e2bff3775b7b0e91f9 · squash

This pull request spent 23 seconds in the queue, including 3 seconds running CI.

Required conditions to merge

@mergify mergify Bot added the queued label May 28, 2026
@mergify mergify Bot merged commit ec40cc0 into main May 28, 2026
20 checks passed
@mergify mergify Bot deleted the devs/jd/worktree-rust-port/consolidate-ci-env-scrubber-shared-testing-module--cd8c8441 branch May 28, 2026 08:27
@mergify mergify Bot removed the queued label May 28, 2026
mergify Bot pushed a commit that referenced this pull request May 28, 2026
#1443)

Two unrelated polish items grouped because each is too small for
its own commit:

1. Module docs across `mergify-core`, `mergify-config`,
   `mergify-queue`, `mergify-cli`, and `mergify-py-shim` were
   pinned to the phase numbering the port plan used during
   bootstrapping ("Phase 1.2 populates…", "Phase 1.7 ports…",
   "Phase 6 deletes…"). Those references no longer aid the reader
   and contradict the project rule about not embedding phase
   numbers in long-lived artifacts — rewrite each docstring to
   describe the module's *current* shape and let `git log`
   reconstruct the trajectory if anyone needs it.

2. `freeze/list.rs::write_row` still had an `if theme.enabled { …
   theme.fg(c) } else { Style::new() }` branch around the Status
   cell — the same redundant indirection the earlier dedup pass
   removed elsewhere. `Theme::fg` already collapses to
   `Style::new()` when colors are disabled, so the outer branch
   is pure noise. Drop it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Depends-On: #1442
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants