Feat/verify upstream before push by codejedi365 · Pull Request #1360 · python-semantic-release/python-semantic-release
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR integrates upstream branch verification directly into Python Semantic Release, eliminating the need for external shell scripts in CI/CD workflows. The implementation adds a new verify_upstream_unchanged() method that checks if the upstream branch has changed before pushing commits, preventing push conflicts when multiple developers are working on the same branch.
- Adds new error types for handling upstream verification failures
- Implements upstream verification logic in the
GitProjectclass - Integrates verification into the version command before pushing changes
- Updates documentation to reflect the new built-in verification
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/semantic_release/errors.py | Adds three new error classes for upstream verification failures |
| src/semantic_release/gitproject.py | Implements the verify_upstream_unchanged() method with upstream branch verification logic |
| src/semantic_release/cli/commands/version.py | Integrates upstream verification check before pushing changes |
| tests/unit/semantic_release/test_gitproject.py | Adds comprehensive unit tests for the new verification method |
| tests/e2e/cmd_version/test_version_upstream_check.py | Adds end-to-end tests for upstream verification scenarios |
| docs/configuration/automatic-releases/github-actions.rst | Removes manual upstream verification step from documentation and adds note about built-in verification |
| docs/configuration/configuration-guides/uv_integration.rst | Removes manual upstream verification script reference |
| docs/api/commands.rst | Documents the new automatic upstream verification behavior |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.