Sha256: 18b44513bd004a6bb29069c5d18428eca7e8ae5a7c9332802b75f3afb22f3ed9

Contents?: true

Size: 1.62 KB

Versions: 6

Compression:

Stored size: 1.62 KB

Contents

# https://www.jetbrains.com/teamcity/

module Danger
  # ### CI Setup
  #
  # You need to go to your project settings. Then depending on the type of your build settings, you may need
  # to add a new build step for Danger. You want to be able to run the command `bundle exec danger`, so
  # the "Simple Command Runner" should be all you need to do that.
  #
  # ### Token + Environment 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`.
  #
  # However, you will need to find a way to add the environment vars: `GITHUB_REPO_SLUG`, `GITHUB_PULL_REQUEST_ID` and
  # `GITHUB_REPO_URL`. These are not added by default. You could do this via the GitHub API potentially.
  #
  # We would love some advice on improving this setup.
  #
  class TeamCity < CI
    def self.validates_as_ci?(env)
      env.key? "TEAMCITY_VERSION"
    end

    def self.validates_as_pr?(env)
      ["GITHUB_PULL_REQUEST_ID", "GITHUB_REPO_URL", "GITHUB_REPO_SLUG"].all? { |x| env[x] }
    end

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

    def initialize(env)
      # NB: Unfortunately TeamCity doesn't provide these variables
      # automatically so you have to add these variables manually to your
      # project or build configuration
      self.repo_slug       = env["GITHUB_REPO_SLUG"]
      self.pull_request_id = env["GITHUB_PULL_REQUEST_ID"].to_i
      self.repo_url        = env["GITHUB_REPO_URL"]
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
danger-2.1.6 lib/danger/ci_source/teamcity.rb
danger-2.1.5 lib/danger/ci_source/teamcity.rb
danger-2.1.4 lib/danger/ci_source/teamcity.rb
danger-2.1.3 lib/danger/ci_source/teamcity.rb
danger-2.1.2 lib/danger/ci_source/teamcity.rb
danger-2.1.1 lib/danger/ci_source/teamcity.rb