From 2fd042a7dea30068896f5678b4600f9a64ab58ce Mon Sep 17 00:00:00 2001 From: Matysh Date: Thu, 13 Aug 2026 20:41:36 +0300 Subject: [PATCH] feat: an outsider's issue is worked like any other once admitted The guard refused to review any issue the owner had not filed himself. The rule was meant to keep malformed outside reports out of the pipeline, but it checked at every step instead of at the entrance, and it duplicated a guarantee the platform already gives: only someone with write access can apply a label. Applying the first status label is the owner's explicit decision, and it is the only place the question belongs. So the author check is gone. While an issue carries no status label it sits outside the process and the invariants do not apply; once labelled, the task is in flight and who filed it stops mattering. The old rule also cost real work. On #123 an outside bug report had been analysed and specified before the guard turned it away in nine seconds, and the remedy on offer was to refile the same thing as the owner's own issue. Issue: #114 User-Visible: no --- .github/workflows/process.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/process.yml b/.github/workflows/process.yml index bf896138..563aa9e3 100644 --- a/.github/workflows/process.yml +++ b/.github/workflows/process.yml @@ -45,7 +45,6 @@ jobs: env: GH_TOKEN: ${{ secrets.HP_PROCESS_TOKEN }} LABEL: ${{ github.event.label.name }} - AUTHOR: ${{ github.event.issue.user.login }} BLOCKED: ${{ contains(github.event.issue.labels.*.name, 'blocked') }} EXHAUSTED: ${{ contains(github.event.issue.labels.*.name, 'review-4') }} SMALL: ${{ contains(github.event.issue.labels.*.name, 'small') }} @@ -94,13 +93,16 @@ jobs: stage="" } - # В процесс идут только issue, созданные владельцем: репозиторий - # публичный, чужие отчёты бывают невалидны и статусов не несут. + # Автор issue здесь не проверяется (решение владельца 2026-08-13). + # Проверка стоит на входе в процесс, а не на каждом шаге: как только + # задача получила статусную метку, она в работе, и кто её завёл — не + # имеет значения. Само присвоение метки и есть явное подтверждение + # владельца, причём проверенное платформой: метки может ставить только + # тот, у кого есть право записи в репозиторий. Прежняя проверка здесь + # дублировала эту гарантию и заставляла переоформлять чужие отчёты + # своими issue — чистая работа впустую, как на #123. if [ -z "$stage" ]; then : - elif [ "$AUTHOR" != "Matysh" ]; then - refuse "issue от $AUTHOR, не от владельца — пропуск" \ - "issue создан пользователем \`$AUTHOR\`, а в процесс идут только issue владельца (PROCESS.md §9). Чтобы взять задачу в работу, владельцу нужно завести свой issue со ссылкой на этот." elif [ "$BLOCKED" = "true" ]; then refuse "стоит blocked — конвейер не запускается" \ "на issue стоит \`blocked\` — задача ждёт внешнего решения. Снять метку, когда решение принято."