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
= "info"
[]
= "Sashiko"
= ""
[]
= false
# provider = "github"
# api_token = "your-api-token"
# Webhook authentication (recommended for production).
# When configured, Sashiko authenticates incoming webhook requests using
# this token. Non-localhost requests are permitted without
# --enable-unsafe-all-submit when a secret is set.
#
# For GitLab 19.0+ signing token (recommended):
# webhook_secret = "whsec_YOUR_BASE64_TOKEN"
# For GitHub or plain secret token:
# webhook_secret = "YOUR_SECRET"
# Generate a strong secret: openssl rand -hex 32
# See docs/WEBHOOK_SECURITY.md for full setup guide.
# webhook_secret = ""
[]
# Regex map: email address pattern -> subsystem name
# mapping = [
# { pattern = ".*linux-kernel@vger.kernel.org.*", name = "LKML" },
# { pattern = ".*netdev@vger.kernel.org.*", name = "netdev" },
# ]
[]
= "sashiko.db"
= ""
[]
= ["linux-kernel"]
[]
= "nntp.lore.kernel.org"
= 119
# [smtp]
# **WARNING: BE VERY CAREFUL WHEN ENABLING EMAIL SENDING.**
# Sashiko can easily generate and send a large volume of automated emails to
# public mailing lists, potentially causing disruption or being marked as spam.
# Ensure your filters and dry_run settings are correctly configured before use.
# server = "smtp.example.com"
# port = 587
# username = "user@example.com"
# password = "your_password"
# sender_address = "sashiko@example.com"
# dry_run = true
[]
= "gemini"
= "gemini-3.1-pro-preview"
= 900000
= 100
= 1.0
# To use Claude API directly:
# provider = "claude"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 50
# To use Claude Code CLI (fixed-cost subscription, no API key needed):
# provider = "claude-cli"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 150
# To use GitHub Copilot CLI (subscription auth, no API key needed):
# provider = "copilot-cli"
# model = "claude-sonnet-4.5"
# max_input_tokens = 40000
# max_interactions = 150
# To use Claude via Google Cloud Vertex AI (requires --features vertex):
# provider = "vertex"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 50
# To use Kiro CLI (fixed-cost subscription, no API key needed):
# provider = "kiro-cli"
# model = "claude-opus-4.6"
# max_input_tokens = 40000
# max_interactions = 50
# To use Devin CLI (fixed-cost subscription, no API key needed):
# provider = "devin-cli"
# model = "opus"
# max_input_tokens = 200000
# max_interactions = 150
# To use OpenRouter, also export OPENAI_API_KEY with the API key in the environment
# provider = "openai-compatible"
# model = "openrouter/free"
# max_input_tokens = 128000
# max_interactions = 100
[]
= true
# thinking = "enabled" # Enable extended thinking (or "adaptive" for Sonnet 4.6+)
# effort = "high" # Thinking effort: "low", "medium", "high"
# [ai.claude_cli]
# effort = "high" # Thinking effort: "low", "medium", "high", "xhigh", "max"
# [ai.openai_compat] # Enable openrouter url
# base_url = "https://openrouter.ai/api/v1"
# [ai.vertex]
# project_id = "my-gcp-project" # Or set ANTHROPIC_VERTEX_PROJECT_ID env var
# region = "us-east5" # Or set CLOUD_ML_REGION env var (default: "us-east5")
# prompt_caching = true
# [ai.kiro_cli]
# binary = "kiro-cli"
# context_window_size = 200000
[]
= "::"
= 8080
[]
= "third_party/linux"
# Track custom remotes and attempt to apply patches on their branches
# [[git.custom_remotes]]
# name = "remote-name"
# url = "git://my-custom.com/remote"
# check_all_branches = true
# only_branches = []
[]
= 16
= "review_trees"
= 7200
= 3
= ["MAINTAINERS", ".mailmap", ".gitignore", "LICENSES/"]