Skip to content

Commit f33479a

Browse files
titusfortnernadvolod
authored andcommitted
[java] dynamically obtain current git branch for visual by default
1 parent 12da378 commit f33479a

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.saucelabs.saucebindings;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
7+
public class GitManager {
8+
private static String currentBranch = "_default_";
9+
10+
public static String getCurrentBranch() {
11+
try {
12+
Process process = Runtime.getRuntime().exec("git rev-parse --abbrev-ref HEAD");
13+
process.waitFor();
14+
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
15+
String line = reader.readLine();
16+
if (!line.contains("fatal:")) {
17+
currentBranch = line;
18+
}
19+
} catch (IOException | InterruptedException e) {
20+
// Ignore exception and use default
21+
}
22+
return currentBranch;
23+
}
24+
}

java/main/src/main/java/com/saucelabs/saucebindings/options/VisualOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.saucelabs.saucebindings.options;
22

33
import com.saucelabs.saucebindings.CITools;
4+
import com.saucelabs.saucebindings.GitManager;
45
import com.saucelabs.saucebindings.SauceSession;
56
import com.saucelabs.saucebindings.SystemManager;
67
import lombok.AccessLevel;
@@ -73,7 +74,7 @@ public MutableCapabilities toCapabilities() {
7374
}
7475

7576
if (branch == null) {
76-
branch = "_default_";
77+
branch = GitManager.getCurrentBranch();
7778
}
7879

7980
capabilityManager.addCapabilities();

java/main/src/test/java/com/saucelabs/saucebindings/options/VisualOptionsTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.saucelabs.saucebindings.Browser;
44
import com.saucelabs.saucebindings.CITools;
5+
import com.saucelabs.saucebindings.GitManager;
56
import com.saucelabs.saucebindings.SaucePlatform;
67
import com.saucelabs.saucebindings.SystemManager;
78
import org.junit.Test;
@@ -21,7 +22,7 @@ public void createsDefaultVisualOptions() {
2122

2223
MutableCapabilities visualCapabilities = new MutableCapabilities();
2324
visualCapabilities.setCapability("apiKey", System.getenv("SCREENER_API_KEY"));
24-
visualCapabilities.setCapability("branch", "_default_");
25+
visualCapabilities.setCapability("branch", GitManager.getCurrentBranch());
2526
visualCapabilities.setCapability("projectName", CITools.getBuildName());
2627

2728
assertEquals(visualCapabilities, visualOptions.toCapabilities().getCapability("sauce:visual"));

0 commit comments

Comments
 (0)