lib/danger/ci_source/jenkins.rb in danger-2.1.6 vs lib/danger/ci_source/jenkins.rb in danger-3.0.0

- old
+ new

@@ -3,38 +3,55 @@ module Danger # https://jenkins-ci.org # ### CI Setup - # # Ah Jenkins, so many memories. So, if you're using Jenkins, you're hosting your own environment. You - # will want to be using the [GitHub pull request builder plugin](https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin) + # + # #### GitHub + # You will want to be using the [GitHub pull request builder plugin](https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin) # in order to ensure that you have the build environment set up for PR integration. # # With that set up, you can edit your job to add `bundle exec danger` at the build action. # + # ### GitLab + # + # You will want to be using the [GitLabe Plugin](https://github.com/jenkinsci/gitlab-plugin) + # in order to ensure that you have the build environment set up for PR integration. + # + # With that set up, you can edit your job to add `bundle exec danger` at the build action. + # # ### Token Setup # # As you own the machine, it's up to you to add the enviroment variable for the `DANGER_GITHUB_API_TOKEN`. # class Jenkins < CI def self.validates_as_ci?(env) env.key? "JENKINS_URL" end def self.validates_as_pr?(env) - ["ghprbPullId"].all? { |x| env[x] } + id = pull_request_id(env) + !id.nil? && !id.empty? end def supported_request_sources - @supported_request_sources ||= [Danger::RequestSources::GitHub] + @supported_request_sources ||= [Danger::RequestSources::GitHub, Danger::RequestSources::GitLab] end def initialize(env) self.repo_url = env["GIT_URL"] - self.pull_request_id = env["ghprbPullId"] + self.pull_request_id = self.class.pull_request_id(env) repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$}) self.repo_slug = repo_matches[2] unless repo_matches.nil? + end + + def self.pull_request_id(env) + if env["ghprPullId"] + env["ghprPullId"] + else + env["gitlabMergeRequestId"] + end end end end