@7n/rules-ci-azure 2.0.1 → 2.1.1

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.1] - 2026-08-27
4
+
5
+ ### Changed
6
+
7
+ - `engines.bun` піднято з `>=1.3` до `>=1.4` — репо-мінімум `js.package_json` (репо фактично вимагає 1.4)
8
+
9
+ ## [2.1.0] - 2026-07-29
10
+
11
+ ### Removed
12
+
13
+ - Видалено js-специфічний CI-концерн (lint_pipeline_js) — власність перенесена в @7n/rules-lang-js через ci.artifact@1 contribution
14
+ - Rust Azure CI-lint-крок (`lint_pipeline_rust`) винесено в `@7n/rules-lang-rust` `ci.artifact@1` contribution — обслуговує generic ci.artifact consumer
15
+ - Python-специфічні CI-артефакти (rules/python/lint_pipeline_python) видалено — тепер @7n/rules-lang-python own них через ci.artifact@1 contribution, обслуговується generic consumer-ом
16
+
3
17
  ## [2.0.1] - 2026-07-27
4
18
 
5
19
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@7n/rules-ci-azure",
3
- "version": "2.0.1",
3
+ "version": "2.1.1",
4
4
  "description": "Плагін @7n/rules: канон Azure Pipelines (azure-pipelines.yml) — структура, lint-степ, VS Code",
5
5
  "keywords": [
6
6
  "azure-pipelines",
@@ -49,7 +49,7 @@
49
49
  "access": "public"
50
50
  },
51
51
  "engines": {
52
- "bun": ">=1.3",
52
+ "bun": ">=1.4",
53
53
  "node": ">=24"
54
54
  },
