31 lines
		
	
	
		
			912 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			912 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module API
 | 
						|
  module Entities
 | 
						|
    class CommitSignature < Grape::Entity
 | 
						|
      expose :signature_type, documentation: { type: 'string', example: 'PGP' }
 | 
						|
 | 
						|
      expose :signature, merge: true do |commit, options|
 | 
						|
        case commit.signature
 | 
						|
        when ::CommitSignatures::GpgSignature
 | 
						|
          ::API::Entities::GpgCommitSignature.represent commit_signature(commit), options
 | 
						|
        when ::CommitSignatures::X509CommitSignature
 | 
						|
          ::API::Entities::X509Signature.represent commit.signature, options
 | 
						|
        when ::CommitSignatures::SshSignature
 | 
						|
          ::API::Entities::SshSignature.represent(commit.signature, options)
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      expose :commit_source, documentation: { type: 'string', example: 'gitaly' } do |_commit, _|
 | 
						|
        "gitaly"
 | 
						|
      end
 | 
						|
 | 
						|
      private
 | 
						|
 | 
						|
      def commit_signature(commit)
 | 
						|
        commit.signature
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |