-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.github-webhook-server.yaml
More file actions
166 lines (143 loc) · 5.13 KB
/
.github-webhook-server.yaml
File metadata and controls
166 lines (143 loc) · 5.13 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
# Example .github-webhook-server.yaml
# This file should be placed in the root of your repository to configure
# repository-specific webhook server behavior.
# Logging configuration (overrides global settings)
log-level: DEBUG # Options: INFO, DEBUG
log-file: /path/to/repository-specific.log
mask-sensitive-data: false # Disable masking for debugging (NOT recommended in production)
# Slack integration
slack-webhook-url: https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
# Job verification settings
verified-job: true # Enable/disable verified job functionality
# PyPI publishing configuration
pypi:
token: pypi-your-token-here
# GitHub events to listen to
events:
- push
- pull_request
- issue_comment
- check_run
- pull_request_review
- pull_request_review_comment
# Tox configuration
tox:
main: "tests,linting" # Commands for main branch
develop: "tests" # Commands for develop branch
feature/*: ["tests", "quick-lint"] # Array format also supported
# Python version for tox execution
tox-python-version: "3.11"
# Pre-commit hooks
pre-commit: true
# Protected branches configuration
protected-branches:
main: [] # No additional requirements
develop:
include-runs:
- "Required CI Check"
exclude-runs:
- "Optional Check"
release/*: ["Required Release Check"]
# Container/Docker configuration
container:
username: your-registry-username
password: your-registry-password # pragma: allowlist secret
repository: quay.io/your-org/your-repo
tag: latest
release: true # Push on new releases
build-args:
- "BUILD_ARG=value"
args:
- "--platform=linux/amd64"
# Auto-verified and merged users (repository-specific)
auto-verified-and-merged-users:
- "renovate[bot]"
- "dependabot[bot]"
- "trusted-user"
# Auto-verify cherry-picked PRs (default: true)
auto-verify-cherry-picked-prs: false # Set to false to require manual verification for cherry-picked PRs
# Repository-specific GitHub tokens
github-tokens:
- ghp_your_repository_specific_token_here
# Branch protection rules
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
# Auto-merge configuration
set-auto-merge-prs:
- main
- develop
# Required labels for merge
can-be-merged-required-labels:
- "approved"
- "tests-passed"
- "security-reviewed"
# 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
#
# Resources: https://www.conventionalcommits.org/en/v1.0.0/
conventional-title: "feat,fix,build,chore,ci,docs,style,refactor,perf,test,revert"
# Minimum LGTM count required
minimum-lgtm: 2
# Issue creation for new pull requests
create-issue-for-new-pr: true # Create tracking issues for new PRs
cherry-pick-assign-to-pr-author: true # Assign cherry-pick PRs to the original PR author (default: true)
# Custom PR size labels for this repository (overrides global configuration)
# 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:
Quick:
threshold: 20 # PRs with 0-19 lines changed
color: lightgreen
Normal:
threshold: 100 # PRs with 20-99 lines changed
color: green
Complex:
threshold: 300 # PRs with 100-299 lines changed
color: orange
Critical:
threshold: 1000 # PRs with 300-999 lines changed
color: darkred
Extreme:
threshold: inf # PRs with 1000+ lines changed (unbounded largest category)
color: black # 'inf' means no upper limit - catches all PRs above 1000 lines
# 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: "true" # "true": suggest in checkrun | "false": disabled | "fix": auto-update PR title
# PR Test Oracle integration (overrides global config)
# 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:
- approved