class Danger::Bitrise
The patterns used are ‘(%r{.com/(.*)})` and `(%r{.com:(.*)})` and .split(/.git$|$/) to remove “.git” if the URL contains it.
Git Clone Repo step, you may need to set adjust this property in the settings tab, maybe even fake it.
comes from the App Settings tab for your Bitrise App. If you are manually setting a repo URL in the
finding the project and repo slug in the GIT_REPOSITORY_URL variable. This GIT_REPOSITORY_URL variable
Danger will read the environment variable GIT_REPOSITORY_URL to construct the Bitbucket Server API URL
### bitbucket server and bitrise
Add the `DANGER_GITHUB_API_TOKEN` to your workflow’s [Secret App Env Vars](blog.bitrise.io/anyone-even-prs-can-have-secrets).
### Token Setup
“‘
bundle exec danger
bundle install
- content: |-
inputs:
- script@1.1.2:
“`yml
Add a script step to your workflow:
### CI Setup
def self.validates_as_ci?(env)
def self.validates_as_ci?(env) env.key? "BITRISE_IO" end
def self.validates_as_pr?(env)
def self.validates_as_pr?(env) return !env["BITRISE_PULL_REQUEST"].to_s.empty? end
def initialize(env)
def initialize(env) self.pull_request_id = env["BITRISE_PULL_REQUEST"] self.repo_url = env["GIT_REPOSITORY_URL"] matcher_url = self.repo_url self.repo_slug = repo_slug_from(self.repo_url) end
def repo_slug_asgiturl(url)
def repo_slug_asgiturl(url) matcher_url = url repo_matches = matcher_url.match(%r{([/:])(([^/]+/)+[^/]+?)(\.git$|$)})[2] return repo_matches unless repo_matches.nil? end
def repo_slug_from(url)
def repo_slug_from(url) if url =~ URI::DEFAULT_PARSER.make_regexp # Try to parse the URL as a valid URI. This should cover the cases of http/https/ssh URLs. begin uri = URI.parse(url) return uri.path.sub(%r{^(/)}, "").sub(/(.git)$/, "") rescue URI::InvalidURIError # In case URL could not be parsed fallback to git URL parsing. repo_slug_asgiturl(url) end else # In case URL could not be parsed fallback to git URL parsing. git@github.com:organization/repo.git repo_slug_asgiturl(url) end end
def supported_request_sources
def supported_request_sources @supported_request_sources ||= [ Danger::RequestSources::GitHub, Danger::RequestSources::GitLab, Danger::RequestSources::BitbucketServer, Danger::RequestSources::BitbucketCloud ] end