-
Notifications
You must be signed in to change notification settings - Fork 0
29 lines (25 loc) · 1.35 KB
/
Copy pathgithub-governance.yml
File metadata and controls
29 lines (25 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
name: GitHub governance
on:
schedule:
- cron: "0 7 * * 1"
workflow_dispatch:
permissions: {}
concurrency:
group: github-governance
cancel-in-progress: true
jobs:
governance:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Verifica ruleset main
run: |
set -euo pipefail
api="https://api.github.com/repos/$GITHUB_REPOSITORY/rulesets"
ruleset_id="$(curl --fail --silent --show-error "$api" | jq -r '.[] | select(.name == "Protezione main proporzionata") | .id')"
test -n "$ruleset_id"
ruleset="$(curl --fail --silent --show-error "$api/$ruleset_id")"
test "$(jq -r '.enforcement == "active" and .target == "branch" and .conditions.ref_name.include == ["~DEFAULT_BRANCH"]' <<< "$ruleset")" = true
test "$(jq -r '.rules[] | select(.type == "required_status_checks") | .parameters.strict_required_status_checks_policy' <<< "$ruleset")" = true
test "$(jq -c '[.rules[] | select(.type == "required_status_checks") | .parameters.required_status_checks[].context] | sort' <<< "$ruleset")" = '["Conventional PR title","Verifica proporzionata","react-doctor"]'
test "$(jq -r '.rules[] | select(.type == "required_status_checks") | .parameters.required_status_checks[] | select(.context == "react-doctor") | .integration_id' <<< "$ruleset")" = 15368