summaryrefslogtreecommitdiff
path: root/.github/mergify.yml
blob: 15e9cfdf74b74cfd116f143673b1f3dc836b9cec (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
44
45
46
# yaml-language-server: $schema=https://docs.mergify.com/configuration/file-format/
# Mergify configuration for vyos/live-boot.
#
# Inherits the central baseline from vyos/mergify:.mergify.yml. The central
# baseline provides:
#   - `defaults.actions.backport.ignore_conflicts: false`
#   - `pull_request_rules` → label conflicting PRs with `conflicts`;
#     T-ID format checks on PR title and commit messages.
#   - `commands_restrictions` → restrict @Mergifyio slash commands to the
#     org Maintainers team + vyosbot. Resolves correctly on both sides of
#     the cross-org mirror: vyos/mergify uses @vyos/maintainers,
#     VyOS-Networks/mergify uses @VyOS-Networks/maintainers.
#
# Replaces the inline T8531 predecessor config. Rollout context:
# T8782 (Mergify central-config rollout), T8852 (fleet migration to
# `extends:`). See https://vyos.dev/T8782, https://vyos.dev/T8852,
# and the Confluence spec at
# https://vyos.atlassian.net/wiki/spaces/VYOS/pages/849477640.

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