Skip to content

Sign outgoing contributions #62

@ddimtirov

Description

@ddimtirov

Considering the Aleyankov vs. Goldman Sachs case, it will be useful if GitProxy provides non-repudiation guarantees for the released contributions.

The proposed solution does not rely on GitProxy being a system of record, and can prove beyond doubt that the contribution has undergone internal review and has been cleared for release according to the company rules (even in case of losing the GitProxy data). It is easy to verify by third party, and the verification part is separable from the contribution in case this is desired.

When GitProxy pushes commits to upstream, it should sign them with instance specific key (GPG or X.509/S-MIME). For patch-based workflow (#61), in addition to the patch file it should email signature file with the instance specific key.

As part of the company OSS engagement, the company is strongly recommended to publicise the public key with which the contributions can be verified. As a minimum, the public key should be accessible from the UI of GitProxy.

Alternatives and considerations:

  • For the git-push case, GitProxy would replace any signatures already present on the commits. This is reasonable, as these are likely to be internal to the company. If desired, once pushed outside the company perimeter, the commits can be re-signed by the contributor. A way to avoid that is instead of signing individual commits, Gitlab to push a signed tag marking the HEAD of the contribution.
  • As many projects don't appreciate tag pollution, this would have to be a per-project setting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestprotocolEverything related with the developer (git) experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions