Repository navigation
Closed
Labels
Description
Feature Request
Description
Add support for automatically including a Signed-off-by line in all Git commits created by python-semantic-release.
This enables release commits (version bumps, changelog commits, etc.) to comply with Developer Certificate of Origin (DCO) requirements by appending the standard signoff trailer generated by git commit --signoff.
Use cases
- Projects enforcing the DCO (Developer Certificate of Origin).
- Teams requiring all commits — including automated release commits — to include a
Signed-off-by:trailer. - CI/CD pipelines that validate commits using DCO bots or tools like
dco-checkorgit-validate. - Ensuring semantic-release–generated commits do not violate merge policies requiring signoff.
Possible implementation
- Add a configuration option, e.g.:
git_signoff: bool
- When enabled, semantic-release should behave as if
git commit --signoffwas used for all generated commits. - Implementation ideas:
- Extend the GitPython commit call to append the signoff trailer.
- Or use the Git CLI directly to create commits with
--signoffwhen the option is enabled. - or add a placeholder
{commit_author}to the commit message(configuredcommit_message) so that users add the siging line manually
- The signoff line should follow the standard format:
using py-semantic release's configured
Signed-off-by: <author name> <author email>commit_author - Ensure compatibility with CI environments where Git identity must be set explicitly.
Alternative solutions
- Manually amending commits after semantic-release runs, which breaks automation and reproducibility.
- Wrapping semantic-release in a script that adds signoff afterward, which is fragile and may interfere with tagging or changelog generation.
- Disabling DCO checks for automated commits, which is often not acceptable for compliance or governance reasons.
- Adding the signoff line directly in the configured
commit_message.
This only works whencommit_authoris statically configured.
It fails when the author is overridden via CLI flags or environment variables, because the signoff line must match the actual commit author to satisfy DCO validation. Therefore, this approach is unreliable and cannot guarantee compliance.
Activity
jkowalleck commentedon Jun 8, 2026
@codejedi365 thanks for triaging the issue.
I am willing to work on the feature.
Would you accept a pull-request?
github-actions commentedon Sep 6, 2026
It has been 90 days since the last update on this confirmed issue. @python-semantic-release/team can you provide an update on the status of this issue?
jkowalleck commentedon Sep 7, 2026
still relevant, still open
codejedi365 commentedon Sep 7, 2026
@jkowalleck, when an issue is labeled as confirmed, it will not be closed. The bot just helps trigger identification of issues that have been sitting for a while without any update from the maintainers (hence the wording of the message).
No update as of yet, I've been quite busy with other things.
feat(cmd-version): add optional `git --signoff` to version commits
feat(cmd-version): add optional `git --signoff` to version commits
feat(cmd-version): add optional `git --signoff` to version commits
feat(cmd-version): add optional `git --signoff` to version commits (#…
codejedi365 commentedon Sep 22, 2026
🎉 This issue has been implemented in v10.7.0 🎉
You can find more information about this release on the GitHub Releases page.
If your feature is not work as desired, please reply here and we will re-open the issue. If you have a new desired outcome, please open a new issue and reference this issue there.