feat(push): add --no-sign to push unsigned commits

pkgmgr push --no-sign skips the re-sign rebase and the unsigned-range
refusal, so a checkout without a usable signing key can still sync the
fetch URL and every mirror pushurl. Leases and the git cherry guard
still apply. push_branch takes sign as a required keyword; pkgmgr
release and release --retry pass sign=True, so releases stay signed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Veen-BirkenbachandClaude Opus 5.5 committed 2026-11-01 01:55:31 +01:00
1 parent 944b4cb663
commit f40cc5cfde
6 files changed
+67 -30

No files matched your search

@@ -83,7 +83,9 @@ class TestRetryRelease(unittest.TestCase):
retry_release(pyproject_path="pyproject.toml", preview=False)
mock_push.assert_called_once_with(".", [], refs=("v1.13.4",), preview=False)
mock_push.assert_called_once_with(
".", [], sign=True, refs=("v1.13.4",), preview=False
)
mock_update_latest.assert_called_once_with("v1.13.4", preview=False)
@patch("pkgmgr.actions.release.retry.update_latest_tag")
@@ -143,7 +145,9 @@ class TestRetryRelease(unittest.TestCase):
retry_release(pyproject_path="pyproject.toml", preview=False)
mock_push.assert_called_once_with(".", [], refs=("v2.0.0",), preview=False)
mock_push.assert_called_once_with(
".", [], sign=True, refs=("v2.0.0",), preview=False
)
if __name__ == "__main__":