diff options
author | Maxim Epishchev <epishev@garant.ru> | 2016-01-21 19:52:23 +0300 |
---|---|---|
committer | Maxim Epishchev <epishev@garant.ru> | 2016-01-21 20:01:44 +0300 |
commit | 91a85604177f7df2eb204c9e82564142dbe328f8 (patch) | |
tree | b950cc3f5b150005243dd2ed260add5da070d344 /src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java | |
parent | 31b3fbaa1926c751b651d58044a5216b64566029 (diff) | |
download | bbprb-91a85604177f7df2eb204c9e82564142dbe328f8.tar.gz |
Refactoring filters code and add tests
Now we can using more complex filters with source/destination filtration. Also add experimental integration with Git SCM plugin.
Diffstat (limited to 'src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java')
-rw-r--r-- | src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java index 2686ffd..c71cc99 100644 --- a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java +++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java @@ -10,7 +10,10 @@ import bitbucketpullrequestbuilder.bitbucketpullrequestbuilder.bitbucket.ApiClie import bitbucketpullrequestbuilder.bitbucketpullrequestbuilder.bitbucket.BuildState; import bitbucketpullrequestbuilder.bitbucketpullrequestbuilder.bitbucket.Pullrequest; import java.util.logging.Level; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import jenkins.model.Jenkins; +import jenkins.scm.api.SCMSource; /** * Created by nishio @@ -19,6 +22,7 @@ public class BitbucketRepository { private static final Logger logger = Logger.getLogger(BitbucketRepository.class.getName()); private static final String BUILD_DESCRIPTION = "%s: %s into %s"; private static final String BUILD_REQUEST_MARKER = "test this please"; + private static final String BUILD_REQUEST_MARKER_COUNTER_RX = "\\[(\\d+)]\\"; private String projectPath; private BitbucketPullRequestsBuilder builder; @@ -99,6 +103,11 @@ public class BitbucketRepository { this.client.postPullRequestApproval(pullRequestId); } + private Integer extractRebuildTimesFromComment(String content) { + Matcher matcher = Pattern.compile(BUILD_REQUEST_MARKER_COUNTER_RX).matcher(content); + return matcher.groupCount() >= 1 ? Integer.parseInt(matcher.group(1)) : 0; + } + private boolean isBuildTarget(Pullrequest pullRequest) { if (pullRequest.getState() != null && pullRequest.getState().equals("OPEN")) { if (isSkipBuild(pullRequest.getTitle()) || !isFilteredBuild(pullRequest)) { @@ -178,7 +187,11 @@ public class BitbucketRepository { pullRequest.getSource().getCommit().getHash(), pullRequest.getDestination().getCommit().getHash() ); - BitbucketBuildFilter filter = new BitbucketBuildFilter(this.trigger.getBranchesFilter()); + + BitbucketBuildFilter filter = !this.trigger.getBranchesFilterBySCMIncludes() ? + BitbucketBuildFilter.InstanceByString(this.trigger.getBranchesFilter()) : + BitbucketBuildFilter.InstanceBySCM(Jenkins.getInstance().getExtensionList(SCMSource.class), this.trigger.getBranchesFilter()); + return filter.approved(cause); } } |