@7n/rules-ci-github 1.9.0 → 1.9.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 +14 -0
- package/package.json +1 -1
- package/rules/abie/clean_merged_ignore_branches/docs/fix-clean_merged_ignore_branches.md +15 -10
- package/rules/abie/clean_merged_ignore_branches/docs/index.md +2 -2
- package/rules/abie/clean_merged_ignore_branches/fix-clean_merged_ignore_branches.mjs +10 -0
- package/rules/docker/lint_docker_yml/docs/fix-lint_docker_yml.md +13 -10
- package/rules/docker/lint_docker_yml/docs/index.md +2 -2
- package/rules/docker/lint_docker_yml/fix-lint_docker_yml.mjs +10 -0
- package/rules/ga/clean_ga_workflows/docs/fix-clean_ga_workflows.md +12 -12
- package/rules/ga/clean_ga_workflows/fix-clean_ga_workflows.mjs +10 -0
- package/rules/ga/clean_merged_branch/docs/fix-clean_merged_branch.md +17 -8
- package/rules/ga/clean_merged_branch/fix-clean_merged_branch.mjs +10 -0
- package/rules/ga/git_ai/docs/fix-git_ai.md +18 -8
- package/rules/ga/git_ai/fix-git_ai.mjs +10 -0
- package/rules/ga/git_ai/template/git-ai.yml.snippet.yml +1 -1
- package/rules/ga/lint_ga/docs/fix-lint_ga.md +16 -10
- package/rules/ga/lint_ga/fix-lint_ga.mjs +10 -0
- package/rules/ga/lint_repo_yml/docs/fix-lint_repo_yml.md +20 -8
- package/rules/ga/lint_repo_yml/fix-lint_repo_yml.mjs +10 -0
- package/rules/ga/service_deploy_workflow/docs/fix-service_deploy_workflow.md +38 -11
- package/rules/ga/service_deploy_workflow/fix-service_deploy_workflow.mjs +6 -0
- package/rules/ga/vscode_settings/docs/fix-vscode_settings.md +15 -8
- package/rules/ga/vscode_settings/fix-vscode_settings.mjs +10 -0
- package/rules/ga/zizmor_yml/docs/fix-zizmor_yml.md +14 -9
- package/rules/ga/zizmor_yml/fix-zizmor_yml.mjs +10 -0
- package/rules/js/lint_js_yml/docs/fix-lint_js_yml.md +16 -8
- package/rules/js/lint_js_yml/docs/index.md +2 -2
- package/rules/js/lint_js_yml/fix-lint_js_yml.mjs +10 -0
- package/rules/k8s/lint_k8s_yml/docs/fix-lint_k8s_yml.md +15 -10
- package/rules/k8s/lint_k8s_yml/docs/index.md +2 -2
- package/rules/k8s/lint_k8s_yml/fix-lint_k8s_yml.mjs +10 -0
- package/rules/k8s/lint_k8s_yml/template/lint-k8s.yml.snippet.yml +1 -1
- package/rules/npm-module/npm_publish_yml/docs/fix-npm_publish_yml.md +19 -9
- package/rules/npm-module/npm_publish_yml/docs/index.md +2 -2
- package/rules/npm-module/npm_publish_yml/fix-npm_publish_yml.mjs +10 -0
- package/rules/php/lint_php_yml/docs/fix-lint_php_yml.md +19 -9
- package/rules/php/lint_php_yml/docs/index.md +2 -2
- package/rules/php/lint_php_yml/fix-lint_php_yml.mjs +10 -0
- package/rules/python/lint_python_yml/docs/fix-lint_python_yml.md +21 -8
- package/rules/python/lint_python_yml/docs/index.md +2 -2
- package/rules/python/lint_python_yml/fix-lint_python_yml.mjs +6 -0
- package/rules/rust/lint_rust_yml/docs/fix-lint_rust_yml.md +19 -9
- package/rules/rust/lint_rust_yml/docs/index.md +2 -2
- package/rules/rust/lint_rust_yml/fix-lint_rust_yml.mjs +6 -0
- package/rules/rust/toolchain_cache/docs/index.md +2 -4
- package/rules/rust/toolchain_cache/docs/main.md +23 -35
- package/rules/rust/toolchain_cache/main.mjs +4 -0
- package/rules/security/lint_security_yml/docs/fix-lint_security_yml.md +12 -10
- package/rules/security/lint_security_yml/docs/index.md +2 -2
- package/rules/security/lint_security_yml/fix-lint_security_yml.mjs +6 -0
- package/rules/style/lint_style_yml/docs/fix-lint_style_yml.md +10 -9
- package/rules/style/lint_style_yml/docs/index.md +2 -2
- package/rules/style/lint_style_yml/fix-lint_style_yml.mjs +6 -0
- package/rules/text/lint_text/docs/fix-lint_text.md +13 -8
- package/rules/text/lint_text/docs/index.md +2 -2
- package/rules/text/lint_text/fix-lint_text.mjs +6 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T0-autofix концерну `python/lint_python_yml`: деклараційний template-deep-merge —
|
|
3
|
+
* scaffold відсутнього `.github/workflows/lint-python.yml` з канонічного шаблону правила або
|
|
4
|
+
* дописування в наявний файл лише канонічних полів (локальні — зберігаються).
|
|
5
|
+
*/
|
|
1
6
|
import { createTemplateFixPattern } from '@7n/rules/scripts/lib/fix/template-deep-merge.mjs'
|
|
2
7
|
|
|
8
|
+
/** Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-python.yml`. */
|
|
3
9
|
export const patterns = [
|
|
4
10
|
createTemplateFixPattern({ id: 'python-lint_python_yml-template', targetPath: '.github/workflows/lint-python.yml' })
|
|
5
11
|
]
|
|
@@ -3,25 +3,35 @@ type: JS Module
|
|
|
3
3
|
title: fix-lint_rust_yml.mjs
|
|
4
4
|
resource: plugins/ci-github/rules/rust/lint_rust_yml/fix-lint_rust_yml.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
7
|
-
model: openai-codex/gpt-5.
|
|
6
|
+
crc: 4312b7ec
|
|
7
|
+
model: openai-codex/gpt-5.5
|
|
8
|
+
tier: cloud-avg
|
|
8
9
|
score: 100
|
|
9
|
-
issues: judge:inaccurate:0.99
|
|
10
|
+
issues: judge-refine:kept-original,judge:inaccurate:0.99
|
|
10
11
|
judgeModel: openai-codex/gpt-5.4-mini
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
## Огляд
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
Файл описує T0-autofix для `rust/lint_rust_yml`: scaffold відсутнього `.github/workflows/lint-rust.yml` з канонічного шаблону правила або `template-deep-merge` канонічних полів у наявний workflow зі збереженням локальних налаштувань.
|
|
17
|
+
|
|
18
|
+
Публічна функція `patterns` декларує цю поведінку для правила. Обхід свідомо пропускає шляхи `.github` і `.git`, щоб не аналізувати службові директорії як джерела проєктного Rust-коду.
|
|
16
19
|
|
|
17
20
|
## Поведінка
|
|
18
21
|
|
|
19
|
-
1. `patterns`
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
1. `patterns` оголошує єдиний сценарій autofix для Rust lint workflow.
|
|
23
|
+
|
|
24
|
+
2. Сценарій створює відсутній `.github/workflows/lint-rust.yml` за канонічним шаблоном правила, щоб проєкт мав стандартну GitHub Actions перевірку Rust lint.
|
|
25
|
+
|
|
26
|
+
3. Якщо workflow уже існує, сценарій доповнює його лише канонічними полями, зберігаючи локальні налаштування проєкту.
|
|
27
|
+
|
|
28
|
+
4. Autofix свідомо не обходить службові шляхи `.github` і `.git` як звичайні цілі аналізу; `.github/workflows/lint-rust.yml` використовується лише як визначений цільовий workflow-файл.
|
|
29
|
+
|
|
30
|
+
## Публічний API
|
|
31
|
+
|
|
32
|
+
- patterns — Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-rust.yml`.
|
|
23
33
|
|
|
24
34
|
## Гарантії поведінки
|
|
25
35
|
|
|
26
|
-
-
|
|
36
|
+
- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
|
|
27
37
|
- Свідомо пропускає шляхи: `.github`, `.git`.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T0-autofix концерну `rust/lint_rust_yml`: деклараційний template-deep-merge —
|
|
3
|
+
* scaffold відсутнього `.github/workflows/lint-rust.yml` з канонічного шаблону правила або
|
|
4
|
+
* дописування в наявний файл лише канонічних полів (локальні — зберігаються).
|
|
5
|
+
*/
|
|
1
6
|
import { createTemplateFixPattern } from '@7n/rules/scripts/lib/fix/template-deep-merge.mjs'
|
|
2
7
|
|
|
8
|
+
/** Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-rust.yml`. */
|
|
3
9
|
export const patterns = [
|
|
4
10
|
createTemplateFixPattern({ id: 'rust-lint_rust_yml-template', targetPath: '.github/workflows/lint-rust.yml' })
|
|
5
11
|
]
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: Directory Index
|
|
3
|
-
title:
|
|
4
|
-
resource:
|
|
3
|
+
title: plugins/ci-github/rules/rust/toolchain_cache
|
|
4
|
+
resource: plugins/ci-github/rules/rust/toolchain_cache/
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# npm/rules/rust/toolchain_cache
|
|
8
|
-
|
|
9
7
|
| Файл | Тип |
|
|
10
8
|
| ------------------------------------------------- | --------- |
|
|
11
9
|
| [fix-toolchain_cache.mjs](fix-toolchain_cache.md) | JS Module |
|
|
@@ -3,55 +3,43 @@ type: JS Module
|
|
|
3
3
|
title: main.mjs
|
|
4
4
|
resource: plugins/ci-github/rules/rust/toolchain_cache/main.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
7
|
-
model:
|
|
6
|
+
crc: e97443b2
|
|
7
|
+
model: openai-codex/gpt-5.5
|
|
8
|
+
tier: cloud-avg
|
|
8
9
|
score: 100
|
|
9
|
-
issues: judge:inaccurate:0.99
|
|
10
10
|
judgeModel: openai-codex/gpt-5.4-mini
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Огляд
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
Конструкція забезпечує перевірку у `.github/workflows/*.yml` того, що кожен job, що використовує `dtolnay/rust-toolchain@stable` для встановлення Rust toolchain, має подальший крок із кешуванням Rust за допомогою `Swatinem/rust-cache@v2`. Якщо job також виконує `tauri-apps/tauri-action` і `Cargo.toml` лежить у `src-tauri/`, кеш-крок повинен мати `with.workspaces` на цей каталог. Ця логіка контролюється згідно з принципами, описаними у (rust.mdc), використовуючи константи `MISSING_RUST_CACHE` та `MISSING_RUST_CACHE_WORKSPACES` для маркування відхилень.
|
|
17
|
-
|
|
18
|
-
Поведінка
|
|
19
|
-
MISSING_RUST_CACHE — константа-рядок, яка позначає відсутність необхідного кешування Rust toolchain.
|
|
20
|
-
MISSING_RUST_CACHE_WORKSPACES — константа-рядок, що інформує про неправильну конфігурацію кешування для робочих просторів Rust.
|
|
21
|
-
TOOLCHAIN_RE — визначення для ідентифікації кроків встановлення Rust toolchain.
|
|
22
|
-
CACHE_RE — визначення для ідентифікації кроків, що використовують кешування Rust.
|
|
23
|
-
scanToolchainSteps — аналізує вміст YAML-файлу workflow, виявляючи кроки встановлення toolchain та інформацію про кешування в межах одного job-а.
|
|
24
|
-
tauriWorkspaceDir — визначає шлях до робочого простору Tauri, коли `Cargo.toml` не знаходиться в корені репозиторію.
|
|
25
|
-
lint — сканує всі `.yml` та `.yaml` файли у каталозі `.github/workflows`, перевіряючи відповідність вимогам кешування.
|
|
26
|
-
Інструмент працює лише з читанням конфігурацій (Read-only) та здійснює кешування інформації в межах поточного прогону.
|
|
15
|
+
Файл виявляє у `.github/workflows/*.yml` job-и, де `dtolnay/rust-toolchain@stable` встановлює Rust toolchain без подальшого `Swatinem/rust-cache@v2`, щоб workflow не втрачали очікуване кешування Cargo-залежностей. Для job-ів із `tauri-apps/tauri-action` він додатково вимагає `with.workspaces` на `src-tauri/`, коли `Cargo.toml` лежить під `src-tauri/`, а не в корені репозиторію.
|
|
27
16
|
|
|
28
17
|
## Поведінка
|
|
29
18
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
scanToolchainSteps — аналізує вміст YAML-файлу workflow, виявляючи кроки встановлення toolchain та інформацію про кешування в межах одного job-а.
|
|
36
|
-
tauriWorkspaceDir — визначає шлях до робочого простору Tauri, якщо файл `Cargo.toml` не розташований у корені проєкту.
|
|
37
|
-
lint — сканує всі `.yml` та `.yaml` файли в каталозі `.github/workflows`, перевіряючи, чи присутні необхідні кешування для кроків Rust toolchain, і повідомляє про відхилення. При цьому ігнорує каталоги .github та .git.
|
|
19
|
+
`lint` запускає read-only перевірку GitHub Actions workflow-файлів. Дані з YAML-файлів передаються як текст, щоб зберегти коментарі й мінімізувати зміни формату; результатом є lint-повідомлення без власних записів у файлову систему.
|
|
20
|
+
|
|
21
|
+
`scanToolchainSteps` проходить workflow-контент і знаходить кроки Rust toolchain за `TOOLCHAIN_RE`, після чого в межах того самого job-а шукає наступний cache-крок за `CACHE_RE`. Межа job-а визначається відступами, тому перевірка прив’язана до фактичної структури `steps`, а не до повного YAML-парсингу. Якщо cache-крок відсутній після встановлення toolchain, `lint` повертає порушення `MISSING_RUST_CACHE` зі значенням `"missing-rust-cache"` — job має додати `Swatinem/rust-cache@v2`.
|
|
22
|
+
|
|
23
|
+
`tauriWorkspaceDir` додає проєктний контекст до текстового сканування: якщо Rust workspace розміщений у типовому Tauri-каталозі, а не в корені репозиторію, `lint` вимагає, щоб cache-крок у job-і з Tauri action мав окремо заданий workspace. За відсутності такого налаштування повертається порушення `MISSING_RUST_CACHE_WORKSPACES` зі значенням `"missing-rust-cache-workspaces"`.
|
|
38
24
|
|
|
39
25
|
## Публічний API
|
|
40
26
|
|
|
41
|
-
|
|
27
|
+
- MISSING_RUST_CACHE — Reason-код: job ставить Rust toolchain, але не має кроку `Swatinem/rust-cache@v2`.
|
|
28
|
+
- MISSING_RUST_CACHE_WORKSPACES — Reason-код: кеш-крок Tauri-job-а без `with.workspaces` на каталог `src-tauri`.
|
|
29
|
+
- TOOLCHAIN_RE — Рядок кроку встановлення Rust toolchain (`dtolnay/rust-toolchain@…`).
|
|
30
|
+
- CACHE_RE — Рядок кроку кешування Cargo-артефактів (`Swatinem/rust-cache@…`).
|
|
31
|
+
- scanToolchainSteps — Сканує вміст workflow-файла й повертає по одному запису на кожен
|
|
32
|
+
`dtolnay/rust-toolchain@…` крок, з інформацією про cache-крок і tauri-action
|
|
33
|
+
у тому самому job-і (обмежено indentation-dedent-ом).
|
|
34
|
+
- tauriWorkspaceDir — Каталог Rust-workspace-а для `Swatinem/rust-cache` `with.workspaces`, якщо
|
|
35
|
+
`Cargo.toml` не в корені репо, а під `src-tauri/` (типовий Tauri-layout).
|
|
36
|
+
`undefined`, якщо корінь репо вже є workspace-коренем (окремий крок не потрібен).
|
|
37
|
+
- lint — знаходить конфігурації Rust без потрібного cache для збірок і workspace, щоб CI не витрачав час на повторне завантаження залежностей.
|
|
42
38
|
|
|
43
|
-
|
|
39
|
+
Поведінка: повідомлення маркуються як (rust.mdc), щоб порушення було прив’язане до правила Rust.
|
|
44
40
|
|
|
45
|
-
|
|
46
|
-
* MISSING_RUST_CACHE_WORKSPACES — Ідентифікатор, що позначає відсутність кешу для Rust-робочих просторів.
|
|
47
|
-
* TOOLCHAIN_RE — Маркер, що вказує на інструментарій.
|
|
48
|
-
* CACHE_RE — Маркер, що стосується механізму кешування.
|
|
49
|
-
* scanToolchainSteps — Виявляє всі етапи використання `dtolnay/rust-toolchain@…` у workflow-файлі, надаючи деталі про кешування та дії Tauri у відповідних завданнях.
|
|
50
|
-
* tauriWorkspaceDir — Вказує на шлях до Rust-робочого простору для кешування, якщо `Cargo.toml` знаходиться в `src-tauri/`, інакше — не визначений.
|
|
51
|
-
* lint — Здійснює перевірку коду на відповідність встановленим стандартам.
|
|
41
|
+
Експортовані константи-рядки: MISSING_RUST_CACHE="missing-rust-cache" — позначає відсутній cache для Rust; MISSING_RUST_CACHE_WORKSPACES="missing-rust-cache-workspaces" — позначає відсутній cache для workspace-збірок Rust.
|
|
52
42
|
|
|
53
43
|
## Гарантії поведінки
|
|
54
44
|
|
|
55
|
-
-
|
|
56
|
-
- Кешує результати в межах одного прогону.
|
|
57
|
-
- Свідомо пропускає шляхи: `.github`, `.git`.
|
|
45
|
+
- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
|
|
@@ -20,10 +20,14 @@ import { join, relative } from 'node:path'
|
|
|
20
20
|
|
|
21
21
|
import { createViolationReporter } from '@7n/rules/scripts/lib/lint-surface/violation-reporter.mjs'
|
|
22
22
|
|
|
23
|
+
/** Reason-код: job ставить Rust toolchain, але не має кроку `Swatinem/rust-cache@v2`. */
|
|
23
24
|
export const MISSING_RUST_CACHE = 'missing-rust-cache'
|
|
25
|
+
/** Reason-код: кеш-крок Tauri-job-а без `with.workspaces` на каталог `src-tauri`. */
|
|
24
26
|
export const MISSING_RUST_CACHE_WORKSPACES = 'missing-rust-cache-workspaces'
|
|
25
27
|
|
|
28
|
+
/** Рядок кроку встановлення Rust toolchain (`dtolnay/rust-toolchain@…`). */
|
|
26
29
|
export const TOOLCHAIN_RE = /uses:\s*dtolnay\/rust-toolchain@/u
|
|
30
|
+
/** Рядок кроку кешування Cargo-артефактів (`Swatinem/rust-cache@…`). */
|
|
27
31
|
export const CACHE_RE = /uses:\s*Swatinem\/rust-cache@/u
|
|
28
32
|
const TAURI_ACTION_RE = /uses:\s*tauri-apps\/tauri-action@/u
|
|
29
33
|
const WORKSPACES_KEY_RE = /^\s*workspaces\s*:/u
|
|
@@ -3,28 +3,30 @@ type: JS Module
|
|
|
3
3
|
title: fix-lint_security_yml.mjs
|
|
4
4
|
resource: plugins/ci-github/rules/security/lint_security_yml/fix-lint_security_yml.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
7
|
-
model: openai-codex/gpt-5.
|
|
6
|
+
crc: 7063b373
|
|
7
|
+
model: openai-codex/gpt-5.4-mini
|
|
8
|
+
tier: cloud-min
|
|
8
9
|
score: 100
|
|
9
|
-
issues: judge:inaccurate:0.
|
|
10
|
+
issues: 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
|
+
Декларативний template-deep-merge для `security/lint_security_yml`, який або створює відсутній `.github/workflows/lint-security.yml` з канонічного шаблону правила, або доповнює наявний workflow лише канонічними полями. Пошук працює через `patterns` і свідомо пропускає `.github` та `.git`, тож правило не зачіпає ці шляхи під час автолікування. Це потрібно, щоб у репозиторії був узгоджений security-lint workflow.
|
|
16
17
|
|
|
17
18
|
## Поведінка
|
|
18
19
|
|
|
19
|
-
1. `patterns`
|
|
20
|
+
1. `patterns` задає єдине правило автолікування для `security/lint_security_yml`: воно готує канонічний шаблон для `.github/workflows/lint-security.yml`.
|
|
21
|
+
2. Якщо цільового workflow-файлу немає, `patterns` ініціює його створення зі стандартною структурою правила.
|
|
22
|
+
3. Якщо файл уже існує, `patterns` доповнює лише канонічні поля, не перетираючи локальні зміни.
|
|
23
|
+
4. `patterns` свідомо не працює з шляхами `.github` і `.git`, щоб не зачіпати службові області репозиторію.
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
## Публічний API
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
4. Зміни не записуються напряму у файлову систему або зовнішні сховища: `patterns` лише описує доступне виправлення для подальшого застосування інструментом.
|
|
27
|
+
- patterns — Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-security.yml`.
|
|
26
28
|
|
|
27
29
|
## Гарантії поведінки
|
|
28
30
|
|
|
29
|
-
-
|
|
31
|
+
- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
|
|
30
32
|
- Свідомо пропускає шляхи: `.github`, `.git`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: Directory Index
|
|
3
|
-
title:
|
|
4
|
-
resource:
|
|
3
|
+
title: plugins/ci-github/rules/security/lint_security_yml
|
|
4
|
+
resource: plugins/ci-github/rules/security/lint_security_yml/
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
| Файл | Тип |
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T0-autofix концерну `security/lint_security_yml`: деклараційний template-deep-merge —
|
|
3
|
+
* scaffold відсутнього `.github/workflows/lint-security.yml` з канонічного шаблону правила або
|
|
4
|
+
* дописування в наявний файл лише канонічних полів (локальні — зберігаються).
|
|
5
|
+
*/
|
|
1
6
|
import { createTemplateFixPattern } from '@7n/rules/scripts/lib/fix/template-deep-merge.mjs'
|
|
2
7
|
|
|
8
|
+
/** Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-security.yml`. */
|
|
3
9
|
export const patterns = [
|
|
4
10
|
createTemplateFixPattern({
|
|
5
11
|
id: 'security-lint_security_yml-template',
|
|
@@ -3,28 +3,29 @@ type: JS Module
|
|
|
3
3
|
title: fix-lint_style_yml.mjs
|
|
4
4
|
resource: plugins/ci-github/rules/style/lint_style_yml/fix-lint_style_yml.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
6
|
+
crc: 1230aa27
|
|
7
7
|
model: openai-codex/gpt-5.5
|
|
8
|
+
tier: cloud-avg
|
|
8
9
|
score: 100
|
|
9
|
-
issues: judge:inaccurate:0.99
|
|
10
10
|
judgeModel: openai-codex/gpt-5.4-mini
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Огляд
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
`style/lint_style_yml` описує автозастосування канонічного workflow `.github/workflows/lint-style.yml` саме для правила `lint-style.yml`. `patterns` потрібна, щоб через `template-deep-merge` створювати відсутній workflow з еталонного шаблону або доповнювати наявний лише обов’язковими канонічними полями без втрати локальних налаштувань.
|
|
16
16
|
|
|
17
17
|
## Поведінка
|
|
18
18
|
|
|
19
|
-
1. `patterns`
|
|
19
|
+
1. `patterns` задає автозастосування канонічного виправлення для workflow перевірки стилю.
|
|
20
20
|
|
|
21
|
-
2.
|
|
21
|
+
2. Якщо `.github/workflows/lint-style.yml` відсутній, правило має створити його з еталонного шаблону.
|
|
22
22
|
|
|
23
|
-
3.
|
|
23
|
+
3. Якщо workflow уже існує, правило має доповнити його лише обов’язковими канонічними полями, не перезаписуючи локальні налаштування.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
## Публічний API
|
|
26
|
+
|
|
27
|
+
- patterns — Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-style.yml`.
|
|
26
28
|
|
|
27
29
|
## Гарантії поведінки
|
|
28
30
|
|
|
29
|
-
-
|
|
30
|
-
- Свідомо пропускає шляхи: `.github`, `.git`.
|
|
31
|
+
- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T0-autofix концерну `style/lint_style_yml`: деклараційний template-deep-merge —
|
|
3
|
+
* scaffold відсутнього `.github/workflows/lint-style.yml` з канонічного шаблону правила або
|
|
4
|
+
* дописування в наявний файл лише канонічних полів (локальні — зберігаються).
|
|
5
|
+
*/
|
|
1
6
|
import { createTemplateFixPattern } from '@7n/rules/scripts/lib/fix/template-deep-merge.mjs'
|
|
2
7
|
|
|
8
|
+
/** Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-style.yml`. */
|
|
3
9
|
export const patterns = [
|
|
4
10
|
createTemplateFixPattern({ id: 'style-lint_style_yml-template', targetPath: '.github/workflows/lint-style.yml' })
|
|
5
11
|
]
|
|
@@ -3,25 +3,30 @@ type: JS Module
|
|
|
3
3
|
title: fix-lint_text.mjs
|
|
4
4
|
resource: plugins/ci-github/rules/text/lint_text/fix-lint_text.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
6
|
+
crc: 78ee3182
|
|
7
7
|
model: openai-codex/gpt-5.4-mini
|
|
8
|
+
tier: cloud-min
|
|
8
9
|
score: 100
|
|
9
|
-
issues: judge:inaccurate:0.
|
|
10
|
+
issues: 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
|
-
`patterns`
|
|
16
|
+
`patterns` підтримує `.github/workflows/lint-text.yml` у канонічному стані: створює відсутній workflow з канонічного шаблону правила або доповнює наявний файл декларативним template-deep-merge, зберігаючи локальні поля.
|
|
16
17
|
|
|
17
18
|
## Поведінка
|
|
18
19
|
|
|
19
|
-
1. `patterns`
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
22
|
-
4.
|
|
20
|
+
1. `patterns` визначає набір правил для T0-autofix у концерні `text/lint_text` і запускає декларативне злиття шаблону для `.github/workflows/lint-text.yml`.
|
|
21
|
+
2. Якщо цільовий workflow-файл відсутній, `patterns` ініціює його scaffold із канонічного шаблону правила.
|
|
22
|
+
3. Якщо workflow-файл уже існує, `patterns` доповнює лише канонічні поля, не перезаписуючи локальні зміни.
|
|
23
|
+
4. `patterns` працює в межах дозволених шляхів і свідомо пропускає `.github` та `.git`, щоб не зачіпати службові та службово-репозиторні області поза цим сценарієм.
|
|
24
|
+
|
|
25
|
+
## Публічний API
|
|
26
|
+
|
|
27
|
+
- patterns — Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-text.yml`.
|
|
23
28
|
|
|
24
29
|
## Гарантії поведінки
|
|
25
30
|
|
|
26
|
-
-
|
|
31
|
+
- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
|
|
27
32
|
- Свідомо пропускає шляхи: `.github`, `.git`.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T0-autofix концерну `text/lint_text`: деклараційний template-deep-merge —
|
|
3
|
+
* scaffold відсутнього `.github/workflows/lint-text.yml` з канонічного шаблону правила або
|
|
4
|
+
* дописування в наявний файл лише канонічних полів (локальні — зберігаються).
|
|
5
|
+
*/
|
|
1
6
|
import { createTemplateFixPattern } from '@7n/rules/scripts/lib/fix/template-deep-merge.mjs'
|
|
2
7
|
|
|
8
|
+
/** Фікс-патерни концерну: один template-deep-merge запис для `.github/workflows/lint-text.yml`. */
|
|
3
9
|
export const patterns = [
|
|
4
10
|
createTemplateFixPattern({ id: 'text-lint_text-template', targetPath: '.github/workflows/lint-text.yml' })
|
|
5
11
|
]
|