This is an automated email from the ASF dual-hosted git repository.

ppkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-parent.git


The following commit(s) were added to refs/heads/main by this push:
     new 4c425e1  Switch to GitHub Rulesets (second attempt) (#477)
4c425e1 is described below

commit 4c425e1046e5cddbd5d8087116e73e52384cebf0
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Sun Aug 16 19:16:57 2026 +0200

    Switch to GitHub Rulesets (second attempt) (#477)
    
    * Switch to GitHub Rulesets (second attempt)
    
    The first attempt (#456) had to be reverted in #471 because a bug in 
ASFYaml made the resulting rulesets impossible to modify or remove through 
`.asf.yaml`. We rolled back to the legacy `protected_branches` configuration.
    
    apache/infrastructure-asfyaml#93 has now landed and addresses the 
underlying issues (broken `app_slug` resolution, silent REST API failures, 
missing `refs/heads/` / `refs/tags/` prefixing), so we can move back to 
Rulesets.
    
    The benefits over `protected_branches` remain:
    
    - Tag references can also be protected (see the new `rel/*` ruleset).
    - A single ruleset can target a glob of refs (e.g. `gha/*`) instead of one 
branch at a time.
    - Rules are publicly visible at 
https://github.com/apache/logging-parent/rules, so we can verify that the 
effective rules are those configured and third parties can audit the project's 
protection policy too.
    
    * fix: use raw syntax for tags
    
    * fix: remove `protected_branches`
    
    No longer needed since apache/infrastructure-asfyaml#121 was merged.
---
 .asf.yaml | 53 ++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 38 insertions(+), 15 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 6a6eb53..4e88d2c 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -61,32 +61,55 @@ github:
   features:
     issues: true
 
-  # Prevent force pushes to primary branches
-  protected_branches:
-    main:
+  rulesets:
+    - name: "Branch protection: parent POM"
+      type: branch
+      branches:
+        includes:
+          - "~DEFAULT_BRANCH"
       # All reviews must be addressed before merging
       required_conversation_resolution: true
       # Require checks to pass before merging
       required_status_checks:
-        checks:
-          # The GitHub Actions app: 15368
-          - app_id: 15368
-            context: "build / build (ubuntu-latest)"
-          # The GitHub Advanced Security app: 57789
-          - app_id: 57789
-            context: "CodeQL"
+        # The GitHub Actions app
+        - app_slug: github-actions
+          name: "build / build (ubuntu-latest)"
+        # The GitHub Advanced Security app
+        - app_slug: github-advanced-security
+          name: "CodeQL"
       # At least one positive review must be present
       required_pull_request_reviews:
         required_approving_review_count: 1
-    gha/v0:
+    - name: "Branch protection: reusable actions"
+      type: branch
+      branches:
+        includes:
+          - "gha/*"
       # All reviews must be addressed before merging
       required_conversation_resolution: true
       # Require checks to pass before merging
       required_status_checks:
-        checks:
-          # The GitHub Advanced Security app: 57789
-          - app_id: 57789
-            context: "CodeQL"
+        # The GitHub Advanced Security app
+        - app_slug: github-advanced-security
+          name: "CodeQL"
       # At least one positive review must be present
       required_pull_request_reviews:
         required_approving_review_count: 1
+    # Use raw rules, until a convenience notation for `restrict_update` is 
introduced.
+    # See: https://github.com/apache/infrastructure-asfyaml/issues/96
+    #
+    # The raw rules need to follow the syntax given in:
+    # 
https://docs.github.com/en/rest/repos/rules?apiVersion=2026-03-10#update-a-repository-ruleset
+    - name: "Tag protection"
+      target: tag
+      enforcement: active
+      bypass_actors: []
+      conditions:
+        ref_name:
+          include:
+            - "refs/tags/rel/*"
+          exclude: []
+      rules:
+        - type: deletion
+        - type: non_fast_forward
+        - type: update

Reply via email to