carson 2.20.0 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/MANUAL.md +1 -0
- data/RELEASE.md +7 -0
- data/VERSION +1 -1
- data/lib/carson/config.rb +1 -1
- data/lib/carson/runtime/review/sweep_support.rb +3 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9dee8662b3f59ea5f375d5c0dac6c774dc7b7202ca88e3457344fef3ae0cdce9
|
|
4
|
+
data.tar.gz: bb1c5b9605b13f3ca64d3ea31f915a38980532c8a2f21b215979f5475562b2bb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5de52e709279bcd53d54244cd04cb01041c4f81c84d857dec19b6970925ca7bf91321494dd6dd21ce9fb8deb09e8a2ed7c41a6d5c3b95b6aa9095e1628c2adb
|
|
7
|
+
data.tar.gz: dc945ebe5c2a391dbacd4e530637430a4f3ee65eb07a8de23d162af13cc1da9d376ad056f6f1ca081c1ae5c41bce076ec8e36348e0afdb4a066eee3fdf83c01c
|
data/MANUAL.md
CHANGED
|
@@ -345,6 +345,7 @@ Common environment overrides:
|
|
|
345
345
|
| `CARSON_REVIEW_DISPOSITION_PREFIX` | Required prefix for disposition comments. |
|
|
346
346
|
| `CARSON_REVIEW_SWEEP_WINDOW_DAYS` | Lookback window for review sweep. |
|
|
347
347
|
| `CARSON_REVIEW_SWEEP_STATES` | PR states to include in sweep. |
|
|
348
|
+
| `CARSON_REVIEW_BOT_USERNAMES` | Comma-separated bot usernames to ignore in review gate and sweep. |
|
|
348
349
|
| `CARSON_WORKFLOW_STYLE` | Workflow style override (`branch` or `trunk`). |
|
|
349
350
|
| `CARSON_RUBY_INDENTATION` | Ruby indentation policy (`tabs`, `spaces`, or `either`). |
|
|
350
351
|
|
data/RELEASE.md
CHANGED
|
@@ -5,6 +5,13 @@ Release-note scope rule:
|
|
|
5
5
|
- `RELEASE.md` records only version deltas, breaking changes, and migration actions.
|
|
6
6
|
- Operational usage guides live in `MANUAL.md` and `API.md`.
|
|
7
7
|
|
|
8
|
+
## 2.21.0 — Review Sweep Skips Bot Authors
|
|
9
|
+
|
|
10
|
+
### What changed
|
|
11
|
+
|
|
12
|
+
- **Review sweep now skips bot-authored findings.** The sweep uses the same `bot_username?` guard as the review gate — comments, reviews, and review thread comments from configured bot usernames are excluded from sweep findings.
|
|
13
|
+
- **Default bot usernames populated.** `review.bot_usernames` now ships with `gemini-code-assist[bot]`, `github-actions[bot]`, and `dependabot[bot]`. Previously empty, requiring manual configuration. Override via `CARSON_REVIEW_BOT_USERNAMES` or `~/.carson/config.json`.
|
|
14
|
+
|
|
8
15
|
## 2.20.0 — Prune Orphan Branches
|
|
9
16
|
|
|
10
17
|
### What changed
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.21.0
|
data/lib/carson/config.rb
CHANGED
|
@@ -27,6 +27,7 @@ module Carson
|
|
|
27
27
|
|
|
28
28
|
Array( details.fetch( :comments ) ).each do |comment|
|
|
29
29
|
next if comment.fetch( :author ) == pr_author
|
|
30
|
+
next if bot_username?( author: comment.fetch( :author ) )
|
|
30
31
|
hits = matched_risk_keywords( text: comment.fetch( :body ) )
|
|
31
32
|
next if hits.empty?
|
|
32
33
|
event_time = parse_time_or_nil( text: comment.fetch( :created_at ) )
|
|
@@ -43,6 +44,7 @@ module Carson
|
|
|
43
44
|
|
|
44
45
|
Array( details.fetch( :reviews ) ).each do |review|
|
|
45
46
|
next if review.fetch( :author ) == pr_author
|
|
47
|
+
next if bot_username?( author: review.fetch( :author ) )
|
|
46
48
|
hits = matched_risk_keywords( text: review.fetch( :body ) )
|
|
47
49
|
next if hits.empty?
|
|
48
50
|
event_time = parse_time_or_nil( text: review.fetch( :created_at ) )
|
|
@@ -59,6 +61,7 @@ module Carson
|
|
|
59
61
|
|
|
60
62
|
Array( details.fetch( :review_threads ) ).flat_map { |thread| thread.fetch( :comments ) }.each do |comment|
|
|
61
63
|
next if comment.fetch( :author ) == pr_author
|
|
64
|
+
next if bot_username?( author: comment.fetch( :author ) )
|
|
62
65
|
hits = matched_risk_keywords( text: comment.fetch( :body ) )
|
|
63
66
|
next if hits.empty?
|
|
64
67
|
event_time = parse_time_or_nil( text: comment.fetch( :created_at ) )
|