Skip to content

Wymagane kontrole na main to 11 linterow przykladow - zadna bramka tego projektu nie jest wymagana #407

Description

@msgwing

Ustalenie

.claude/agents/ci-engineer.md mowi:

Branch protection requires each lint job by name, so the workflow cannot
use a top-level paths-ignore

Zmierzone dzis, 2026-09-01:

$ gh api repos/msgwing/ZeroSMTP/branches/main/protection \
    --jq '.required_status_checks.contexts'
["bash","csharp","go","java","kotlin","node-and-typescript","php",
 "powershell","python","ruby","rust"]

Jedenascie zadan, wszystkie to lintery przykladow w jezykach. Zadna z bramek
tego projektu nie jest wymagana.
Nie sa wymagane miedzy innymi:

zadanie co w nim stoi
device-table check-facts.py, check-control-chars.py, check-action.py, check-mcp-server.py, check-workflows.py i dziewiec generatorow z --check
jekyll-build budowa strony - dodana 2026-08-30 wlasnie po to, zeby zepsuty Liquid nie trafil na produkcje
mcp-container zbudowanie obrazu i handshake MCP, dodane wczoraj w #405
zerosmtp-check, zerosmtp-mcp testy obu pakietow npm
unanswered-external bramka z #383 na cisze wobec czlowieka z zewnatrz

Dowod, ze to nie jest teoretyczne

--auto scala, gdy przejda kontrole wymagane. Czerwona kontrola
niewymagana nie zatrzymuje niczego. Sprawdzone na 40 ostatnich scalonych PR-ach:

for n in $(gh pr list --state merged --limit 40 --json number -q '.[].number'); do
  gh pr view $n --json statusCheckRollup \
    -q '[.statusCheckRollup[]?|select(.conclusion=="FAILURE")|.name]|join(",")'
done
PR #342 merged with RED: submit-nuget
PR #334 merged with RED: submit-nuget

Dwa PR-y weszly na main z czerwona kontrola. Gdyby czerwony byl
device-table, weszlyby tak samo.

To jest tlo dla dzisiejszego pytania wlasciciela o komitet od zmian: sciezka
scalania nazywa sie "kontrole i nic wiecej", a kontrolami sa lintery
przykladow, nie bramki, ktore ten zespol zbudowal.

Co z tym zrobic

Dopisac do required_status_checks.contexts te zadania, ktore raportuja przy
kazdym zdarzeniu. device-table i jekyll-build nie maja if: i biegna
zawsze - te sa bezpieczne od reki. Reszta ma if: needs.changes.outputs.code,
a pominiete zadanie raportuje status skipped, ktory spelnia wymagana
kontrole (to juz stoi w ci-engineer.md i zostalo tam sprawdzone).

Ostrzezenie z tego samego pliku obowiazuje: wymagana kontrola o nazwie,
ktorej nikt nie raportuje, blokuje kazdy przyszly PR na zawsze.
Nazwy biore
sie z gh pr view <n> --json statusCheckRollup, nie z pamieci, i po zmianie
odczytuje sie contexts z powrotem - odpowiedz 200 nie jest dowodem
(mechanika 8).

Jesli token sesji nie ma uprawnien do PATCH .../branches/main/protection,
to jest to ustawienie repozytorium i wtedy wraca jako osobne do-akceptacji -
ale najpierw trzeba sprobowac i zobaczyc odpowiedz, a nie zalozyc.

Rola: ci-engineer. Poprawic tez zdanie w ci-engineer.md, ktore dzis mowi
nieprawde.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cistan:zalegleNikt tego nie robi i nikt nie czeka na wlasciciela. Jedyna liczba, ktora jest problemem.windows

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions