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