Skip to content

ci: harden publish-pypi against accidental manual publishes (slice #50)#6

Merged
buildrr89 merged 1 commit intomainfrom
slice-50-publish-pypi-safety
Apr 20, 2026
Merged

ci: harden publish-pypi against accidental manual publishes (slice #50)#6
buildrr89 merged 1 commit intomainfrom
slice-50-publish-pypi-safety

Conversation

@buildrr89
Copy link
Copy Markdown
Owner

Summary

  • `workflow_dispatch.inputs.dry_run.default` flipped from `"false"` to `"true"` — manual runs now build-only unless opted in.
  • Publish job's `if:` predicate switched to a positive form: `release-published OR (workflow_dispatch AND dry_run == 'false')`. Unexpected input values now fail closed instead of publishing.
  • New contract test in `tests/test_repo_contracts.py` locks both invariants.

Safety margin for a first-release repo wired to a trusted publisher.

Test plan

  • `uv run pytest -q` — 211 passing
  • PR CI: proof + wheel-smoke green

🤖 Generated with Claude Code

workflow_dispatch now defaults dry_run to "true" (was "false") and the
publish job's if: predicate switches to a positive form so unexpected
input values fail closed instead of publishing. Contract test locks both
invariants in place.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Warning

Rate limit exceeded

@buildrr89 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 31 minutes and 9 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 31 minutes and 9 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: eb6ec25e-fa6d-4d8e-8771-05abe30d673b

📥 Commits

Reviewing files that changed from the base of the PR and between 6167cec and a7cbb65.

📒 Files selected for processing (4)
  • .github/workflows/publish-pypi.yml
  • CHANGELOG.md
  • docs/NEXT_EXECUTION_BACKLOG.md
  • tests/test_repo_contracts.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch slice-50-publish-pypi-safety

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

RADE score diff

Compared 6167cec95232876472afd376d046d4be8eabbf07 -> a7cbb65392d144a316882045e024a34d43c0fccb.
Regression gate status: disabled.
Direction: higher reusability is better; lower accessibility_risk is better.

Metric Base Head Delta
reusability 86 86 0
accessibility_risk 70 70 0

Generated by RADE GitHub Action.

@buildrr89 buildrr89 merged commit c292105 into main Apr 20, 2026
6 checks passed
@buildrr89 buildrr89 deleted the slice-50-publish-pypi-safety branch April 20, 2026 00:41
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.

1 participant