42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Gitlab
 | |
|   module Audit
 | |
|     class CiRunnerTokenAuthor < Gitlab::Audit::NullAuthor
 | |
|       # Represents a CI Runner token (registration or authentication)
 | |
|       #
 | |
|       # @param [AuditEvent] audit_event event representing a runner registration/un-registration operation
 | |
|       def initialize(audit_event)
 | |
|         if audit_event.details.include?(:runner_authentication_token)
 | |
|           token = audit_event.details[:runner_authentication_token]
 | |
|           name = "Authentication token: #{token}"
 | |
|         elsif audit_event.details.include?(:runner_registration_token)
 | |
|           token = audit_event.details[:runner_registration_token]
 | |
|           name = "Registration token: #{token}"
 | |
|         else
 | |
|           name = "Token not available"
 | |
|         end
 | |
| 
 | |
|         super(id: -1, name: name)
 | |
| 
 | |
|         @entity_type = audit_event.entity_type
 | |
|         @entity_path = audit_event.entity_path
 | |
|       end
 | |
| 
 | |
|       def full_path
 | |
|         url_helpers = ::Gitlab::Routing.url_helpers
 | |
| 
 | |
|         case @entity_type
 | |
|         when 'Group'
 | |
|           url_helpers.group_settings_ci_cd_path(@entity_path, anchor: 'js-runners-settings')
 | |
|         when 'Project'
 | |
|           project = Project.find_by_full_path(@entity_path)
 | |
|           url_helpers.project_settings_ci_cd_path(project, anchor: 'js-runners-settings') if project
 | |
|         else
 | |
|           url_helpers.admin_runners_path
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |