38 lines
		
	
	
		
			821 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			821 B
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module API
 | |
|   module Helpers
 | |
|     module PackagesManagerClientsHelpers
 | |
|       extend Grape::API::Helpers
 | |
|       include ::API::Helpers::PackagesHelpers
 | |
| 
 | |
|       def find_job_from_http_basic_auth
 | |
|         return unless request.headers
 | |
| 
 | |
|         token = decode_token
 | |
| 
 | |
|         return unless token
 | |
| 
 | |
|         ::Ci::AuthJobFinder.new(token: token).execute
 | |
|       end
 | |
| 
 | |
|       def find_deploy_token_from_http_basic_auth
 | |
|         return unless request.headers
 | |
| 
 | |
|         token = decode_token
 | |
| 
 | |
|         return unless token
 | |
| 
 | |
|         DeployToken.active.find_by_token(token)
 | |
|       end
 | |
| 
 | |
|       private
 | |
| 
 | |
|       def decode_token
 | |
|         encoded_credentials = request.headers['Authorization'].to_s.split('Basic ', 2).second
 | |
|         Base64.decode64(encoded_credentials || '').split(':', 2).second
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |