mirror of
https://github.com/jlengrand/github-api.git
synced 2026-04-05 08:21:21 +00:00
- improved branch protection support
This commit is contained in:
@@ -4,10 +4,6 @@ import static org.kohsuke.github.Previews.LOKI;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.kohsuke.github.BranchProtection.RequiredStatusChecks;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@@ -15,10 +11,10 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
|
||||
/**
|
||||
* A branch in a repository.
|
||||
*
|
||||
*
|
||||
* @author Yusuke Kokubo
|
||||
*/
|
||||
@SuppressFBWarnings(value = {"UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", "UWF_UNWRITTEN_FIELD",
|
||||
@SuppressFBWarnings(value = {"UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", "UWF_UNWRITTEN_FIELD",
|
||||
"NP_UNWRITTEN_FIELD", "URF_UNREAD_FIELD"}, justification = "JSON API")
|
||||
public class GHBranch {
|
||||
private GitHub root;
|
||||
@@ -33,7 +29,7 @@ public class GHBranch {
|
||||
|
||||
public static class Commit {
|
||||
String sha;
|
||||
|
||||
|
||||
@SuppressFBWarnings(value = "UUF_UNUSED_FIELD", justification = "We don't provide it in API now")
|
||||
String url;
|
||||
}
|
||||
@@ -69,6 +65,10 @@ public class GHBranch {
|
||||
return GitHub.parseURL(protection_url);
|
||||
}
|
||||
|
||||
@Preview @Deprecated
|
||||
public GHBranchProtection getProtection() throws IOException {
|
||||
return root.retrieve().withPreview(LOKI).to(protection_url, GHBranchProtection.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* The commit that this branch currently points to.
|
||||
@@ -82,9 +82,7 @@ public class GHBranch {
|
||||
*/
|
||||
@Preview @Deprecated
|
||||
public void disableProtection() throws IOException {
|
||||
BranchProtection bp = new BranchProtection();
|
||||
bp.enabled = false;
|
||||
setProtection(bp);
|
||||
new Requester(root).method("DELETE").withPreview(LOKI).to(protection_url);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,28 +91,14 @@ public class GHBranch {
|
||||
* @see GHCommitStatus#getContext()
|
||||
*/
|
||||
@Preview @Deprecated
|
||||
public void enableProtection(EnforcementLevel level, Collection<String> contexts) throws IOException {
|
||||
BranchProtection bp = new BranchProtection();
|
||||
bp.enabled = true;
|
||||
bp.requiredStatusChecks = new RequiredStatusChecks();
|
||||
bp.requiredStatusChecks.enforcement_level = level;
|
||||
bp.requiredStatusChecks.contexts.addAll(contexts);
|
||||
setProtection(bp);
|
||||
}
|
||||
|
||||
@Preview @Deprecated
|
||||
public void enableProtection(EnforcementLevel level, String... contexts) throws IOException {
|
||||
enableProtection(level, Arrays.asList(contexts));
|
||||
}
|
||||
|
||||
private void setProtection(BranchProtection bp) throws IOException {
|
||||
new Requester(root).method("PATCH").withPreview(LOKI)._with("protection",bp).to(getApiRoute());
|
||||
public GHBranchProtectionBuilder enableProtection() {
|
||||
return new GHBranchProtectionBuilder(this);
|
||||
}
|
||||
|
||||
String getApiRoute() {
|
||||
return owner.getApiTailUrl("/branches/"+name);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final String url = owner != null ? owner.getUrl().toString() : "unknown";
|
||||
|
||||
Reference in New Issue
Block a user