-
Notifications
You must be signed in to change notification settings - Fork 331
Expand file tree
/
Copy pathDroneInfo.java
More file actions
84 lines (73 loc) · 3.18 KB
/
DroneInfo.java
File metadata and controls
84 lines (73 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package datadog.trace.civisibility.ci;
import static datadog.trace.api.git.GitUtils.filterSensitiveInfo;
import static datadog.trace.api.git.GitUtils.normalizeBranch;
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
import datadog.trace.civisibility.ci.env.CiEnvironment;
import javax.annotation.Nonnull;
public class DroneInfo implements CIProviderInfo {
public static final String DRONE = "DRONE";
public static final String DRONE_PROVIDER_NAME = "drone";
public static final String DRONE_BUILD_NUMBER = "DRONE_BUILD_NUMBER";
public static final String DRONE_BUILD_LINK = "DRONE_BUILD_LINK";
public static final String DRONE_STEP_NAME = "DRONE_STEP_NAME";
public static final String DRONE_STAGE_NAME = "DRONE_STAGE_NAME";
public static final String DRONE_WORKSPACE = "DRONE_WORKSPACE";
public static final String DRONE_GIT_HTTP_URL = "DRONE_GIT_HTTP_URL";
public static final String DRONE_COMMIT_SHA = "DRONE_COMMIT_SHA";
public static final String DRONE_BRANCH = "DRONE_BRANCH";
public static final String DRONE_TAG = "DRONE_TAG";
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;
DroneInfo(CiEnvironment environment) {
this.environment = environment;
}
@Override
public GitInfo buildCIGitInfo() {
return new GitInfo(
filterSensitiveInfo(environment.get(DRONE_GIT_HTTP_URL)),
normalizeBranch(environment.get(DRONE_BRANCH)),
normalizeTag(environment.get(DRONE_TAG)),
new CommitInfo(
environment.get(DRONE_COMMIT_SHA),
buildGitAuthor(),
PersonInfo.NOOP,
environment.get(DRONE_COMMIT_MESSAGE)));
}
@Override
public CIInfo buildCIInfo() {
return CIInfo.builder(environment)
.ciProviderName(DRONE_PROVIDER_NAME)
.ciPipelineNumber(environment.get(DRONE_BUILD_NUMBER))
.ciPipelineUrl(environment.get(DRONE_BUILD_LINK))
.ciJobName(environment.get(DRONE_STEP_NAME))
.ciStageName(environment.get(DRONE_STAGE_NAME))
.ciWorkspace(expandTilde(environment.get(DRONE_WORKSPACE)))
.build();
}
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(DRONE_PULL_REQUEST_TARGET_BRANCH)),
null,
null,
environment.get(DRONE_PULL_REQUEST_NUMBER));
}
private PersonInfo buildGitAuthor() {
return new PersonInfo(
environment.get(DRONE_COMMIT_AUTHOR_NAME), environment.get(DRONE_COMMIT_AUTHOR_EMAIL));
}
@Override
public Provider getProvider() {
return Provider.DRONE;
}
}