Skip to content

feat(rust): port freeze list to native Rust#1435

Open
jd wants to merge 1 commit into
devs/jd/worktree-rust-port/add-live-smoke-test-freeze-list--51b65370from
devs/jd/worktree-rust-port/port-freeze-list-native-rust--40ca436a
Open

feat(rust): port freeze list to native Rust#1435
jd wants to merge 1 commit into
devs/jd/worktree-rust-port/add-live-smoke-test-freeze-list--51b65370from
devs/jd/worktree-rust-port/port-freeze-list-native-rust--40ca436a

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented May 19, 2026

mergify freeze list is now handled by the Rust binary: a
single GET /v1/repos/<repo>/scheduled_freeze with --json
passthrough of the inner scheduled_freezes array or a
human-readable table (ID / Reason / Start / End / Conditions /
Status). The active-vs-scheduled flag is best-effort against
UTC now — same approximation as Python's _is_active, with
the same wrong-timezone caveat.

New crate mergify-freeze mirrors the per-group layout used by
mergify-queue and mergify-ci. Wired into the CLI via a new
freeze clap group with global --token / --api-url /
--repository options.

Non-ported subcommands (create / update / delete) continue
to fall through to the Python shim — they are not in
NATIVE_COMMANDS, so looks_native rejects them and the
fallback path runs unchanged. CRUD ports follow.

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

Depends-On: #1434

@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 test(skill): port the skill-references test to Rust #1414
2 test(freeze): add live smoke test for freeze list #1434
3 feat(rust): port freeze list to native Rust #1435 👈
4 test(freeze): add live smoke test for freeze create/update/delete #1436
5 feat(rust): port freeze create/update/delete to native Rust #1437
6 refactor(rust): dedupe emit-helper boilerplate across command crates #1438
7 refactor(rust): share test scaffolding via mergify-test-support crate #1439
8 refactor(core): introduce CommandContext for the queue+freeze prelude #1441
9 refactor(ci): consolidate the CI-env scrubber into a shared testing module #1442
10 refactor: drop stale Phase X.Y doc markers and one inline color branch #1443
11 refactor(tui): share StyledGlyph across queue show/status renderers #1444
12 refactor(queue): drop indexmap, group_by_scope returns a Vec<(K, V)> #1445
13 refactor(ci): swap uuid for getrandom in the GHA heredoc delimiter #1446
14 refactor(config): standardize the workspace on serde_yaml_ng for YAML parsing #1447

@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.

🔴 ⛓️ Depends-On Requirements

Waiting for

This rule is failing.

Requirement based on the presence of Depends-On in the body of the pull request

🔴 👀 Review Requirements

Waiting for

  • #approved-reviews-by>=2
This rule is failing.
  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🔴 🔎 Reviews

Waiting for

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

🟢 🤖 Continuous Integration

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

🟢 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)(?:\(.+\))?:

🟢 📕 PR description

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

@jd
Copy link
Copy Markdown
Member Author

jd commented May 19, 2026

Revision history

# Type Changes Reason Date
1 initial 63fc500 2026-05-19 13:04 UTC
2 rebase 63fc500 → 078f0e6 (rebase only) 2026-05-19 13:04 UTC
3 rebase 078f0e6 → fca204c (rebase only) 2026-05-19 14:15 UTC
4 rebase fca204c → 392d96b (rebase only) 2026-05-20 08:42 UTC
5 rebase 392d96b → e92fa13 (rebase only) 2026-05-20 09:05 UTC

@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 19, 2026 13:04 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/port-freeze-list-native-rust--40ca436a branch from 078f0e6 to fca204c 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 force-pushed the devs/jd/worktree-rust-port/port-freeze-list-native-rust--40ca436a branch from fca204c to 392d96b Compare May 20, 2026 08:42
@jd jd temporarily deployed to func-tests-live May 20, 2026 08:42 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 20, 2026 08:43 Failure
`mergify freeze list` is now handled by the Rust binary: a
single `GET /v1/repos/<repo>/scheduled_freeze` with `--json`
passthrough of the inner `scheduled_freezes` array or a
human-readable table (ID / Reason / Start / End / Conditions /
Status). The active-vs-scheduled flag is best-effort against
UTC `now` — same approximation as Python's `_is_active`, with
the same wrong-timezone caveat.

New crate `mergify-freeze` mirrors the per-group layout used by
`mergify-queue` and `mergify-ci`. Wired into the CLI via a new
`freeze` clap group with global `--token` / `--api-url` /
`--repository` options.

Non-ported subcommands (`create` / `update` / `delete`) continue
to fall through to the Python shim — they are not in
`NATIVE_COMMANDS`, so `looks_native` rejects them and the
fallback path runs unchanged. CRUD ports follow.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Change-Id: I40ca436a13dde8b5d725ef2fc023d35f7b66340e
@jd jd force-pushed the devs/jd/worktree-rust-port/port-freeze-list-native-rust--40ca436a branch from 392d96b to e92fa13 Compare May 20, 2026 09:05
@jd jd temporarily deployed to func-tests-live May 20, 2026 09:05 — with GitHub Actions Inactive
@mergify mergify Bot had a problem deploying to Mergify Merge Protections May 20, 2026 09:06 Failure
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.

1 participant