Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Snippets
  • Sign up now
  • Login
  • Sign in / Register
  • gitaly gitaly
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 657
    • Issues 657
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 48
    • Merge requests 48
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • gitalygitaly
  • Merge requests
  • !4802

feat(gitaly-git2go): sign commits with OpenPGP key

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Savely Krasovsky requested to merge L11R/gitaly:master into master Aug 09, 2022
  • Overview 95
  • Commits 22
  • Pipelines 41
  • Changes 38

Sign commits made via WebUI (edit, WebIDE, merge requests)

Problem

To combat supply chain attacks, you must sign every commit you make. We currently use pre-receive hook to reject every unsigned commit, but this breaks web-commits completely. While it is still better to sign commits directly on a workstation, I think it is acceptable for some projects to allow commits made using webui, but still gain some benefits. Signing all commits reduces the risks and allows you to deploy more restrictive policies (like in our case with pre-receive hook).

Links

  • gitlab#19185
  • https://github.com/github/roadmap/issues/331
  • https://docs.github.com/en/enterprise-server@3.5/admin/configuration/configuring-your-enterprise/configuring-web-commit-signing

Old issues

  • gitlab-foss#36619 (moved)
  • gitlab-foss#36944 (closed)
  • gitlab-foss#42098 (closed)
  • gitlab-foss#50852 (closed)

Progress

  • Sign commits
    • apply
    • cherry-pick
    • commit
    • conflicts
    • merge
    • rebase
    • resolve
    • revert
    • submodule
  • Sign tags (tag signing currently not supported by git2go)
  • gitaly-git2go should support commits both with and without signature
  • Pass existing Go tests
  • Add new tests to cover cases with signed commits
  • Add an option in GitLab admin to sign web-commits
  • Add an option in config.toml
  • Display this signatures in UI properly (in scope of gitlab!95231)
  • (Optional) Generate default key pair during first boot (after installation or update) (first iteration probably should be configured manually)
Edited Aug 18, 2022 by Savely Krasovsky
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: master