Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ private static PullRequestInfo buildUserPullRequestInfo(
new PullRequestInfo(
config.getGitPullRequestBaseBranch(),
config.getGitPullRequestBaseBranchSha(),
config.getGitCommitHeadSha());
config.getGitCommitHeadSha(),
null);

if (userInfo.isComplete()) {
return userInfo;
Expand All @@ -140,7 +141,8 @@ private static PullRequestInfo buildUserPullRequestInfo(
new PullRequestInfo(
null,
environment.get(Constants.DDCI_PULL_REQUEST_TARGET_SHA),
environment.get(Constants.DDCI_PULL_REQUEST_SOURCE_SHA));
environment.get(Constants.DDCI_PULL_REQUEST_SOURCE_SHA),
null);

return PullRequestInfo.merge(userInfo, ddCiInfo);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ class AppVeyorInfo implements CIProviderInfo {
public static final String APPVEYOR_REPO_PROVIDER = "APPVEYOR_REPO_PROVIDER";
public static final String APPVEYOR_REPO_COMMIT = "APPVEYOR_REPO_COMMIT";
public static final String APPVEYOR_REPO_BRANCH = "APPVEYOR_REPO_BRANCH";
public static final String APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH =
"APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH";
public static final String APPVEYOR_PULL_REQUEST_HEAD_COMMIT =
"APPVEYOR_PULL_REQUEST_HEAD_COMMIT";
public static final String APPVEYOR_REPO_TAG_NAME = "APPVEYOR_REPO_TAG_NAME";
public static final String APPVEYOR_REPO_COMMIT_MESSAGE_SUBJECT = "APPVEYOR_REPO_COMMIT_MESSAGE";
public static final String APPVEYOR_REPO_COMMIT_MESSAGE_BODY =
"APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED";
public static final String APPVEYOR_REPO_COMMIT_AUTHOR_NAME = "APPVEYOR_REPO_COMMIT_AUTHOR";
public static final String APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL =
"APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL";
public static final String APPVEYOR_PR_HEAD_REPO_BRANCH =
"APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH";
public static final String APPVEYOR_PR_HEAD_COMMIT = "APPVEYOR_PULL_REQUEST_HEAD_COMMIT";
public static final String APPVEYOR_PR_NUMBER = "APPVEYOR_PULL_REQUEST_NUMBER";

private final CiEnvironment environment;

Expand Down Expand Up @@ -87,19 +87,20 @@ public CIInfo buildCIInfo() {
@Override
public PullRequestInfo buildPullRequestInfo() {
// check if PR is detected
if (Strings.isNotBlank(environment.get(APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH))) {
if (Strings.isNotBlank(environment.get(APPVEYOR_PR_HEAD_REPO_BRANCH))) {
return new PullRequestInfo(
normalizeBranch(environment.get(APPVEYOR_REPO_BRANCH)),
null,
environment.get(APPVEYOR_PULL_REQUEST_HEAD_COMMIT));
environment.get(APPVEYOR_PR_HEAD_COMMIT),
environment.get(APPVEYOR_PR_NUMBER));
} else {
return PullRequestInfo.EMPTY;
}
}

private String buildGitBranch(final String repoProvider) {
if ("github".equals(repoProvider)) {
String branch = environment.get(APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH);
String branch = environment.get(APPVEYOR_PR_HEAD_REPO_BRANCH);
if (branch == null || branch.isEmpty()) {
branch = environment.get(APPVEYOR_REPO_BRANCH);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ class AzurePipelinesInfo implements CIProviderInfo {
public static final String AZURE_BUILD_SOURCEVERSION_MESSAGE = "BUILD_SOURCEVERSIONMESSAGE";
public static final String AZURE_BUILD_REQUESTED_FOR_ID = "BUILD_REQUESTEDFORID";
public static final String AZURE_BUILD_REQUESTED_FOR_EMAIL = "BUILD_REQUESTEDFOREMAIL";
public static final String AZURE_PR_NUMBER = "SYSTEM_PULLREQUEST_PULLREQUESTNUMBER";
public static final String AZURE_PR_TARGET_BRANCH = "SYSTEM_PULLREQUEST_TARGETBRANCH";

private final CiEnvironment environment;

Expand Down Expand Up @@ -85,7 +87,11 @@ public CIInfo buildCIInfo() {
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return PullRequestInfo.EMPTY;
return new PullRequestInfo(
normalizeBranch(environment.get(AZURE_PR_TARGET_BRANCH)),
null,
null,
environment.get(AZURE_PR_NUMBER));
}

private String buildGitBranch() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class BitBucketInfo implements CIProviderInfo {
public static final String BITBUCKET_GIT_BRANCH = "BITBUCKET_BRANCH";
public static final String BITBUCKET_GIT_TAG = "BITBUCKET_TAG";
public static final String BITBUCKET_PR_DESTINATION_BRANCH = "BITBUCKET_PR_DESTINATION_BRANCH";
public static final String BITBUCKET_PR_NUMBER = "BITBUCKET_PR_ID";

private final CiEnvironment environment;

Expand Down Expand Up @@ -76,7 +77,10 @@ public CIInfo buildCIInfo() {
@Override
public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(BITBUCKET_PR_DESTINATION_BRANCH)), null, null);
normalizeBranch(environment.get(BITBUCKET_PR_DESTINATION_BRANCH)),
null,
null,
environment.get(BITBUCKET_PR_NUMBER));
}

private String buildPipelineUrl(final String repo, final String number) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class BitriseInfo implements CIProviderInfo {
public static final String BITRISE_GIT_COMMITER_NAME = "GIT_CLONE_COMMIT_COMMITER_NAME";
public static final String BITRISE_GIT_COMMITER_EMAIL = "GIT_CLONE_COMMIT_COMMITER_EMAIL";
public static final String BITRISE_GIT_BRANCH_DEST = "BITRISEIO_GIT_BRANCH_DEST";
public static final String BITRISE_PR_NUMBER = "BITRISE_PULL_REQUEST";

private final CiEnvironment environment;

Expand Down Expand Up @@ -73,7 +74,10 @@ public CIInfo buildCIInfo() {
@Override
public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(BITRISE_GIT_BRANCH_DEST)), null, null);
normalizeBranch(environment.get(BITRISE_GIT_BRANCH_DEST)),
null,
null,
environment.get(BITRISE_PR_NUMBER));
}

private String buildGitCommit() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class BuddyInfo implements CIProviderInfo {
public static final String BUDDY_GIT_COMMIT_AUTHOR = "BUDDY_EXECUTION_REVISION_COMMITTER_NAME";
public static final String BUDDY_GIT_COMMIT_EMAIL = "BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL";
public static final String BUDDY_RUN_PR_BASE_BRANCH = "BUDDY_RUN_PR_BASE_BRANCH";
public static final String BUDDY_RUN_PR_NUMBER = "BUDDY_RUN_PR_NO";

private final CiEnvironment environment;

Expand Down Expand Up @@ -64,7 +65,10 @@ public CIInfo buildCIInfo() {
@Override
public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(BUDDY_RUN_PR_BASE_BRANCH)), null, null);
normalizeBranch(environment.get(BUDDY_RUN_PR_BASE_BRANCH)),
null,
null,
environment.get(BUDDY_RUN_PR_NUMBER));
}

private String getPipelineId(String pipelineNumber) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class BuildkiteInfo implements CIProviderInfo {
public static final String BUILDKITE_GIT_AUTHOR_EMAIL = "BUILDKITE_BUILD_AUTHOR_EMAIL";
public static final String BUILDKITE_AGENT_ID = "BUILDKITE_AGENT_ID";
private static final String BUILDKITE_CI_NODE_LABEL_PREFIX = "BUILDKITE_AGENT_META_DATA_";
private static final String BUILDKITE_PULL_REQUEST = "BUILDKITE_PULL_REQUEST";
private static final String BUILDKITE_PULL_REQUEST_NUMBER = "BUILDKITE_PULL_REQUEST";
private static final String BUILDKITE_PULL_REQUEST_BASE_BRANCH =
"BUILDKITE_PULL_REQUEST_BASE_BRANCH";

Expand Down Expand Up @@ -83,13 +83,16 @@ public CIInfo buildCIInfo() {
public PullRequestInfo buildPullRequestInfo() {
if (isPullRequest()) {
return new PullRequestInfo(
normalizeBranch(environment.get(BUILDKITE_PULL_REQUEST_BASE_BRANCH)), null, null);
normalizeBranch(environment.get(BUILDKITE_PULL_REQUEST_BASE_BRANCH)),
null,
null,
environment.get(BUILDKITE_PULL_REQUEST_NUMBER));
}
return PullRequestInfo.EMPTY;
}

private boolean isPullRequest() {
String pullRequest = environment.get(BUILDKITE_PULL_REQUEST);
String pullRequest = environment.get(BUILDKITE_PULL_REQUEST_NUMBER);
return pullRequest != null && !"false".equals(pullRequest);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public Map<String, String> getCiTags(CIInfo ciInfo, PullRequestInfo pullRequestI
.withPullRequestBaseBranch(pullRequestInfo)
.withPullRequestBaseBranchSha(pullRequestInfo)
.withGitCommitHeadSha(pullRequestInfo)
.withPullRequestNumber(pullRequestInfo)
.withGitRepositoryUrl(gitInfo)
.withGitCommit(gitInfo)
.withGitBranch(gitInfo)
Expand Down Expand Up @@ -135,6 +136,10 @@ public CITagsBuilder withGitCommitHeadSha(final PullRequestInfo pullRequestInfo)
return putTagValue(Tags.GIT_COMMIT_HEAD_SHA, pullRequestInfo.getGitCommitHeadSha());
}

public CITagsBuilder withPullRequestNumber(final PullRequestInfo pullRequestInfo) {
return putTagValue(Tags.PULL_REQUEST_NUMBER, pullRequestInfo.getPullRequestNumber());
}

public CITagsBuilder withGitRepositoryUrl(final GitInfo gitInfo) {
return putTagValue(Tags.GIT_REPOSITORY_URL, gitInfo.getRepositoryURL());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class CircleCIInfo implements CIProviderInfo {
public static final String CIRCLECI_GIT_BRANCH = "CIRCLE_BRANCH";
public static final String CIRCLECI_GIT_TAG = "CIRCLE_TAG";
public static final String CIRCLECI_JOB_NAME = "CIRCLE_JOB";
public static final String CIRCLECI_PR_NUMBER = "CIRCLE_PR_NUMBER";

private final CiEnvironment environment;

Expand Down Expand Up @@ -60,7 +61,7 @@ public CIInfo buildCIInfo() {
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return PullRequestInfo.EMPTY;
return new PullRequestInfo(null, null, null, environment.get(CIRCLECI_PR_NUMBER));
}

private String buildPipelineUrl(final String pipelineId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ public class CodefreshInfo implements CIProviderInfo {
private static final String CF_REVISION = "CF_REVISION";
private static final String CF_COMMIT_MESSAGE = "CF_COMMIT_MESSAGE";
private static final String CF_COMMIT_AUTHOR = "CF_COMMIT_AUTHOR";
private static final String CF_PULL_REQUEST_NUMBER = "CF_PULL_REQUEST_NUMBER";
private static final String CF_PULL_REQUEST_TARGET_BRANCH = "CF_PULL_REQUEST_TARGET";

private final CiEnvironment environment;

Expand All @@ -46,7 +48,11 @@ public GitInfo buildCIGitInfo() {
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return PullRequestInfo.EMPTY;
return new PullRequestInfo(
normalizeBranch(environment.get(CF_PULL_REQUEST_TARGET_BRANCH)),
null,
null,
environment.get(CF_PULL_REQUEST_NUMBER));
}

private String buildGitBranch() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public class DroneInfo implements CIProviderInfo {
public static final String DRONE_COMMIT_AUTHOR_NAME = "DRONE_COMMIT_AUTHOR_NAME";
public static final String DRONE_COMMIT_AUTHOR_EMAIL = "DRONE_COMMIT_AUTHOR_EMAIL";
public static final String DRONE_COMMIT_MESSAGE = "DRONE_COMMIT_MESSAGE";
public static final String DRONE_PULL_REQUEST_NUMBER = "DRONE_PULL_REQUEST";
public static final String DRONE_PULL_REQUEST_TARGET_BRANCH = "DRONE_TARGET_BRANCH";

private final CiEnvironment environment;

Expand Down Expand Up @@ -63,7 +65,11 @@ public CIInfo buildCIInfo() {
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return PullRequestInfo.EMPTY;
return new PullRequestInfo(
normalizeBranch(environment.get(DRONE_PULL_REQUEST_TARGET_BRANCH)),
null,
null,
environment.get(DRONE_PULL_REQUEST_NUMBER));
}

private PersonInfo buildGitAuthor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class GitLabInfo implements CIProviderInfo {
"CI_MERGE_REQUEST_TARGET_BRANCH_NAME";
public static final String GITLAB_PULL_REQUEST_COMMIT_HEAD_SHA =
"CI_MERGE_REQUEST_SOURCE_BRANCH_SHA";
public static final String GITLAB_PULL_REQUEST_NUMBER = "CI_MERGE_REQUEST_IID";

private final CiEnvironment environment;

Expand Down Expand Up @@ -87,7 +88,8 @@ public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(GITLAB_PULL_REQUEST_BASE_BRANCH)),
null,
environment.get(GITLAB_PULL_REQUEST_COMMIT_HEAD_SHA));
environment.get(GITLAB_PULL_REQUEST_COMMIT_HEAD_SHA),
environment.get(GITLAB_PULL_REQUEST_NUMBER));
}

private PersonInfo buildGitCommitAuthor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,11 +123,11 @@ public PullRequestInfo buildPullRequestInfo() {
}
}

return new PullRequestInfo(baseRef, baseSha, headSha);
return new PullRequestInfo(baseRef, baseSha, headSha, null);

} catch (Exception e) {
LOGGER.warn("Error while parsing GitHub event", e);
return new PullRequestInfo(baseRef, null, null);
return new PullRequestInfo(baseRef, null, null, null);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ class JenkinsInfo implements CIProviderInfo {
public static final String JENKINS_DD_CUSTOM_TRACE_ID = "DD_CUSTOM_TRACE_ID";
public static final String JENKINS_NODE_NAME = "NODE_NAME";
public static final String JENKINS_NODE_LABELS = "NODE_LABELS";
public static final String JENKINS_PR_NUMBER = "CHANGE_ID";
public static final String JENKINS_PR_BASE_BRANCH = "CHANGE_TARGET";

private final CiEnvironment environment;

Expand Down Expand Up @@ -72,7 +74,11 @@ public CIInfo buildCIInfo() {
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return PullRequestInfo.EMPTY;
return new PullRequestInfo(
normalizeBranch(environment.get(JENKINS_PR_BASE_BRANCH)),
null,
null,
environment.get(JENKINS_PR_NUMBER));
}

private String buildCiNodeLabels() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@

public class PullRequestInfo {

public static final PullRequestInfo EMPTY = new PullRequestInfo(null, null, null);
public static final PullRequestInfo EMPTY = new PullRequestInfo(null, null, null, null);

private final String pullRequestBaseBranch;
private final String pullRequestBaseBranchSha;
private final String gitCommitHeadSha;
private final String pullRequestNumber;

public PullRequestInfo(
String pullRequestBaseBranch, String pullRequestBaseBranchSha, String gitCommitHeadSha) {
String pullRequestBaseBranch,
String pullRequestBaseBranchSha,
String gitCommitHeadSha,
String pullRequestNumber) {
this.pullRequestBaseBranch = pullRequestBaseBranch;
this.pullRequestBaseBranchSha = pullRequestBaseBranchSha;
this.gitCommitHeadSha = gitCommitHeadSha;
this.pullRequestNumber = pullRequestNumber;
}

public String getPullRequestBaseBranch() {
Expand All @@ -30,16 +35,22 @@ public String getGitCommitHeadSha() {
return gitCommitHeadSha;
}

public String getPullRequestNumber() {
return pullRequestNumber;
}

public boolean isNotEmpty() {
return Strings.isNotBlank(pullRequestBaseBranch)
|| Strings.isNotBlank(pullRequestBaseBranchSha)
|| Strings.isNotBlank(gitCommitHeadSha);
|| Strings.isNotBlank(gitCommitHeadSha)
|| Strings.isNotBlank(pullRequestNumber);
}

public boolean isComplete() {
return Strings.isNotBlank(pullRequestBaseBranch)
&& Strings.isNotBlank(pullRequestBaseBranchSha)
&& Strings.isNotBlank(gitCommitHeadSha);
&& Strings.isNotBlank(gitCommitHeadSha)
&& Strings.isNotBlank(pullRequestNumber);
}

/**
Expand All @@ -59,7 +70,10 @@ public static PullRequestInfo merge(PullRequestInfo info, PullRequestInfo fallba
: fallback.pullRequestBaseBranchSha,
Strings.isNotBlank(info.gitCommitHeadSha)
? info.gitCommitHeadSha
: fallback.gitCommitHeadSha);
: fallback.gitCommitHeadSha,
Strings.isNotBlank(info.pullRequestNumber)
? info.pullRequestNumber
: fallback.pullRequestNumber);
}

@Override
Expand All @@ -73,12 +87,14 @@ public boolean equals(Object o) {
PullRequestInfo that = (PullRequestInfo) o;
return Objects.equals(pullRequestBaseBranch, that.pullRequestBaseBranch)
&& Objects.equals(pullRequestBaseBranchSha, that.pullRequestBaseBranchSha)
&& Objects.equals(gitCommitHeadSha, that.gitCommitHeadSha);
&& Objects.equals(gitCommitHeadSha, that.gitCommitHeadSha)
&& Objects.equals(pullRequestNumber, that.pullRequestNumber);
}

@Override
public int hashCode() {
return Objects.hash(pullRequestBaseBranch, pullRequestBaseBranchSha, gitCommitHeadSha);
return Objects.hash(
pullRequestBaseBranch, pullRequestBaseBranchSha, gitCommitHeadSha, pullRequestNumber);
}

@Override
Expand All @@ -93,6 +109,9 @@ public String toString() {
+ ", commitSHA='"
+ gitCommitHeadSha
+ '\''
+ ", prNumber='"
+ pullRequestNumber
+ '\''
+ '}';
}
}
Loading