
org.sourcelab.github.client.utils.UrlParser Maven / Gradle / Ivy
The newest version!
package org.sourcelab.github.client.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UrlParser {
private static final Pattern JOBS_URL_PATTERN =
Pattern.compile(".*/repos/([^/]+)/([^/]+)/actions/runs/([0-9]+)/jobs");
private static final Pattern JOBS_CANCEL_URL_PATTERN =
Pattern.compile(".*/repos/([^/]+)/([^/]+)/actions/runs/([0-9]+)/cancel");
private static final Pattern JOBS_RERUN_URL_PATTERN =
Pattern.compile(".*/repos/([^/]+)/([^/]+)/actions/runs/([0-9]+)/rerun");
/**
* Parse from Jobs Url.
*/
public static JobsUrlBits parseJobsUrl(final String jobsUrl) {
final Matcher matcher = JOBS_URL_PATTERN.matcher(jobsUrl);
boolean matchFound = matcher.find();
if (!matchFound || matcher.groupCount() != 3) {
return null;
}
return new JobsUrlBits(matcher.group(1), matcher.group(2), Long.parseLong(matcher.group(3)));
}
/**
* Parse from Jobs Cancel Url.
*/
public static JobsUrlBits parseJobsCancelUrl(final String cancelUrl) {
final Matcher matcher = JOBS_CANCEL_URL_PATTERN.matcher(cancelUrl);
boolean matchFound = matcher.find();
if (!matchFound || matcher.groupCount() != 3) {
return null;
}
return new JobsUrlBits(matcher.group(1), matcher.group(2), Long.parseLong(matcher.group(3)));
}
/**
* Parse from Jobs ReRun Url.
*/
public static JobsUrlBits parseJobsRerunUrl(final String rerunUrl) {
final Matcher matcher = JOBS_RERUN_URL_PATTERN.matcher(rerunUrl);
boolean matchFound = matcher.find();
if (!matchFound || matcher.groupCount() != 3) {
return null;
}
return new JobsUrlBits(matcher.group(1), matcher.group(2), Long.parseLong(matcher.group(3)));
}
public static class JobsUrlBits
{
private String owner;
private String repo;
private long runId;
/**
* Constructor.
*/
public JobsUrlBits(final String owner, final String repo, final long runId) {
this.owner = owner;
this.repo = repo;
this.runId = runId;
}
public String getOwner() {
return owner;
}
public String getRepo() {
return repo;
}
public long getRunId() {
return runId;
}
@Override
public String toString() {
return "JobsUrlBits{"
+ "\n\towner='" + owner + '\''
+ "\n\trepo='" + repo + '\''
+ "\n\trunId=" + runId
+ "\n}";
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy