class CodeClimate::TestReporter::Ci

def self.service_data(env = ENV)

def self.service_data(env = ENV)
  if env["TRAVIS"]
    {
      name:             "travis-ci",
      branch:           env["TRAVIS_BRANCH"],
      build_identifier: env["TRAVIS_JOB_ID"],
      pull_request:     env["TRAVIS_PULL_REQUEST"],
    }
  elsif env["CIRCLECI"]
    {
      name:             "circleci",
      build_identifier: env["CIRCLE_BUILD_NUM"],
      branch:           env["CIRCLE_BRANCH"],
      commit_sha:       env["CIRCLE_SHA1"],
    }
  elsif env["SEMAPHORE"]
    {
      name:             "semaphore",
      branch:           env["BRANCH_NAME"],
      build_identifier: env["SEMAPHORE_BUILD_NUMBER"],
    }
  elsif env["JENKINS_URL"]
    {
      name:             "jenkins",
      build_identifier: env["BUILD_NUMBER"],
      build_url:        env["BUILD_URL"],
      branch:           env["GIT_BRANCH"],
      commit_sha:       env["GIT_COMMIT"],
    }
  elsif env["TDDIUM"]
    {
      name:             "tddium",
      build_identifier: env["TDDIUM_SESSION_ID"],
      worker_id:        env["TDDIUM_TID"],
    }
  elsif env["WERCKER"]
    {
      name:             "wercker",
      build_identifier: env["WERCKER_BUILD_ID"],
      build_url:        env["WERCKER_BUILD_URL"],
      branch:           env["WERCKER_GIT_BRANCH"],
      commit_sha:       env["WERCKER_GIT_COMMIT"],
    }
  elsif env["APPVEYOR"]
    {
      name:             "appveyor",
      build_identifier: env["APPVEYOR_BUILD_ID"],
      build_url:        env["APPVEYOR_API_URL"],
      branch:           env["APPVEYOR_REPO_BRANCH"],
      commit_sha:       env["APPVEYOR_REPO_COMMIT"],
      pull_request:     env["APPVEYOR_PULL_REQUEST_NUMBER"],
    }
  elsif env["CI_NAME"] =~ /DRONE/i
    {
      name:             "drone",
      build_identifier: env["CI_BUILD_NUMBER"],
      build_url:        env["CI_BUILD_URL"],
      branch:           env["CI_BRANCH"],
      commit_sha:       env["CI_COMMIT"],
      pull_request:     env["CI_PULL_REQUEST"],
    }
  elsif env["CI_NAME"] =~ /codeship/i
    {
      name:             "codeship",
      build_identifier: env["CI_BUILD_ID"],
      # build URL cannot be reconstructed for Codeship since env does not contain project ID
      build_url:        env["CI_BUILD_URL"],
      branch:           env["CI_BRANCH"],
      commit_sha:       env["CI_COMMIT_ID"],
      # CI timestamp is not quite equivalent to commited at but there's no equivalent in Codeship
      committed_at:     env["CI_TIMESTAMP"],
    }
  elsif env["CI_NAME"] =~ /VEXOR/i
    {
      name:             "vexor",
      build_identifier: env["CI_BUILD_NUMBER"],
      build_url:        env["CI_BUILD_URL"],
      branch:           env["CI_BRANCH"],
      commit_sha:       env["CI_BUILD_SHA"],
      pull_request:     env["CI_PULL_REQUEST_ID"],
    }
  elsif env["BUILDKITE"]
    {
      name:             "buildkite",
      build_identifier: env["BUILDKITE_JOB_ID"],
      build_url:        env["BUILDKITE_BUILD_URL"],
      branch:           env["BUILDKITE_BRANCH"],
      commit_sha:       env["BUILDKITE_COMMIT"],
    }
  elsif env["GITLAB_CI"]
    {
      name:             "gitlab-ci",
      build_identifier: env["CI_BUILD_ID"],
      branch:           env["CI_BUILD_REF_NAME"],
      commit_sha:       env["CI_BUILD_REF"],
    }
  else
    {}
  end
end