Merge branch 'master' into ignite-11740
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
index 48d965c..c432e79 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
@@ -413,9 +413,7 @@
private void checkFailures() {
List<String> ids = cfg.getTrackedBranchesIds();
- for (Iterator<String> iter = ids.iterator(); iter.hasNext(); ) {
- String tbranchName = iter.next();
-
+ for (String tbranchName : ids) {
try {
checkFailuresEx(tbranchName);
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetTrackedBranches.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetTrackedBranches.java
index 1d0c302..ecda88e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetTrackedBranches.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetTrackedBranches.java
@@ -32,6 +32,8 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
+
+import org.apache.ignite.ci.conf.BranchTracked;
import org.apache.ignite.ci.conf.ChainAtServer;
import org.apache.ignite.ci.tcbot.TcBotGeneralService;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
@@ -63,23 +65,32 @@
@GET
@Path("getIds")
- public List<String> getIds() {
- return CtxListener.getInjector(ctx).getInstance(ITcBotConfig.class).getTrackedBranchesIds();
+ public List<String> getIdsIfAccessible() {
+ ICredentialsProv prov = ICredentialsProv.get(req);
+ Injector injector = CtxListener.getInjector(ctx);
+ ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class);
+ ITeamcityIgnitedProvider tcProv = injector.getInstance(ITeamcityIgnitedProvider.class);
+
+ return cfg.getTrackedBranches().getBranches()
+ .stream()
+ .filter(bt ->
+ bt.getChains().stream().anyMatch(chain-> tcProv.hasAccess(chain.serverId, prov)))
+ .map(BranchTracked::getId)
+ .collect(Collectors.toList());
}
/**
* Return all suites involved into tracked branches.
*
- * @param srvId Optional service ID to additiona filtering of chains.
+ * @param srvId Optional service ID to additional filtering of chains.
*/
@GET
@Path("suites")
public Set<ChainAtServer> getSuites(@Nullable @QueryParam("server") String srvId) {
- final ICredentialsProv prov = ICredentialsProv.get(req);
-
+ ICredentialsProv prov = ICredentialsProv.get(req);
Injector injector = CtxListener.getInjector(ctx);
ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class);
- ITeamcityIgnitedProvider tcIgnProv = injector.getInstance(ITeamcityIgnitedProvider.class);
+ ITeamcityIgnitedProvider tcProv = injector.getInstance(ITeamcityIgnitedProvider.class);
return cfg.getTrackedBranches()
.getSuitesUnique()
@@ -87,7 +98,7 @@
.filter(chainAtSrv ->
Strings.isNullOrEmpty(srvId)
|| srvId.equals(chainAtSrv.serverId))
- .filter(chainAtServer -> tcIgnProv.hasAccess(chainAtServer.serverId, prov))
+ .filter(chainAtServer -> tcProv.hasAccess(chainAtServer.serverId, prov))
.collect(Collectors.toSet());
}
@@ -97,19 +108,14 @@
@GET
@Path("getServerIds")
public Set<String> getServerIds() {
- final ICredentialsProv prov = ICredentialsProv.get(req);
-
+ ICredentialsProv prov = ICredentialsProv.get(req);
Injector injector = CtxListener.getInjector(ctx);
ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class);
-
ITeamcityIgnitedProvider tcProv = injector.getInstance(ITeamcityIgnitedProvider.class);
+
return cfg.getServerIds()
.stream()
- .filter(srvId ->
- {
- return tcProv.hasAccess(srvId, prov);
-
- })
+ .filter(srvId -> tcProv.hasAccess(srvId, prov))
.collect(Collectors.toSet());
}