summaryrefslogtreecommitdiff
path: root/.github/mergify.yml
blob: 2196523022d4467c4e813348e7eef8c560feba89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# yaml-language-server: $schema=https://docs.mergify.com/mergify-configuration-schema.json
# Mergify configuration for vyos/shim-signed.
#
# Inherits the central baseline from vyos/mergify (its .mergify.yml on the
# default branch). The central baseline provides:
#   - conflict labeling (`conflicts`, `backport-conflict`)
#   - convention-agnostic merge protections: loose PR-title gate
#     (`invalid-title`), minimal-body gate (`invalid-body`, #body<80),
#     and the WIP merge gate (`WIP`)
#   - @Mergifyio command restrictions (org Maintainers + vyosbot)
#
# Onboarded to `extends` under the T8966 onboard-to-extends follow-up. The
# per-repo rule below opts this product repo into the strict T<digits>:
# convention. It is additive (a distinct rule name, not an `extends` override)
# and bot-excluded, identical to the 49-repo product fleet (IS-531).

extends: mergify
merge_protections_settings:
  reporting_method: check-runs

pull_request_rules:
  - name: Flag product T-ID format violation in PR title or commit messages
    description: >
      Product-repo convention: PR title and every commit's first line must
      match `T<digits>: <text>` (optional `scope: ` prefix). Relocated from
      the central config (T8966) so the T-ID convention is opt-in per product
      repo. Name is intentionally distinct from any central rule name so this
      stays additive (not an `extends:` override).
    conditions:
      - '-closed'
      - '-merged'
      - '-author~=\[bot\]$'
      - 'author!=copilot-swe-agent'
      - 'author!=vyosbot'
      - or:
          - '-title~=^(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+.*'
          - and:
              - 'label!=legacy'
              - 'commits[*].commit_message~=^(?!(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+).*'
    actions:
      label:
        toggle:
          - invalid-task-id