Class: Danger::CISource::CircleCI
- Inherits:
-
CI
- Object
- CI
- Danger::CISource::CircleCI
show all
- Defined in:
- lib/danger/ci_source/circle.rb
Instance Attribute Summary
Attributes inherited from CI
#pull_request_id, #repo_slug
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(env) ⇒ CircleCI
Returns a new instance of CircleCI.
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/danger/ci_source/circle.rb', line 35
def initialize(env)
@circle_token = env["CIRCLE_CI_API_TOKEN"]
url = pull_request_url(env)
if URI.parse(url).path.split("/").count == 5
paths = URI.parse(url).path.split("/")
self.repo_slug = paths[1] + "/" + paths[2]
self.pull_request_id = paths[4]
end
end
|
Class Method Details
.validates?(env) ⇒ Boolean
8
9
10
11
12
13
|
# File 'lib/danger/ci_source/circle.rb', line 8
def self.validates?(env)
return false if env["CIRCLE_BUILD_NUM"].nil?
return true unless env["CI_PULL_REQUEST"].nil?
return !env["CIRCLE_PROJECT_USERNAME"].nil? && !env["CIRCLE_PROJECT_REPONAME"].nil?
end
|
Instance Method Details
#client ⇒ Object
15
16
17
|
# File 'lib/danger/ci_source/circle.rb', line 15
def client
@client ||= CircleAPI.new(@circle_token)
end
|
#fetch_pull_request_url(repo_slug, build_number) ⇒ Object
19
20
21
22
|
# File 'lib/danger/ci_source/circle.rb', line 19
def fetch_pull_request_url(repo_slug, build_number)
build_json = client.fetch_build(repo_slug, build_number)
build_json[:pull_request_urls].first
end
|
#pull_request_url(env) ⇒ Object
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/danger/ci_source/circle.rb', line 24
def pull_request_url(env)
url = env["CI_PULL_REQUEST"]
if url.nil? && !env["CIRCLE_PROJECT_USERNAME"].nil? && !env["CIRCLE_PROJECT_REPONAME"].nil?
repo_slug = env["CIRCLE_PROJECT_USERNAME"] + "/" + env["CIRCLE_PROJECT_REPONAME"]
url = fetch_pull_request_url(repo_slug, env["CIRCLE_BUILD_NUM"])
end
url
end
|