lib/danger/ci_source/xcode_server.rb in danger-2.0.1 vs lib/danger/ci_source/xcode_server.rb in danger-2.1.0
- old
+ new
@@ -1,29 +1,42 @@
# Following the advice from @czechboy0 https://github.com/danger/danger/issues/171
module Danger
- module CISource
- # https://github.com/czechboy0/Buildasaur
- class XcodeServer < CI
- def self.validates?(env)
- return false unless env["XCS_BOT_NAME"]
+ # https://github.com/czechboy0/Buildasaur
+ class XcodeServer < CI
+ ### CI Setup
+ #
+ # If you're bold enough to use Xcode Bots. You will need to use [Buildasaur](https://github.com/czechboy0/Buildasaur)
+ # in order to work with Danger. This will set up your build environment for you, as the name of the bot contains all
+ # of the environment variables that Danger needs to work.
+ #
+ # With Buildasaur set up, you can edit your job to add `bundle exec danger` as a post-actoin build script.
+ #
+ # ### Token Setup
+ #
+ # As this is self-hosted, you will need to add the `DANGER_GITHUB_API_TOKEN` to your build user's ENV. The alternative
+ # is to pass in the token as a prefix to the command `DANGER_GITHUB_API_TOKEN="123" bundle exec danger`.`.
+ #
+ def self.validates_as_ci?(env)
+ env.key? "XCS_BOT_NAME"
+ end
- return true
- end
+ def self.validates_as_pr?(env)
+ env["XCS_BOT_NAME"].include? "BuildaBot"
+ end
- def supported_request_sources
- @supported_request_sources ||= [Danger::RequestSources::GitHub]
- end
+ def supported_request_sources
+ @supported_request_sources ||= [Danger::RequestSources::GitHub]
+ end
- def initialize(env)
- bot_name = env["XCS_BOT_NAME"]
- return if bot_name.nil?
+ def initialize(env)
+ bot_name = env["XCS_BOT_NAME"]
+ return if bot_name.nil?
- repo_matches = bot_name.match(/\[(.+)\]/)
- self.repo_slug = repo_matches[1] unless repo_matches.nil?
- pull_request_id_matches = bot_name.match(/#(\d+)/)
- self.pull_request_id = pull_request_id_matches[1] unless pull_request_id_matches.nil?
- self.repo_url = GitRepo.new.origins # Xcode Server doesn't provide a repo url env variable :/
- end
+ repo_matches = bot_name.match(/\[(.+)\]/)
+ self.repo_slug = repo_matches[1] unless repo_matches.nil?
+ pull_request_id_matches = bot_name.match(/#(\d+)/)
+ self.pull_request_id = pull_request_id_matches[1] unless pull_request_id_matches.nil?
+ self.repo_url = GitRepo.new.origins # Xcode Server doesn't provide a repo url env variable :/
end
end
end