Skip to content

Commit

Permalink
Merge pull request #74 from ivan1767p/prinfo
Browse files Browse the repository at this point in the history
PR info passed to TeamCity build
  • Loading branch information
jmecosta committed Jun 29, 2021
2 parents a2eb179 + 50c6f3c commit c2e7b10
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 10 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -6,7 +6,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.trimble.tekla</groupId>
<artifactId>TeamCityTriggerHook</artifactId>
<version>4.9.1</version>
<version>4.9.2</version>

<organization>
<name>Tekla</name>
Expand Down
Expand Up @@ -197,7 +197,8 @@ private void TriggerBuildFromPullRequest(final PullRequest pr, Boolean UpdatedRe
"Trigger from Bitbucket: Pull Request: " + pr.getId(),
false,
settings.get(),
repo.getName());
repo.getName(),
pr);
triggeredBuilds.add(buildConfig.getTarget());
} else {
final JSONArray builds = obj.getJSONArray("build");
Expand All @@ -217,7 +218,8 @@ private void TriggerBuildFromPullRequest(final PullRequest pr, Boolean UpdatedRe
"Trigger from Bitbucket: Pull Request: " + pr.getId(),
false,
settings.get(),
repo.getName());
repo.getName(),
pr);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/trimble/tekla/TeamcityTriggerHook.java
Expand Up @@ -277,7 +277,7 @@ private void QueueBuild(
final String count = obj.getString("count");

if (count.equals("0") || !cancelRunningBuilds) {
this.connector.QueueBuild(conf, branch, buildIdIn, comment, isDefault, settings, repoName);
this.connector.QueueBuild(conf, branch, buildIdIn, comment, isDefault, settings, repoName, null);
} else {
final JSONArray builds = obj.getJSONArray("build");
for (int i = 0; i < builds.length(); i++) {
Expand All @@ -289,7 +289,7 @@ private void QueueBuild(
}

// at this point all builds were finished, so we need to trigger
this.connector.QueueBuild(conf, branch, buildIdIn, comment, isDefault, settings, repoName);
this.connector.QueueBuild(conf, branch, buildIdIn, comment, isDefault, settings, repoName, null);
TeamcityLogger.logMessage(context, repoName, "Queued: " + buildIdIn + " " + branch);
}
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/trimble/tekla/rest/TeamctiyRest.java
Expand Up @@ -223,7 +223,7 @@ public String triggerBuild(
"Manual Trigger from Bitbucket: Pull Request: " + prid,
false,
settings.get(),
repository.getName())); // handle error todo
repository.getName(), null)); // handle error todo
} else {
builder.append(" trigger skipped ")
.append(buildconfig)
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/com/trimble/tekla/teamcity/TeamcityConnector.java
Expand Up @@ -5,6 +5,7 @@
*/
package com.trimble.tekla.teamcity;

import com.atlassian.bitbucket.pull.PullRequest;
import com.atlassian.bitbucket.setting.Settings;
import com.trimble.tekla.pojo.TeamcityQueuedElement;
import java.io.IOException;
Expand Down Expand Up @@ -146,18 +147,19 @@ public String QueueBuild(
String comment,
Boolean isDefault,
Settings settings,
String repoName) {
String repoName,
PullRequest prInfo) {
String url = "/app/rest/buildQueue";
return this.connector.PostPayload(conf, url, GetPayload(branch, buildid, comment, isDefault), settings, repoName);
}
return this.connector.PostPayload(conf, url, GetPayload(branch, buildid, comment, isDefault, prInfo), settings, repoName);
}

private String GetCancelAndRequeuePayload(String readIntoQueue) {
StringBuilder builder = new StringBuilder();
builder.append(String.format("<buildCancelRequest comment=\"requeue build\" readdIntoQueue=\"%s\" />", readIntoQueue));
return builder.toString();
}

private String GetPayload(String branch, String buildid, String comment, Boolean isDefault) {
private String GetPayload(String branch, String buildid, String comment, Boolean isDefault, PullRequest prInfo) {
StringBuilder builder = new StringBuilder();
if (!"".equals(branch)) {
if (isDefault) {
Expand All @@ -168,6 +170,12 @@ private String GetPayload(String branch, String buildid, String comment, Boolean

builder.append(String.format("<buildType id=\"%s\"/>", buildid));
builder.append(String.format("<comment><text>%s</text></comment>", comment));
builder.append("<properties>");
builder.append(String.format("<property name=\"bitbucket.pr.source.branch\" value=\"%s\"/>", branch));
builder.append(String.format("<property name=\"bitbucket.pr.target.branch\" value=\"%s\"/>", prInfo.getToRef().getId()));
builder.append(String.format("<property name=\"bitbucket.pr.number\" value=\"%s\"/>", prInfo.getId()));
builder.append(String.format("<property name=\"bitbucket.pr.title\" value=\"%s\"/>", prInfo.getTitle()));
builder.append("</properties>");
builder.append("</build>");
} else {
builder.append("<build>");
Expand Down

0 comments on commit c2e7b10

Please sign in to comment.