@7n/rules-ci-github 2.3.1 → 2.3.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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/rules/ga/clean_ga_workflows/clean_ga_workflows.rego +7 -5
- package/rules/ga/clean_merged_branch/clean_merged_branch.rego +7 -3
- package/rules/ga/git_ai/git_ai.rego +7 -3
- package/rules/ga/lint_ga/lint_ga.rego +1 -1
- package/rules/ga/workflow_common/workflow_common.rego +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.3.2] - 2026-08-25
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- ga-політики стали незалежними від версії YAML-парсера: читання події workflow-а тепер object.get(input, "on", object.get(input, "true", {})) у всіх пʼятьох пакетах (було лише в lint_ga). Під conftest вивід не змінився; без цього будь-який YAML-1.2-парсер зробив би три пакети тихо непрацездатними. sprintf %q замінено на \"%v\" — байт-у-байт той самий текст
|
|
8
|
+
|
|
3
9
|
## [2.3.1] - 2026-08-19
|
|
4
10
|
|
|
5
11
|
### Changed
|
package/package.json
CHANGED
|
@@ -9,10 +9,12 @@ package ga.clean_ga_workflows
|
|
|
9
9
|
import rego.v1
|
|
10
10
|
|
|
11
11
|
# ── Аліаси на input ────────────────────────────────────────────────────────
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
# Читання події workflow-а НЕ залежить від версії YAML-парсера. `on:` у YAML 1.1
|
|
13
|
+
# — булеве `true` (conftest серіалізує його рядковим ключем "true"), у YAML 1.2 —
|
|
14
|
+
# звичайний рядок "on". Обидві форми читаються тут; без цього зміна парсера
|
|
15
|
+
# зробила б УСІ правила цього пакета тихо непрацездатними — не падінням, а
|
|
16
|
+
# порожнім результатом назавжди. Template (через --data JSON) має ключ "on".
|
|
17
|
+
gha_on := object.get(input, "on", object.get(input, "true", {}))
|
|
16
18
|
|
|
17
19
|
step0 := input.jobs.cleanup_old_workflows.steps[0]
|
|
18
20
|
|
|
@@ -31,7 +33,7 @@ expected_runs_on := data.template.snippet.jobs.cleanup_old_workflows["runs-on"]
|
|
|
31
33
|
|
|
32
34
|
deny contains msg if {
|
|
33
35
|
input.name != expected_name
|
|
34
|
-
msg := sprintf("clean-ga-workflows.yml: name має бути %
|
|
36
|
+
msg := sprintf("clean-ga-workflows.yml: name має бути \"%v\" (ga.mdc)", [expected_name])
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
deny contains msg if {
|
|
@@ -7,8 +7,12 @@ package ga.clean_merged_branch
|
|
|
7
7
|
import rego.v1
|
|
8
8
|
|
|
9
9
|
# ── Аліаси ─────────────────────────────────────────────────────────────────
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
# Читання події workflow-а НЕ залежить від версії YAML-парсера. `on:` у YAML 1.1
|
|
11
|
+
# — булеве `true` (conftest серіалізує його рядковим ключем "true"), у YAML 1.2 —
|
|
12
|
+
# звичайний рядок "on". Обидві форми читаються тут; без цього зміна парсера
|
|
13
|
+
# зробила б УСІ правила цього пакета тихо непрацездатними — не падінням, а
|
|
14
|
+
# порожнім результатом назавжди. Template (через --data JSON) має ключ "on".
|
|
15
|
+
gha_on := object.get(input, "on", object.get(input, "true", {}))
|
|
12
16
|
|
|
13
17
|
steps := input.jobs.cleanup_old_branches.steps
|
|
14
18
|
|
|
@@ -30,7 +34,7 @@ expected_perms := data.template.snippet.jobs.cleanup_old_branches.permissions
|
|
|
30
34
|
|
|
31
35
|
deny contains msg if {
|
|
32
36
|
input.name != expected_name
|
|
33
|
-
msg := sprintf("clean-merged-branch.yml: name має бути %
|
|
37
|
+
msg := sprintf("clean-merged-branch.yml: name має бути \"%v\" (ga.mdc)", [expected_name])
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
deny contains msg if {
|
|
@@ -9,8 +9,12 @@ package ga.git_ai
|
|
|
9
9
|
import rego.v1
|
|
10
10
|
|
|
11
11
|
# ── Аліаси ─────────────────────────────────────────────────────────────────
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
# Читання події workflow-а НЕ залежить від версії YAML-парсера. `on:` у YAML 1.1
|
|
13
|
+
# — булеве `true` (conftest серіалізує його рядковим ключем "true"), у YAML 1.2 —
|
|
14
|
+
# звичайний рядок "on". Обидві форми читаються тут; без цього зміна парсера
|
|
15
|
+
# зробила б УСІ правила цього пакета тихо непрацездатними — не падінням, а
|
|
16
|
+
# порожнім результатом назавжди. Template (через --data JSON) має ключ "on".
|
|
17
|
+
gha_on := object.get(input, "on", object.get(input, "true", {}))
|
|
14
18
|
|
|
15
19
|
job := input.jobs["git-ai"]
|
|
16
20
|
|
|
@@ -36,7 +40,7 @@ run_substring := "git-ai ci github run"
|
|
|
36
40
|
|
|
37
41
|
deny contains msg if {
|
|
38
42
|
input.name != expected_name
|
|
39
|
-
msg := sprintf("git-ai.yml: name має бути %
|
|
43
|
+
msg := sprintf("git-ai.yml: name має бути \"%v\" (ga.mdc)", [expected_name])
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
deny contains msg if {
|
|
@@ -72,7 +72,7 @@ expected_run_blob := concat("\n", [r |
|
|
|
72
72
|
|
|
73
73
|
deny contains msg if {
|
|
74
74
|
input.name != expected_name
|
|
75
|
-
msg := sprintf("lint-ga.yml: name має бути %
|
|
75
|
+
msg := sprintf("lint-ga.yml: name має бути \"%v\" (ga.mdc)", [expected_name])
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
deny contains msg if {
|
|
@@ -70,7 +70,7 @@ setup_bun_no_checkout_template := concat(" ", [
|
|
|
70
70
|
])
|
|
71
71
|
|
|
72
72
|
min_uses_version_template := concat(" ", [
|
|
73
|
-
"jobs.%s.steps[%d]: %s має бути >= v%s (зараз %
|
|
73
|
+
"jobs.%s.steps[%d]: %s має бути >= v%s (зараз \"%v\") —",
|
|
74
74
|
"онови ref у uses: (ga.mdc)",
|
|
75
75
|
])
|
|
76
76
|
|