@7n/rules-ci-azure 1.4.2 → 1.4.4
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
|
+
## [1.4.4] - 2026-07-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- doc_comments rollout: header-JSDoc у vitest.config (T0 promote)
|
|
8
|
+
- doc_comments rollout: header/export JSDoc у конфігах demo
|
|
9
|
+
- doc_comments rollout: header-JSDoc у vitest.config
|
|
10
|
+
|
|
11
|
+
## [1.4.3] - 2026-07-19
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- release: @7n/rules@1.27.0, @7n/rules-lang-js@0.3.0, @7n/rules-lang-python@0.5.1, @7n/rules-lang-rust@0.5.1
|
|
16
|
+
|
|
3
17
|
## [1.4.2] - 2026-07-18
|
|
4
18
|
|
|
5
19
|
### Changed
|
package/package.json
CHANGED
|
@@ -3,26 +3,35 @@ type: JS Module
|
|
|
3
3
|
title: fix-service_deploy_pipeline.mjs
|
|
4
4
|
resource: plugins/ci-azure/rules/azure-pipelines/service_deploy_pipeline/fix-service_deploy_pipeline.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
6
|
+
crc: bf24b078
|
|
7
7
|
model: openai-codex/gpt-5.4-mini
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
tier: cloud-min
|
|
9
|
+
score: 95
|
|
10
|
+
issues: anchor-miss:https://bun.sh/install,judge-refine:kept-original,judge:inaccurate:0.98
|
|
10
11
|
judgeModel: openai-codex/gpt-5.4-mini
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
## Огляд
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
Фіксер для T0-автоміграції легасі service-pipeline-ів до канону з ADR 260718-0835: він переписує `.azurepipelines/**.yml` з `trigger.paths.include`, що не відповідають формі plan → lint_<domain> → deploy і порушують rego-концерн `service_deploy_pipeline`. Через зміну семантики `n-rules lint --path` у `@7n/rules 1.17` він одразу переводить pipeline у новий канон замість ручної міграції 18 efes-пайплайнів.
|
|
17
|
+
|
|
18
|
+
Під час перепису додається `plan` як prep + `bunx n-rules ci plan --path <svc> --azure` (`ci plan --path <svc> --azure`), legacy job з `n-rules lint --path <svc>` замінюється на `lint_<key>` за доменами, визначеними через `computeActiveDomains/domainKey`, а wiring для lint-джоб додає `dependsOn: plan`, condition по outputs, `--no-fix` і `fetchDepth: 0`. Залежності інших job-ів перешиваються з legacy-імені на нові lint-джоби, а job-и з прямими deps на conditional lint-джоби без власного condition отримують Skipped-толерантний канон (`not` + `in`).
|
|
19
|
+
|
|
20
|
+
Власний `condition` не перезаписується, якщо він нетривіальний, а `- template:` розкладка не мігрується, бо фіксер працює лише з розгорнутими job-ами. `patterns` звужує скоуп до pipeline-файлів, чий `trigger.paths.include` відповідає цьому сценарію міграції.
|
|
16
21
|
|
|
17
22
|
## Поведінка
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
`migratePipelineFile` запускає fail-safe міграцію одного Azure pipeline-файлу: спочатку розбирає документ і відсіює файли поза скоупом, далі бере service path і всі jobs-послідовності, а потім поетапно переписує pipeline до канону plan → lint_<domain> → deploy, зберігаючи коментарі та форматування незачеплених частин через `yaml` Document API. Якщо у файлі є легасі lint-джоба без домену, вона перетворюється на набір domain-style lint-джоб, а якщо вже є domain-style lint-джоби, їм добирається потрібний wiring для запуску після `plan`. Після цього залежності інших джоб перешиваються на нові lint-імена, і лише джоби з прямими залежностями на умовні lint-джоби отримують Skipped-толерантний condition, якщо власного condition ще немає. Нетривіальні умови не перезаписуються, а template-розкладка залишається недоторканою, бо фіксер працює тільки з уже розгорнутими jobs.
|
|
25
|
+
|
|
26
|
+
`patterns` задає критерій скоупу міграції: працюють лише pipeline-файли з `trigger.paths.include`, які мають перейти на сервісний канон і відповідають очікуваному перетворенню для service_deploy_pipeline. Саме цей відбір відмежовує файли, які можна безпечно переписати автоматично, від тих, де потрібне ручне рішення автора.
|
|
21
27
|
|
|
22
28
|
## Публічний API
|
|
23
29
|
|
|
24
|
-
- migratePipelineFile —
|
|
25
|
-
- patterns —
|
|
30
|
+
- migratePipelineFile — Мігрує один pipeline-файл до канону. Повертає true, якщо файл змінено.
|
|
31
|
+
- patterns — Один детермінований патерн: для кожного pipeline-файлу з порушеннями запускає
|
|
32
|
+
`migratePipelineFile` (plan-джоба, per-domain lint-джоби, перешивка dependsOn).
|
|
33
|
+
Помилка міграції окремого файлу не валить прогін — deny лишається детектору
|
|
34
|
+
до ручного фіксу.
|
|
26
35
|
|
|
27
36
|
## Гарантії поведінки
|
|
28
37
|
|
|
@@ -404,6 +404,12 @@ export async function migratePipelineFile(absPath, cwd) {
|
|
|
404
404
|
return true
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
+
/**
|
|
408
|
+
* Один детермінований патерн: для кожного pipeline-файлу з порушеннями запускає
|
|
409
|
+
* `migratePipelineFile` (plan-джоба, per-domain lint-джоби, перешивка dependsOn).
|
|
410
|
+
* Помилка міграції окремого файлу не валить прогін — deny лишається детектору
|
|
411
|
+
* до ручного фіксу.
|
|
412
|
+
*/
|
|
407
413
|
export const patterns = [
|
|
408
414
|
{
|
|
409
415
|
id: 'azure-service-pipeline-canon-migrate',
|