diff options
author | Balasankar "Balu" C <balasankar@gitlab.com> | 2019-02-07 22:39:14 +0530 |
---|---|---|
committer | Balasankar "Balu" C <balasankar@gitlab.com> | 2019-02-14 11:29:42 +0530 |
commit | 034d1d02b9dec544dd4d04c61ca4404775c57970 (patch) | |
tree | 4b8f21a3128dd3944c7222cddd76b421e4851621 | |
parent | c6016ac8a8c12a736617e5250b63e0c930dda207 (diff) | |
download | gitlab-ce-034d1d02b9dec544dd4d04c61ca4404775c57970.tar.gz |
Add API endpoint to get a commit's GPG signature
-rw-r--r-- | lib/api/commits.rb | 16 | ||||
-rw-r--r-- | lib/api/entities.rb | 7 |
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/api/commits.rb b/lib/api/commits.rb index 9d23daafe95..8defc59224d 100644 --- a/lib/api/commits.rb +++ b/lib/api/commits.rb @@ -323,6 +323,22 @@ module API present paginate(commit.merge_requests), with: Entities::MergeRequestBasic end + + desc "Get a commit's GPG signature" do + success Entities::CommitSignature + end + params do + requires :sha, type: String, desc: 'A commit sha, or the name of a branch or tag' + end + get ':id/repository/commits/:sha/signature', requirements: API::COMMIT_ENDPOINT_REQUIREMENTS do + commit = user_project.commit(params[:sha]) + not_found! 'Commit' unless commit + + signature = commit.signature + not_found! 'GPG Signature' unless signature + + present signature, with: Entities::CommitSignature + end end end end diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 0ef56067b95..614bad68330 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -392,6 +392,13 @@ module API expose :project_id end + class CommitSignature < Grape::Entity + expose :gpg_key_id + expose :gpg_key_primary_keyid, :gpg_key_user_name, :gpg_key_user_email + expose :verification_status + expose :gpg_key_subkey_id + end + class BasicRef < Grape::Entity expose :type, :name end |