-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathconfig.yaml
More file actions
275 lines (243 loc) · 9.82 KB
/
config.yaml
File metadata and controls
275 lines (243 loc) · 9.82 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
# yaml-language-server: $schema=https://raw.githubusercontent.com/myk-org/github-webhook-server/refs/heads/main/webhook_server/config/schema.yaml
log-level: INFO # Set global log level, change take effect immediately without server restart
log-file: webhook-server.log # Set global log file, change take effect immediately without server restart
mcp-log-file: mcp_server.log # Set global MCP log file, change take effect immediately without server restart
logs-server-log-file: logs_server.log # Set global Logs Server log file, change take effect immediately without server restart
mask-sensitive-data: true # Mask sensitive data in logs (default: true). Set to false for debugging (NOT recommended in production)
# Server configuration
disable-ssl-warnings: true # Disable SSL warnings (useful in production to reduce log noise from SSL certificate issues)
github-app-id: 123456 # GitHub app id
github-tokens:
- <GITHIB TOKEN1>
- <GITHIB TOKEN2>
webhook-ip: <HTTP://IP OR URL:PORT/webhook_server> # Full URL with path (e.g., https://your-domain.com/webhook_server or https://smee.io/your-channel)
docker: # Used to pull images from docker.io
username: <username>
password: <password>
default-status-checks:
- "WIP"
- "dpulls"
- "can-be-merged"
auto-verified-and-merged-users:
- "renovate[bot]"
- "pre-commit-ci[bot]"
auto-verify-cherry-picked-prs: true # Default: true - automatically verify cherry-picked PRs. Set to false to require manual verification.
create-issue-for-new-pr: true # Global default: create tracking issues for new PRs
cherry-pick-assign-to-pr-author: true # Default: true - assign cherry-pick PRs to the original PR author
# Commands allowed on draft PRs (optional)
# If not set: commands are blocked on draft PRs (default behavior)
# If empty list []: all commands allowed on draft PRs
# If list with values: only those commands allowed on draft PRs
# allow-commands-on-draft-prs: [] # Uncomment to allow all commands on draft PRs
# allow-commands-on-draft-prs: # Or allow only specific commands:
# - build-and-push-container
# - retest
# Labels configuration - control which labels are enabled and their colors
# If not set, all labels are enabled with default colors
labels:
# Optional: List of label categories to enable
# If not set, all labels are enabled. If set, only listed categories are enabled.
# Note: reviewed-by labels (approved-*, lgtm-*, etc.) are always enabled and cannot be disabled
enabled-labels:
- verified
- hold
- wip
- needs-rebase
- has-conflicts
- can-be-merged
- size
- branch
- cherry-pick
- automerge
# Optional: Custom colors for labels (CSS3 color names)
colors:
hold: red
verified: green
wip: orange
needs-rebase: darkred
has-conflicts: red
can-be-merged: limegreen
automerge: green
# Dynamic label prefixes
approved-: green
lgtm-: yellowgreen
changes-requested-: orange
commented-: gold
cherry-pick-: coral
branch-: royalblue
# Global PR size label configuration (optional)
# Define custom categories based on total lines changed (additions + deletions)
# threshold: positive integer or 'inf' for unbounded largest category
# color: CSS3 color name (e.g., red, green, blue, lightgray, darkorange)
# Infinity behavior: 'inf' ensures all PRs beyond largest finite threshold are captured
# Always sorted last, regardless of definition order
pr-size-thresholds:
Tiny:
threshold: 10 # PRs with 0-9 lines changed
color: lightgray
Small:
threshold: 50 # PRs with 10-49 lines changed
color: green
Medium:
threshold: 150 # PRs with 50-149 lines changed
color: orange
Large:
threshold: 300 # PRs with 150-299 lines changed
color: red
Massive:
threshold: inf # PRs with 300+ lines changed (unbounded largest category)
color: darkred # 'inf' means no upper limit - catches all PRs above 300 lines
branch-protection:
strict: True
require_code_owner_reviews: True
dismiss_stale_reviews: False
required_approving_review_count: 1
required_linear_history: True
required_conversation_resolution: True
# PR Test Oracle integration
# Analyzes PR diffs with AI and recommends which tests to run
# See: https://github.com/myk-org/pr-test-oracle
test-oracle:
server-url: "http://localhost:8000"
ai-provider: "claude" # claude | gemini | cursor
ai-model: "claude-opus-4-6[1m]"
test-patterns:
- "tests/**/*.py"
triggers: # Default: [approved]
- approved # Run when /approve command is used
# - pr-opened # Run when PR is opened
# - pr-synchronized # Run when new commits pushed
# AI Features configuration
# Enables AI-powered enhancements (e.g., conventional title suggestions)
ai-features:
ai-provider: "claude" # claude | gemini | cursor
ai-model: "claude-opus-4-6[1m]"
conventional-title:
enabled: true
mode: suggest # suggest: show in checkrun | fix: auto-update PR title
timeout-minutes: 10
resolve-cherry-pick-conflicts-with-ai:
enabled: true
timeout-minutes: 10 # Timeout in minutes for AI CLI (default: 10)
repositories:
my-repository:
name: my-org/my-repository
log-level: DEBUG # Override global log-level for repository
log-file: my-repository.log # Override global log-file for repository
mask-sensitive-data: false # Override global setting - disable masking for debugging this specific repo (NOT recommended in production)
slack-webhook-url: <Slack webhook url> # Send notification to slack on several operations
verified-job: true
pypi:
token: <PYPI TOKEN>
events: # To listen to all events do not send events
- push
- pull_request
- pull_request_review
- pull_request_review_thread
- issue_comment
- check_run
- status
tox:
main: all # Run all tests in tox.ini when pull request parent branch is main
dev: testenv1,testenv2 # Run testenv1 and testenv2 tests in tox.ini when pull request parent branch is dev
pre-commit: true # Run pre-commit check
protected-branches:
dev: []
main: # set [] in order to set all defaults run included
include-runs:
- "pre-commit.ci - pr"
- "WIP"
exclude-runs:
- "SonarCloud Code Analysis"
container:
username: <registry username>
password: <registry_password>
repository: <registry_repository_full_path>
tag: <image_tag>
release: true # Push image to registry on new release with release as the tag
build-args: # build args to send to podman build command
- my-build-arg1=1
- my-build-arg2=2
args: # args to send to podman build command
- --format docker
auto-verified-and-merged-users: # override auto verified users per repository
- "my[bot]"
auto-verify-cherry-picked-prs: false # Disable auto-verification for cherry-picked PRs in this repository
github-tokens: # override GitHub tokens per repository
- <GITHUB TOKEN1>
- <GITHUB TOKEN2>
can-be-merged-required-labels: # check for extra labels to set PR as can be merged
- my-label1
- my-label2
# Conventional Commits validation
# Enforces Conventional Commits v1.0.0 specification for PR titles
# Format: <type>[optional scope]: <description>
#
# Standard types (recommended):
# - feat: New features (triggers MINOR version bump in semver)
# - fix: Bug fixes (triggers PATCH version bump in semver)
# - build, chore, ci, docs, style, refactor, perf, test, revert
#
# Custom types: You can define your own types! The spec allows any noun.
# Examples: my-title, hotfix, release, custom
#
# Valid PR title examples:
# - feat: add user authentication
# - fix(parser): handle edge case in XML parsing
# - feat!: breaking API change to authentication
# - my-title: custom type example
# - hotfix(api): resolve production issue
#
# Use "*" to accept any type while enforcing the format
# conventional-title: "*"
#
# Resources: https://www.conventionalcommits.org/en/v1.0.0/
conventional-title: "feat,fix,build,chore,ci,docs,style,refactor,perf,test,revert"
branch-protection:
strict: True
require_code_owner_reviews: True
dismiss_stale_reviews: False
required_approving_review_count: 1
required_linear_history: True
required_conversation_resolution: True
minimum-lgtm: 0 # The minimum PR lgtm required before approve the PR
create-issue-for-new-pr: true # Override global setting: create tracking issues for new PRs (default: true)
# Allow commands on draft PRs (overrides global setting)
allow-commands-on-draft-prs:
- build-and-push-container # Allow building containers on draft PRs
# Repository-specific labels configuration (overrides global)
labels:
enabled-labels:
- verified
- hold
- size
colors:
hold: purple
# Repository-specific PR size labels (overrides global configuration)
pr-size-thresholds:
Express:
threshold: 25 # PRs with 0-24 lines changed
color: lightblue
Standard:
threshold: 100 # PRs with 25-99 lines changed
color: green
Premium:
threshold: 500 # PRs with 100-499 lines changed
color: orange # PRs with 500+ lines changed get this category
set-auto-merge-prs:
- main
# AI Features configuration (overrides global)
# Enables AI-powered enhancements (e.g., conventional title suggestions)
# ai-features:
# ai-provider: "claude" # claude | gemini | cursor
# ai-model: "sonnet"
# PR Test Oracle (overrides global)
# See: https://github.com/myk-org/pr-test-oracle
test-oracle:
server-url: "http://localhost:8000"
ai-provider: "claude"
ai-model: "sonnet"
test-patterns:
- "tests/**/*.py"
triggers:
- approved