Class: Danger::GitLabCI
Overview
### CI Setup
Install dependencies and add a danger step to your .gitlab-ci.yml: “‘ yml before_script:
- bundle install
danger:
script:
- bundle exec danger
“‘ ### Token Setup
Add the ‘DANGER_GITLAB_API_TOKEN` to your pipeline env variables.
Instance Attribute Summary
Attributes inherited from CI
#pull_request_id, #repo_slug, #repo_url
Class Method Summary collapse
- .determine_merge_request_id(env) ⇒ Object
- .validates_as_ci?(env) ⇒ Boolean
- .validates_as_pr?(env) ⇒ Boolean
Instance Method Summary collapse
-
#initialize(env) ⇒ GitLabCI
constructor
A new instance of GitLabCI.
- #supported_request_sources ⇒ Object
Methods inherited from CI
available_ci_sources, inherited, #supports?
Constructor Details
#initialize(env) ⇒ GitLabCI
Returns a new instance of GitLabCI.
48 49 50 51 |
# File 'lib/danger/ci_source/gitlab_ci.rb', line 48 def initialize(env) self.repo_slug = env["CI_PROJECT_ID"] self.pull_request_id = self.class.determine_merge_request_id(env) end |
Class Method Details
.determine_merge_request_id(env) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/danger/ci_source/gitlab_ci.rb', line 32 def self.determine_merge_request_id(env) return env["CI_MERGE_REQUEST_ID"] if env["CI_MERGE_REQUEST_ID"] return 0 unless env["CI_COMMIT_SHA"] project_id = env["CI_PROJECT_ID"] base_commit = env["CI_COMMIT_SHA"] client = RequestSources::GitLab.new(nil, env).client merge_requests = client.merge_requests(project_id, state: :opened) merge_request = merge_requests.auto_paginate.find do |mr| mr.sha == base_commit end merge_request.nil? ? 0 : merge_request.iid end |
.validates_as_ci?(env) ⇒ Boolean
20 21 22 |
# File 'lib/danger/ci_source/gitlab_ci.rb', line 20 def self.validates_as_ci?(env) env.key? "GITLAB_CI" end |
.validates_as_pr?(env) ⇒ Boolean
24 25 26 27 28 29 30 |
# File 'lib/danger/ci_source/gitlab_ci.rb', line 24 def self.validates_as_pr?(env) exists = [ "GITLAB_CI", "CI_PROJECT_ID" ].all? { |x| env[x] } exists && determine_merge_request_id(env).to_i > 0 end |
Instance Method Details
#supported_request_sources ⇒ Object
53 54 55 |
# File 'lib/danger/ci_source/gitlab_ci.rb', line 53 def supported_request_sources @supported_request_sources ||= [Danger::RequestSources::GitLab] end |