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
# Mr. Milchick runtime config for GitHub-oriented runs.
#
# This file holds non-secret operational settings only.
# Keep CI/review metadata in GitHub Actions env/context, and keep secrets in env:
# - GITHUB_TOKEN
# - GITLAB_TOKEN
# - MR_MILCHICK_SLACK_BOT_TOKEN
# - MR_MILCHICK_SLACK_WEBHOOK_URL
#
# If you want to use a different config file path, set:
# - MR_MILCHICK_CONFIG_PATH=/path/to/other-config.toml
[]
# When true, `refine` behaves like a dry run and will not mutate the platform.
# dry_run = true
# Controls when notifications are emitted.
# Valid values:
# - "always"
# - "on-applied-action"
= "always"
[]
# Review platform compiled into this binary.
# Valid values:
# - "gitlab"
# - "github"
= "github"
# Optional GitHub API base URL override.
# Leave this commented for normal github.com usage.
# base_url = "https://api.github.com"
[]
# Maximum number of area-routed reviewers to assign from `reviewers.definitions`.
# Mandatory reviewers and fallback behavior are resolved independently of this cap.
# max_reviewers = 2
# Define reviewer routing entries under [[reviewers.definitions]].
# Supported fields:
# - username : required review-platform username
# - areas : optional list of owned areas
# - fallback : optional boolean, used when no area match is found
# - mandatory : optional boolean, always include this reviewer
# Example fallback reviewer:
# [[reviewers.definitions]]
# username = "milchick-duty"
# fallback = true
# Example mandatory reviewer:
# [[reviewers.definitions]]
# username = "principal-reviewer"
# mandatory = true
# Example area-based reviewers:
# [[reviewers.definitions]]
# username = "alice"
# areas = ["frontend", "packages"]
# [[reviewers.definitions]]
# username = "carol"
# areas = ["backend"]
[]
# Enable or disable CODEOWNERS-based routing.
# Defaults to true when omitted.
# enabled = true
# Optional explicit CODEOWNERS path.
# If omitted, Milchick auto-discovers common CODEOWNERS locations.
# path = ".github/CODEOWNERS"
[]
# Local advisory inference is available only when the binary is compiled with
# the `llm-local` feature. If configured without that feature, Milchick will
# report that inference is configured but not compiled in.
# Enable local advisory review suggestions.
# enabled = false
# Path to a local GGUF model file.
# model_path = "models/review.gguf"
# Timeout budget for the local inference pass, in milliseconds.
# timeout_ms = 15000
# Maximum total patch bytes included in the advisory prompt.
# max_patch_bytes = 32768
# Context window budget for the model runtime.
# context_tokens = 4096
# Emit detailed advisory inference diagnostics in command output.
# trace = false
[]
# Notification sink config lives under the nested sections below.
# Uncomment only the sink types that match your compiled features and secrets.
# Slack workflow sink configuration.
# Requires:
# - binary compiled with `slack-workflow`
# - MR_MILCHICK_SLACK_WEBHOOK_URL in env
# [notifications.slack_workflow]
# enabled = true
#
# Channel ID passed into the workflow payload.
# channel = "C01234567"
# Slack app sink configuration.
# Requires:
# - binary compiled with `slack-app`
# - MR_MILCHICK_SLACK_BOT_TOKEN in env
# [notifications.slack_app]
# enabled = true
#
# Slack channel ID where review notifications should be posted.
# channel = "C01234567"
#
# Optional Slack API base URL override for tests and local mocks.
# base_url = "https://slack.com/api"
# Optional mapping from review-platform usernames to Slack user IDs.
# [notifications.slack_app.user_map]
# "arthur" = "U028DDKDJ4E"
# "principal-reviewer" = "U03D9NN5HB6"
# "bob" = "U028GSCQBUJ"
[]
# Message template overrides live under the sections below.
# If omitted, Milchick uses built-in defaults.
# GitHub summary comment override.
# [templates.github]
# summary = """
# ## {{summary_title}}
#
# {{summary_intro}}
#
# {{findings_block}}
#
# {{actions_block}}
#
# _{{closing_tone_message}}_
# """
# GitLab summary comment override.
# This section is only relevant if you intentionally point this config at a
# GitLab-compiled binary instead of the GitHub one.
# [templates.gitlab]
# summary = """
# ## {{summary_title}}
#
# {{summary_intro}}
#
# {{findings_block}}
#
# {{actions_block}}
#
# _{{closing_tone_message}}_
# """
# Slack app template overrides.
# [templates.slack_app]
# first_root = ":github: {{notification_subject}} :pepe-review:"
# first_thread = """
# *{{notification_title}}*
# Pull request: {{mr_link}}
# {{reviewers_line}}
# """
# update_root = ":github: {{notification_subject}} :thread:"
# update_thread = """
# Pull request: {{mr_link}}
# {{findings_block}}
# {{actions_block}}
# _{{summary_footer}}_
# """
# Slack workflow template overrides.
# [templates.slack_workflow]
# first_title = "{{notification_subject}}"
# first_thread = """
# {{notification_title}}
# Pull request: {{mr_link}}
# {{reviewers_line}}
# """
# update_title = "{{notification_subject}}"
# update_thread = """
# Pull request: {{mr_link}}
# {{findings_block}}
# {{actions_block}}
# {{summary_footer}}
# """