diff --git a/.gitea/workflows/pr-title.yml b/.gitea/workflows/pr-title.yml new file mode 100644 index 0000000..950222e --- /dev/null +++ b/.gitea/workflows/pr-title.yml @@ -0,0 +1,34 @@ +name: Frontend verify + +# Metadata-only: refreshes only the `commits` context after a PR title edit. +# Same workflow name keeps the required context; `security` and `verify` +# statuses of the head revision stay untouched (no skipped overwrite). +on: + pull_request: + types: [edited] + +concurrency: + group: frontend-pr-title-${{ gitea.event.pull_request.number }} + cancel-in-progress: true + +jobs: + commits: + timeout-minutes: 15 + runs-on: ubuntu-latest + steps: + - uses: https://github.com/actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + - uses: https://github.com/actions/setup-node@v4 + with: + node-version-file: .nvmrc + - run: npm ci --ignore-scripts + - name: Check PR title and commits + env: + PR_TITLE: ${{ github.event.pull_request.title }} + BASE_SHA: ${{ github.event.pull_request.base.sha }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + run: | + printf '%s\n' "$PR_TITLE" | npm run commitlint -- --strict + npm run commitlint -- --strict --from "$BASE_SHA" --to "$HEAD_SHA" diff --git a/README.md b/README.md index d65a396..6ddefbf 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,8 @@ Chromium при ширинах 375 и 1280 px. Browser project не исполь Единый `.gitea/workflows/verify.yml` запускает `commits → security → verify` последовательно на PR; на push в `develop`/`main` — `security → verify`. Рабочие ветки проверяются после открытия PR, без дублирующего push-запуска. -Изменение заголовка PR тоже повторяет проверки Conventional Commits. +Изменение заголовка PR запускает `.gitea/workflows/pr-title.yml` (то же имя workflow, +только job `commits`): статусы `security` и `verify` на HEAD не перезаписываются. Новый запуск отменяет устаревший для того же PR/ветки и типа события (требуется Gitea 1.26+). Ежедневно в 05:17 UTC выполняется только `security`. Job `security` проверяет полную доступную историю Gitleaks 8.30.1 и выполняет