55
55
  "dependencies": {
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@7n/rules/schemas/concern.json",
3
- "policy": {
4
- "files": {
5
- "single": "azure-pipelines.yml",
6
- "required": true
7
- },
8
- "missingMessage": "azure-pipelines.yml не існує — додай lint-степ `bunx n-rules lint js --no-fix` (azure-pipelines.mdc)"
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- ## Azure Pipelines: обов'язковий lint-степ `js`
2
-
3
- Rego-пакет: `js.lint_pipeline_js` (mixin з плагіна `@7n/rules-ci-azure`)
4
-
5
- **Цільовий файл:** `azure-pipelines.yml`
6
-
7
- Серед `script`-кроків pipeline (будь-яка глибина — steps/jobs/stages) сукупно мають бути substrings `n-rules lint js` (приймається і `npx @7n/rules lint js`) та `--no-fix`. Це провайдер-аналог GitHub-workflow `lint-js.yml` з `@7n/rules-ci-github`: намір «CI-lint домену `js`» однаковий, реалізація — своя для кожного CI-провайдера.
8
-
9
- ```yaml
10
- steps:
11
- - script: bunx n-rules lint js --no-fix
12
- displayName: Lint js
13
- ```
@@ -1,39 +0,0 @@
1
- # Обов'язковий lint-степ домену `js` у `azure-pipelines.yml` (провайдер-аналог
2
- # GitHub-workflow `lint-js.yml` з @7n/rules-ci-github): серед script-кроків pipeline
3
- # на будь-якій глибині має бути запуск `n-rules lint js` (або `@7n/rules lint js`)
4
- # з `--no-fix`. Mixin-концерн правила `js` — активний лише разом із правилом.
5
- #
6
- # Конвенція проєкту — `import rego.v1` + multi-value `deny contains msg if { … }`
7
- # (conftest.mdc). Лінт — `n-rules lint rego` (regal).
8
- package js.lint_pipeline_js
9
-
10
- import rego.v1
11
-
12
- scripts contains s if {
13
- walk(input, [_, node])
14
- is_object(node)
15
- s := node.script
16
- is_string(s)
17
- }
18
-
19
- script_blob := concat("\n", [s | some s in scripts])
20
-
21
- has_lint_step if contains(script_blob, "n-rules lint js")
22
-
23
- has_lint_step if contains(script_blob, "@7n/rules lint js")
24
-
25
- # Загальний full-прогін покриває всі домени — окремий js-степ не потрібен.
26
- has_lint_step if contains(script_blob, "n-rules lint --no-fix --full")
27
-
28
- has_lint_step if contains(script_blob, "@7n/rules lint --no-fix --full")
29
-
30
- deny contains msg if {
31
- not has_lint_step
32
- msg := "azure-pipelines.yml: має бути script-крок `n-rules lint js --no-fix` (azure-pipelines.mdc)"
33
- }
34
-
35
- deny contains msg if {
36
- has_lint_step
37
- not contains(script_blob, "--no-fix")
38
- msg := "azure-pipelines.yml: lint-степ `js` має запускатись з `--no-fix` (CI без мутацій, azure-pipelines.mdc)"
39
- }
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@7n/rules/schemas/concern.json",
3
- "policy": {
4
- "files": {
5
- "single": "azure-pipelines.yml",
6
- "required": true
7
- },
8
- "missingMessage": "azure-pipelines.yml не існує — додай lint-степ `bunx n-rules lint python --no-fix` (azure-pipelines.mdc)"
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- ## Azure Pipelines: обов'язковий lint-степ `python`
2
-
3
- Rego-пакет: `python.lint_pipeline_python` (mixin з плагіна `@7n/rules-ci-azure`)
4
-
5
- **Цільовий файл:** `azure-pipelines.yml`
6
-
7
- Серед `script`-кроків pipeline (будь-яка глибина — steps/jobs/stages) сукупно мають бути substrings `n-rules lint python` (приймається і `npx @7n/rules lint python`) та `--no-fix`. Це провайдер-аналог GitHub-workflow `lint-python.yml` з `@7n/rules-ci-github`: намір «CI-lint домену `python`» однаковий, реалізація — своя для кожного CI-провайдера.
8
-
9
- ```yaml
10
- steps:
11
- - script: bunx n-rules lint python --no-fix
12
- displayName: Lint python
13
- ```
@@ -1,39 +0,0 @@
1
- # Обов'язковий lint-степ домену `python` у `azure-pipelines.yml` (провайдер-аналог
2
- # GitHub-workflow `lint-python.yml` з @7n/rules-ci-github): серед script-кроків pipeline
3
- # на будь-якій глибині має бути запуск `n-rules lint python` (або `@7n/rules lint python`)
4
- # з `--no-fix`. Mixin-концерн правила `python` — активний лише разом із правилом.
5
- #
6
- # Конвенція проєкту — `import rego.v1` + multi-value `deny contains msg if { … }`
7
- # (conftest.mdc). Лінт — `n-rules lint rego` (regal).
8
- package python.lint_pipeline_python
9
-
10
- import rego.v1
11
-
12
- scripts contains s if {
13
- walk(input, [_, node])
14
- is_object(node)
15
- s := node.script
16
- is_string(s)
17
- }
18
-
19
- script_blob := concat("\n", [s | some s in scripts])
20
-
21
- has_lint_step if contains(script_blob, "n-rules lint python")
22
-
23
- has_lint_step if contains(script_blob, "@7n/rules lint python")
24
-
25
- # Загальний full-прогін покриває всі домени — окремий python-степ не потрібен.
26
- has_lint_step if contains(script_blob, "n-rules lint --no-fix --full")
27
-
28
- has_lint_step if contains(script_blob, "@7n/rules lint --no-fix --full")
29
-
30
- deny contains msg if {
31
- not has_lint_step
32
- msg := "azure-pipelines.yml: має бути script-крок `n-rules lint python --no-fix` (azure-pipelines.mdc)"
33
- }
34
-
35
- deny contains msg if {
36
- has_lint_step
37
- not contains(script_blob, "--no-fix")
38
- msg := "azure-pipelines.yml: lint-степ `python` має запускатись з `--no-fix` (CI без мутацій, azure-pipelines.mdc)"
39
- }
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@7n/rules/schemas/concern.json",
3
- "policy": {
4
- "files": {
5
- "single": "azure-pipelines.yml",
6
- "required": true
7
- },
8
- "missingMessage": "azure-pipelines.yml не існує — додай lint-степ `bunx n-rules lint rust --no-fix` (azure-pipelines.mdc)"
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- ## Azure Pipelines: обов'язковий lint-степ `rust`
2
-
3
- Rego-пакет: `rust.lint_pipeline_rust` (mixin з плагіна `@7n/rules-ci-azure`)
4
-
5
- **Цільовий файл:** `azure-pipelines.yml`
6
-
7
- Серед `script`-кроків pipeline (будь-яка глибина — steps/jobs/stages) сукупно мають бути substrings `n-rules lint rust` (приймається і `npx @7n/rules lint rust`) та `--no-fix`. Це провайдер-аналог GitHub-workflow `lint-rust.yml` з `@7n/rules-ci-github`: намір «CI-lint домену `rust`» однаковий, реалізація — своя для кожного CI-провайдера.
8
-
9
- ```yaml
10
- steps:
11
- - script: bunx n-rules lint rust --no-fix
12
- displayName: Lint rust
13
- ```
@@ -1,39 +0,0 @@
1
- # Обов'язковий lint-степ домену `rust` у `azure-pipelines.yml` (провайдер-аналог
2
- # GitHub-workflow `lint-rust.yml` з @7n/rules-ci-github): серед script-кроків pipeline
3
- # на будь-якій глибині має бути запуск `n-rules lint rust` (або `@7n/rules lint rust`)
4
- # з `--no-fix`. Mixin-концерн правила `rust` — активний лише разом із правилом.
5
- #
6
- # Конвенція проєкту — `import rego.v1` + multi-value `deny contains msg if { … }`
7
- # (conftest.mdc). Лінт — `n-rules lint rego` (regal).
8
- package rust.lint_pipeline_rust
9
-
10
- import rego.v1
11
-
12
- scripts contains s if {
13
- walk(input, [_, node])
14
- is_object(node)
15
- s := node.script
16
- is_string(s)
17
- }
18
-
19
- script_blob := concat("\n", [s | some s in scripts])
20
-
21
- has_lint_step if contains(script_blob, "n-rules lint rust")
22
-
23
- has_lint_step if contains(script_blob, "@7n/rules lint rust")
24
-
25
- # Загальний full-прогін покриває всі домени — окремий rust-степ не потрібен.
26
- has_lint_step if contains(script_blob, "n-rules lint --no-fix --full")
27
-
28
- has_lint_step if contains(script_blob, "@7n/rules lint --no-fix --full")
29
-
30
- deny contains msg if {
31
- not has_lint_step
32
- msg := "azure-pipelines.yml: має бути script-крок `n-rules lint rust --no-fix` (azure-pipelines.mdc)"
33
- }
34
-
35
- deny contains msg if {
36
- has_lint_step
37
- not contains(script_blob, "--no-fix")
38
- msg := "azure-pipelines.yml: lint-степ `rust` має запускатись з `--no-fix` (CI без мутацій, azure-pipelines.mdc)"
39
- }