fix(ci): в защите ветки пятнадцать обязательных проверок вместо одной — матричные имена рядом с ci-complete

Closed
#1,536 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
github-actions, python
Domain
ci-cd

Research direction

Start by reading .github/workflows/ci-complete.yml and checking whether existing tests verify that it waits for all checks and rejects a mismatch with the required status name. The issue also requires changing the branch-protection settings outside the repository, so confirm you have access before taking it on. Done means only ci-complete is required, adding a matrix version does not require settings changes, and a test catches a name mismatch.

Written by the indexing model from the issue text.

Description

area/ci bug difficulty/easy

Что в защите сейчас

Набор правил «main: зелёный CI на актуальном состоянии», обязательных проверок
пятнадцать:

ci-complete                       ← правильный агрегат
docs-guardrails
static
supply-chain
sandbox-linux
e2e
test (ubuntu-latest, 3.12, false)   test (ubuntu-latest, 3.13, false)
test (windows-latest, 3.12, false)  test (windows-latest, 3.13, false)
test (macos-latest, 3.12, false)    test (macos-latest, 3.13, false)
test (ubuntu-latest, 3.14, false)   test (windows-latest, 3.14, false)
test (macos-latest, 3.14, false)

Почему это дефект

Правило каталога
168
называет признак нарушения дословно: «список обязательных проверок длиннее
одного имени — или в нём стоит имя, собранное из параметров матрицы». Здесь оба
признака сразу.

Механизм при этом сделан правильно. ci-complete.yml собирает вердикт
опросом проверок на голове изменения, а не через needs:; группа отмены
включает head.sha (179).
Не сделано ровно одно — список в настройках не почищен, и хвост сводит
агрегат на нет.

Это уже стоило ручной работы

В списке видны test (…, 3.14, false) — три имени, дописанные руками при
добавлении Python 3.14. Ровно та работа, которой агрегат и заведён избежать.

Дороже другое: переименование или удаление ячейки матрицы даст вечное
ожидание
. Список потребует имя, которого никто не выдаёт, а это не краснеет —
это виснет, и снаружи неотличимо от «проверки ещё идут». У глоссария такое
состояние остановило слияния полностью при одиннадцати зелёных проверках.

Починка

Правка настроек, не кода: Settings → Rules → «main: зелёный CI на актуальном
состоянии» → Require status checks to pass → снять четырнадцать имён, оставить
ci-complete.

Удаление лишних имён безопасно и порядка не требует: агрегат остаётся и
покрывает их. Осторожность нужна при переименовании обязательного имени, а
здесь его нет.

strict остаётся включённым.

Что проверить до снятия

  • ci-complete действительно ждёт все проверки, а не только
    завершившиеся: пустой или неполный список означает «CI не стартовал», а не
    «зелено»
    (010);
  • совпадение имени ci-complete с настройкой держится тестом, а не
    памятью: настройка живёт вне дерева, её не видит ни ревью, ни прогон.
    Если такого теста нет — он и есть главная часть этой задачи.

Готово, когда

  • в защите ровно одно имя — ci-complete;
  • добавление версии в матрицу больше не требует правки настроек — проверено
    прогоном, а не рассуждением
    (139);
  • расхождение имени в настройке и в дереве ловится тестом, то есть проверено
    тем, что он обязан отвергнуть
    (140).

Откуда находка

Сверка конвейеров пяти проектов 09.09 в рамках
ArtVsMark/Engineering-Pipeline-Mechanisms#2. У соседей список правильный: у
витрины и квот PR check, у глоссария check PR — по одному имени. Грейдер
единственный, у кого он длиннее одного.


Generated by Claude Code

Dominant language
Python
Stars
3
Forks
6
Avg merge
4h 7m
Merged PRs (30d)
49

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ArtVsMark/Stepik-Python-Grader

All issues in ArtVsMark/Stepik-Python-Grader

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.