Skip to content

Enabling --signoff / -s on commits #5351

Closed

Description

@jancborchardt

Please describe the problem you think should be solved

A lot of open source projects work with the Developer Certificate of Origin (like Linux, Nextcloud and others). Currently, commits created with GitHub Desktop can not be signed off and you would have to amend each one using the command line. Or you have to manually insert the Signed-off-by: … line in every commit.

Do you have any potential solutions in mind?

Possible solutions are:

  1. Simply sign off every commit automatically. The only thing to add to the commit message is:
Signed-off-by: Name <[email protected]>
  1. Or if automatic signing has any drawback, have a global (or per-project) setting on whether commits should be signed automatically.

Activity

  1. added
    user-researchIssues that might benefit from user interviews, validations, and/or usability testing
    on Aug 7, 2018
  2. shiftkey commented on Aug 7, 2018

    @shiftkey
    Member

    @jancborchardt thanks for the suggestion!

    A couple of questions I have about this:

    • Commits are always signed based on the user.name and user.email settings in Git. If we don't let the user choose this are they going to be confused?
    • When repositories require this, is the typical convention is for all commits to be signed? There's no real need to sign one commit but not the next other when working in a repository, right?
  3. perploug commented on Aug 8, 2018

    @perploug

    Personally I use a global git-hook to ensure that my commits in github desktop contains a sign-off automatically (Sample docs)

    IMO having a global setting which enables gh desktop to automatically sign-off all commits would be very helpful. Having sign-off in a commit, even when not need, doesn't seem to have any drawbacks.

    Bots like DCO Bot requires all commits to have sign-off to pass the status check

  4. jancborchardt commented on Aug 9, 2018

    @jancborchardt
    Author

    Commits are always signed based on the user.name and user.email settings in Git. If we don't let the user choose this are they going to be confused?

    A simple way this could be handled right now:

    • If there is no user.name and user.email set, do not sign the commits.
    • If they are set, don’t sign the commits "stealthily", but basically just prepopulate the the Description field.

    In the future, there could be an interface to set these user.name and .email attributes (or is there already)?

    When repositories require this, is the typical convention is for all commits to be signed? There's no real need to sign one commit but not the next other when working in a repository, right?

    Yes, usually that is the case. As @perploug mentioned there are bots which require all commits to have sign-off, and that’s the case for us too.


    And @shiftkey thanks a lot for your work bringing GitHub Desktop to Linux! Much appreciated! 🎉

  5. shiftkey commented on Aug 9, 2018

    @shiftkey
    Member

    @jancborchardt

    In the future, there could be an interface to set these user.name and .email attributes (or is there already)?

    It's available in the File | Preferences (macOS) or File | Options (Windows/Linux) menu:

  6. jancborchardt commented on Aug 9, 2018

    @jancborchardt
    Author

    @shiftkey right, sorry I should have checked. :) What do you think about the points about how automatic signing could be handled?

  7. billygriffin commented on Aug 10, 2018

    @billygriffin
    Contributor

    @jancborchardt Do you think the prepopulation in the description field would be a good idea across the board? I think it would have the potential to cause additional churn for folks on projects that don't require this sign off, as it's adding something into a text field that the user didn't actually type. Thoughts?

    cc: @ampinsk

  8. jancborchardt commented on Aug 12, 2018

    @jancborchardt
    Author

    @billygriffin no, I'd say that's more of a hack for the short term. Ideally you would have:

    • A setting, either global or per-project, on if commits should be signed. Then if you don't need the sign-off, you won't see anything.
    • If it will be signed, don't put anything specific in the commit view. Maybe only some kind of checkmark icon with a "Signed off " tooltip".
  9. perploug commented on Aug 13, 2018

    @perploug

    Agree with @jancborchardt: a small indicator like the +1 person icon at the bottom would be sufficient.

    One thing to consider tho, is that if you use different tools besides GH Desktop, you will have inconsistent commit signing, throughout my day I commit from desktop, cmdline and vscode - whatever is convenient. So consider if the solution would rather be to automate signing at a git-hook level, rather than on the tool level. GH Desktop could make this process easy by adding a global or project specific git-hook, which would then make signing consistent across whatever git tool you might use.

  10. billygriffin commented on Aug 13, 2018

    @billygriffin
    Contributor

    That's helpful, thanks for the context! @ampinsk Do you have thoughts on this? I'm not sure much user research would be that helpful here.

  11. added
    design-input-neededIssues that require design input from the core team before the work can be started
    on Aug 13, 2018
  12. Aparnarr commented on Aug 27, 2018

    @Aparnarr

    HI i am not able to sign my previous commits

  13. removed
    user-researchIssues that might benefit from user interviews, validations, and/or usability testing
    on Nov 19, 2018
  14. jancborchardt commented on Jun 22, 2019

    @jancborchardt
    Author

    @shiftkey @billygriffin @ampinsk is there any more info or designs needed? I’m also an interaction designer & user researcher so I’d love to help if that is what this is stuck at. 🙂

  15. Naitik333 commented on Aug 16, 2019

    @Naitik333

    @jancborchardt any updates on this? when can we expect automatic signoff in the commits through github desktop tool? currently after every commit we have to manually signoff them

  16. 15 remaining items

  17. TheWitness commented on Jun 10, 2025

    @TheWitness

    Adding my $0.02 on this.... ppppplease, pretty pppppplease :). Option below the 'Description' box.

  18. igalloway commented on Aug 28, 2025

    @igalloway

    Bump: Would appreciate this feature. Recently started causing me problems.

    FWIW as a user, I envision it as a checkbox on the commit dialog in the lower right of the desktop client. Maybe an icon like the "add co-others" in that dialog.
    I think literally this would this not just append the -s flag to the git background commit command if checked?
    An alternative or additional option would be to add a checkbox in the settings where your name and email and default branch are set.

  19. added and removed
    design-input-neededIssues that require design input from the core team before the work can be started
    on Mar 5, 2026
  20. github-actions commented on Mar 5, 2026

    @github-actions
    Contributor

    Thank you for your issue! We have categorized it as an enhancement (feature or improvement) request, and it has been added to our backlog. In doing so, we are not committing to implementing this feature at this time, but, we will consider it for future releases based on community feedback and our own product roadmap.

    Unless you see the help wanted Issues marked as ideal for external contributors label, we are not currently looking for external contributions for this feature.

    If you come across this issue and would like to see it implemented, please add a thumbs up! This will help us prioritize the feature. Please only comment if you have additional information or viewpoints to contribute.

  21. added theissue type on Mar 9, 2026
  22. added and removed on Mar 9, 2026
  23. szaimen commented on Mar 10, 2026

    @szaimen

    🎉🎉🎉🎉🎉

  24. TheWitness commented on Mar 10, 2026

    @TheWitness

    Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions