-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.mergify.yml
More file actions
115 lines (107 loc) · 3.8 KB
/
.mergify.yml
File metadata and controls
115 lines (107 loc) · 3.8 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
queue_rules:
# Dosubot: only needs quality (fmt + clippy) to pass
- name: dosubot
merge_method: squash
autoqueue: true
queue_conditions:
- author = dosubot[bot]
- base = main
merge_conditions:
- check-success = quality
# Dependabot: full CI required
- name: dependabot
merge_method: squash
autoqueue: true
queue_conditions:
- author = dependabot[bot]
- base = main
merge_conditions:
- check-success = quality
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage
# Human PRs: manually enqueued via /queue command (repo permissions restrict to maintainers)
- name: default
merge_method: squash
queue_conditions:
- base = main
- author != dependabot[bot]
- author != dosubot[bot]
merge_conditions:
- check-success = quality
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage
pull_request_rules:
- name: Auto-approve dosubot PRs
description: Approve dosubot PRs so they can proceed through the queue
conditions:
- base = main
- author = dosubot[bot]
actions:
review:
type: APPROVE
message: Automatically approved by Mergify
- name: Auto-approve dependabot PRs
description: Approve dependabot PRs so they can proceed through the queue
conditions:
- base = main
- author = dependabot[bot]
actions:
review:
type: APPROVE
message: Automatically approved by Mergify
- name: Keep PRs up to date with main
conditions:
- base = main
- -conflict
- -draft
actions:
update: {}
merge_protections:
- name: Enforce conventional commit
description: Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
if:
- base = main
- author != dependabot[bot]
- author != dosubot[bot]
success_conditions:
- "title ~=
^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\\(.+\
\\))?:"
- name: Full CI must pass
description: All CI checks must pass. This protection prevents manual merges that bypass the merge queue.
if:
- base = main
success_conditions:
- check-success = quality
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage
- name: Do not merge outdated PRs
description: Make sure PRs are within 10 commits of the base branch before merging
if:
- base = main
success_conditions:
- "#commits-behind <= 10"