Class: Danger::Semaphore

Inherits:
CI
  • Object
show all
Defined in:
lib/danger/ci_source/semaphore.rb

Overview

CI Setup

For Semaphore you will want to go to the settings page of the project. Inside "Build Settings" you should add bundle exec danger to the Setup thread. Note that Semaphore only provides the build environment variables necessary for Danger on PRs across forks.

Token Setup

You can add your DANGER_GITHUB_API_TOKEN inside the "Environment Variables" section in the settings.

Instance Attribute Summary

Attributes inherited from CI

#pull_request_id, #repo_slug, #repo_url

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CI

available_ci_sources, inherited, #supports?

Constructor Details

#initialize(env) ⇒ Semaphore

Returns a new instance of Semaphore.



33
34
35
36
37
# File 'lib/danger/ci_source/semaphore.rb', line 33

def initialize(env)
  self.repo_slug = env["SEMAPHORE_GIT_REPO_SLUG"] || env["SEMAPHORE_REPO_SLUG"]
  self.pull_request_id = env["SEMAPHORE_GIT_PR_NUMBER"] || env["PULL_REQUEST_NUMBER"]
  self.repo_url = env["SEMAPHORE_GIT_URL"] || GitRepo.new.origins
end

Class Method Details

.validates_as_ci?(env) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/danger/ci_source/semaphore.rb', line 18

def self.validates_as_ci?(env)
  env.key? "SEMAPHORE"
end

.validates_as_pr?(env) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
# File 'lib/danger/ci_source/semaphore.rb', line 22

def self.validates_as_pr?(env)
  one = ["SEMAPHORE_REPO_SLUG", "PULL_REQUEST_NUMBER"].all? { |x| env[x] && !env[x].empty? }
  two = ["SEMAPHORE_GIT_REPO_SLUG", "SEMAPHORE_GIT_PR_NUMBER"].all? { |x| env[x] && !env[x].empty? }

  one || two
end

Instance Method Details

#supported_request_sourcesObject



29
30
31
# File 'lib/danger/ci_source/semaphore.rb', line 29

def supported_request_sources
  @supported_request_sources ||= [Danger::RequestSources::GitHub]
end