repowarden 4.1.1 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/proteger +10 -2
- package/hooks/lib/i18n/en.sh +2 -1
- package/hooks/lib/i18n/fr.sh +2 -1
- package/package.json +1 -1
package/bin/proteger
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# [--sans-tags] [--dry-run]
|
|
15
15
|
# --sans-tags : dépôt qui déplace lui-même un tag (tag majeur flottant v2…).
|
|
16
16
|
# Réglages équivalents dans .repowarden.conf (requiredReviews, codeOwnerReview,
|
|
17
|
-
# environment, environmentReviewers). Demande un gh connecté, admin du dépôt.
|
|
17
|
+
# unattributedApproval, environment, environmentReviewers). Demande un gh connecté, admin du dépôt.
|
|
18
18
|
set -euo pipefail
|
|
19
19
|
|
|
20
20
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
|
@@ -25,6 +25,12 @@ cfg_r requiredReviews 0
|
|
|
25
25
|
REVIEWS="$REPLY"
|
|
26
26
|
cfg_r codeOwnerReview false
|
|
27
27
|
CODEOWNERS="$REPLY"
|
|
28
|
+
# Approbation supplémentaire des changements non attribués : GitHub l'active
|
|
29
|
+
# d'office si elle n'est pas posée, et une PR ouverte par une application
|
|
30
|
+
# (jeton des Actions : PR de livraison, PR brouillon des tickets) attend alors
|
|
31
|
+
# un humain, même sans approbation exigée. Posée explicitement, false par défaut.
|
|
32
|
+
cfg_r unattributedApproval false
|
|
33
|
+
UNATTRIBUTED="$REPLY"
|
|
28
34
|
cfg_r environment ""
|
|
29
35
|
ENVIRONMENT="$REPLY"
|
|
30
36
|
cfg_r environmentReviewers ""
|
|
@@ -51,6 +57,7 @@ done
|
|
|
51
57
|
[ -n "$REPO" ] || REPO="$(gh repo view --json nameWithOwner -q .nameWithOwner)"
|
|
52
58
|
[[ "$REVIEWS" =~ ^[0-9]$ ]] || { err_t ci.proteger.reviews_invalid; exit 1; }
|
|
53
59
|
[[ "$CODEOWNERS" =~ ^(true|false)$ ]] || { err_t ci.proteger.codeowners_invalid; exit 1; }
|
|
60
|
+
[[ "$UNATTRIBUTED" =~ ^(true|false)$ ]] || { err_t ci.proteger.unattributed_invalid; exit 1; }
|
|
54
61
|
# Avec relecture : le dernier à pousser ne peut pas approuver son propre push
|
|
55
62
|
last_push=false
|
|
56
63
|
[ "$REVIEWS" = 0 ] || last_push=true
|
|
@@ -104,6 +111,7 @@ branch_ruleset() {
|
|
|
104
111
|
"allowed_merge_methods": [$3],
|
|
105
112
|
"dismiss_stale_reviews_on_push": true,
|
|
106
113
|
"require_code_owner_review": $CODEOWNERS,
|
|
114
|
+
"require_extra_approval_for_unattributed_changes": $UNATTRIBUTED,
|
|
107
115
|
"require_last_push_approval": ${6:-$last_push},
|
|
108
116
|
"required_approving_review_count": ${5:-$REVIEWS},
|
|
109
117
|
"required_review_thread_resolution": true}},
|
|
@@ -206,7 +214,7 @@ echo_t ci.proteger.4 "$methods" "$delete_on_merge"
|
|
|
206
214
|
[ -z "$integration" ] || echo_t ci.proteger.delivery "$livraison"
|
|
207
215
|
echo_t ci.proteger.5 "$tags_msg"
|
|
208
216
|
[ -z "$integration" ] || echo_t ci.proteger.6 "$integration"
|
|
209
|
-
echo_t ci.proteger.7 "$REVIEWS" "$CODEOWNERS"
|
|
217
|
+
echo_t ci.proteger.7 "$REVIEWS" "$CODEOWNERS" "$UNATTRIBUTED"
|
|
210
218
|
if [ "$REVIEWS" != 0 ] || [ "$CODEOWNERS" = true ]; then
|
|
211
219
|
echo_t ci.proteger.8
|
|
212
220
|
fi
|
package/hooks/lib/i18n/en.sh
CHANGED
|
@@ -254,7 +254,7 @@ _msg_en() {
|
|
|
254
254
|
ci.proteger.4) _M=" merges: %s; automatic branch deletion: %s" ;;
|
|
255
255
|
ci.proteger.5) _M=" v* tags: %s" ;;
|
|
256
256
|
ci.proteger.6) _M=" default branch: %s" ;;
|
|
257
|
-
ci.proteger.7) _M=" required approvals: %s; CODEOWNERS review: %s" ;;
|
|
257
|
+
ci.proteger.7) _M=" required approvals: %s; CODEOWNERS review: %s; approval of unattributed changes: %s" ;;
|
|
258
258
|
ci.proteger.8) _M=" (admins keep an explicit bypass, recorded in the PR history)" ;;
|
|
259
259
|
ci.proteger.9) _M=" \"%s\" environment: approval by %s; protected branches and v* tags" ;;
|
|
260
260
|
ci.proteger.10) _M="Ruleset \"%s\" updated." ;;
|
|
@@ -263,6 +263,7 @@ _msg_en() {
|
|
|
263
263
|
ci.proteger.13) _M="Settings applied." ;;
|
|
264
264
|
ci.proteger.reviews_invalid) _M="--relecteurs: a number from 0 to 9 is expected." ;;
|
|
265
265
|
ci.proteger.codeowners_invalid) _M="codeOwnerReview: true or false." ;;
|
|
266
|
+
ci.proteger.unattributed_invalid) _M="unattributedApproval: true or false." ;;
|
|
266
267
|
ci.proteger.no_branch) _M="None of the branches \"%s\" exists on %s." ;;
|
|
267
268
|
ci.proteger.no_cleanup) _M="Automatic branch deletion disabled (it would delete develop): add a workflow calling nettoyage-branches.yml, otherwise merged branches remain (see In an organisation)." ;;
|
|
268
269
|
ci.proteger.delivery) _M=" delivery into main: %s approval(s) required (moving to a new version); auto-merge disabled" ;;
|
package/hooks/lib/i18n/fr.sh
CHANGED
|
@@ -254,7 +254,7 @@ _msg_fr() {
|
|
|
254
254
|
ci.proteger.4) _M=" merges : %s ; suppression auto des branches : %s" ;;
|
|
255
255
|
ci.proteger.5) _M=" tags v* : %s" ;;
|
|
256
256
|
ci.proteger.6) _M=" branche par défaut : %s" ;;
|
|
257
|
-
ci.proteger.7) _M=" approbations exigées : %s ; revue des CODEOWNERS : %s" ;;
|
|
257
|
+
ci.proteger.7) _M=" approbations exigées : %s ; revue des CODEOWNERS : %s ; approbation des changements non attribués : %s" ;;
|
|
258
258
|
ci.proteger.8) _M=" (les admins gardent un contournement explicite, tracé dans l'historique de la PR)" ;;
|
|
259
259
|
ci.proteger.9) _M=" environnement « %s » : approbation de %s ; branches protégées et tags v*" ;;
|
|
260
260
|
ci.proteger.10) _M="Ruleset « %s » mis à jour." ;;
|
|
@@ -263,6 +263,7 @@ _msg_fr() {
|
|
|
263
263
|
ci.proteger.13) _M="Réglages appliqués." ;;
|
|
264
264
|
ci.proteger.reviews_invalid) _M="--relecteurs : nombre de 0 à 9 attendu." ;;
|
|
265
265
|
ci.proteger.codeowners_invalid) _M="codeOwnerReview : true ou false." ;;
|
|
266
|
+
ci.proteger.unattributed_invalid) _M="unattributedApproval : true ou false." ;;
|
|
266
267
|
ci.proteger.no_branch) _M="Aucune des branches « %s » n'existe sur %s." ;;
|
|
267
268
|
ci.proteger.no_cleanup) _M="Suppression automatique des branches désactivée (elle supprimerait develop) : ajouter un workflow qui appelle nettoyage-branches.yml, sinon les branches mergées restent (voir En organisation)." ;;
|
|
268
269
|
ci.proteger.delivery) _M=" livraison vers main : %s approbation(s) exigée(s) (passage à une nouvelle version) ; merge automatique désactivé" ;;
|
package/package.json
CHANGED