lib/danger/ci_source/buildkite.rb in danger-2.0.1 vs lib/danger/ci_source/buildkite.rb in danger-2.1.0

- old
+ new

@@ -1,29 +1,41 @@ # https://buildkite.com/docs/agent/osx # https://buildkite.com/docs/guides/environment-variables module Danger - module CISource - # https://buildkite.com - class Buildkite < CI - def self.validates?(env) - return false unless env["BUILDKITE"] - return false unless env["BUILDKITE_PULL_REQUEST_REPO"] && !env["BUILDKITE_PULL_REQUEST_REPO"].empty? - return false unless env["BUILDKITE_PULL_REQUEST"] + # ### CI Setup + # + # With BuildKite you run the server yourself, so you will want to run it as a part of your build process. + # It is common to have build steps, so we would recommend adding this to your scrip: + # + # ``` shell + # echo "--- Running Danger" + # bundle exec danger + # ``` + # + # ### 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`. + # + class Buildkite < CI + def self.validates_as_ci?(env) + env.key? "BUILDKITE" + end - return true - end + def self.validates_as_pr?(env) + ["BUILDKITE_PULL_REQUEST_REPO", "BUILDKITE_PULL_REQUEST"].all? { |x| env[x] } + end - def initialize(env) - self.repo_url = env["BUILDKITE_PULL_REQUEST_REPO"] - self.pull_request_id = env["BUILDKITE_PULL_REQUEST"] + def initialize(env) + self.repo_url = env["BUILDKITE_PULL_REQUEST_REPO"] + self.pull_request_id = env["BUILDKITE_PULL_REQUEST"] - repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$}) - self.repo_slug = repo_matches[2] unless repo_matches.nil? - end + repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$}) + self.repo_slug = repo_matches[2] unless repo_matches.nil? + end - def supported_request_sources - @supported_request_sources ||= [Danger::RequestSources::GitHub] - end + def supported_request_sources + @supported_request_sources ||= [Danger::RequestSources::GitHub] end end end