From eb41bb643288dee04ab30362623de34a7cf79407 Mon Sep 17 00:00:00 2001 From: Christoph Brill <64423803+christophbrill-cgmcom@users.noreply.github.com> Date: Mon, 21 Jul 2025 10:03:59 +0200 Subject: [PATCH 1/2] Add protectedBranches to ApprovalRule This is returned by GitLab and simply not mapped yet. Tested with Gitlab 18.0.2 --- .../main/java/org/gitlab4j/api/models/ApprovalRule.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java index f4635e96a..570b6a92c 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java @@ -19,6 +19,7 @@ public class ApprovalRule implements Serializable { private Boolean containsHiddenGroups; private List approvedBy; private Boolean approved; + private List protectedBranches; public Long getId() { return id; @@ -108,6 +109,14 @@ public void setApproved(Boolean approved) { this.approved = approved; } + public List getProtectedBranches() { + return protectedBranches; + } + + public void setProtectedBranches(List protectedBranches) { + this.protectedBranches = protectedBranches; + } + @Override public String toString() { return (JacksonJson.toJsonString(this)); From d5f67bbdc06693adbf1c8e8a01480f3a7c9f5f59 Mon Sep 17 00:00:00 2001 From: Jeremie Bresson Date: Sat, 26 Jul 2025 20:51:27 +0200 Subject: [PATCH 2/2] Update example and add missing fields --- .../org/gitlab4j/api/models/ApprovalRule.java | 18 ++++++++++++ .../org/gitlab4j/models/approval-rule.json | 28 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java index 570b6a92c..33549dc79 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/ApprovalRule.java @@ -11,6 +11,7 @@ public class ApprovalRule implements Serializable { private Long id; private String name; private String ruleType; + private String reportType; private List eligibleApprovers; private Integer approvalsRequired; private ApprovalRule sourceRule; @@ -19,6 +20,7 @@ public class ApprovalRule implements Serializable { private Boolean containsHiddenGroups; private List approvedBy; private Boolean approved; + private Boolean appliesToAllProtectedBranches; private List protectedBranches; public Long getId() { @@ -45,6 +47,14 @@ public void setRuleType(String ruleType) { this.ruleType = ruleType; } + public String getReportType() { + return reportType; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + public List getEligibleApprovers() { return eligibleApprovers; } @@ -101,6 +111,14 @@ public void setApprovedBy(List approvedBy) { this.approvedBy = approvedBy; } + public Boolean getAppliesToAllProtectedBranches() { + return appliesToAllProtectedBranches; + } + + public void setAppliesToAllProtectedBranches(Boolean appliesToAllProtectedBranches) { + this.appliesToAllProtectedBranches = appliesToAllProtectedBranches; + } + public Boolean getApproved() { return approved; } diff --git a/gitlab4j-models/src/test/resources/org/gitlab4j/models/approval-rule.json b/gitlab4j-models/src/test/resources/org/gitlab4j/models/approval-rule.json index f3d6df4af..339065f1a 100644 --- a/gitlab4j-models/src/test/resources/org/gitlab4j/models/approval-rule.json +++ b/gitlab4j-models/src/test/resources/org/gitlab4j/models/approval-rule.json @@ -2,6 +2,7 @@ "id": 1, "name": "security", "rule_type": "regular", + "report_type": "code_coverage", "eligible_approvers": [ { "id": 2, @@ -39,11 +40,38 @@ "description": "", "visibility": "public", "lfs_enabled": false, + "avatar_url": "https://www.gravatar.com/avatar/0?s=80&d=identicon", "web_url": "http://localhost/groups/group1", "request_access_enabled": false, "full_name": "group1", "full_path": "group1" } ], + "applies_to_all_protected_branches": false, + "protected_branches": [ + { + "id": 1, + "name": "main", + "push_access_levels": [ + { + "access_level": 30, + "access_level_description": "Developers + Maintainers" + } + ], + "merge_access_levels": [ + { + "access_level": 30, + "access_level_description": "Developers + Maintainers" + } + ], + "unprotect_access_levels": [ + { + "access_level": 40, + "access_level_description": "Maintainers" + } + ], + "code_owner_approval_required": false + } + ], "contains_hidden_groups": false } \ No newline at end of file