browser_review_gate 0.1.1 → 0.2.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/CHANGELOG.md +27 -0
- data/README.md +28 -9
- data/lib/browser_review_gate/assessment.rb +68 -16
- data/lib/browser_review_gate/assessor.rb +19 -19
- data/lib/browser_review_gate/cli.rb +39 -12
- data/lib/browser_review_gate/config.rb +2 -0
- data/lib/browser_review_gate/gate.rb +6 -6
- data/lib/browser_review_gate/github.rb +24 -0
- data/lib/browser_review_gate/hook.rb +10 -60
- data/lib/browser_review_gate/installer.rb +22 -16
- data/lib/browser_review_gate/model_api.rb +108 -0
- data/lib/browser_review_gate/model_client.rb +16 -0
- data/lib/browser_review_gate/prompts.rb +15 -7
- data/lib/browser_review_gate/publisher.rb +9 -3
- data/lib/browser_review_gate/report.rb +42 -8
- data/lib/browser_review_gate/stats.rb +34 -0
- data/lib/browser_review_gate/status.rb +9 -5
- data/lib/browser_review_gate/templates/config.yml.erb +6 -0
- data/lib/browser_review_gate/templates/playbook.md.erb +8 -5
- data/lib/browser_review_gate/templates/workflow.yml.erb +8 -4
- data/lib/browser_review_gate/version.rb +1 -1
- data/lib/browser_review_gate.rb +2 -0
- metadata +4 -2
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# pull_request_target runs this file from the base branch. PR code is never checked out or
|
|
6
6
|
# executed; the diff is read through the API as data.
|
|
7
7
|
#
|
|
8
|
-
# Setup:
|
|
8
|
+
# Setup: one secret - CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY, OPENAI_API_KEY or GEMINI_API_KEY. Settings: .github/browser-review-gate.yml
|
|
9
9
|
# A PR opened before this workflow existed is assessed on its next event; dispatch with pr_number
|
|
10
10
|
# to assess it now.
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ name: Browser review gate
|
|
|
13
13
|
|
|
14
14
|
on:
|
|
15
15
|
pull_request_target:
|
|
16
|
-
types: [opened, reopened, synchronize, review_requested, labeled]
|
|
16
|
+
types: [opened, reopened, synchronize, ready_for_review, review_requested, labeled]
|
|
17
17
|
workflow_dispatch:
|
|
18
18
|
inputs:
|
|
19
19
|
pr_number:
|
|
@@ -33,10 +33,12 @@ concurrency:
|
|
|
33
33
|
|
|
34
34
|
jobs:
|
|
35
35
|
gate:
|
|
36
|
+
# A draft is assessed when it is marked ready, or when someone asks by hand (workflow_dispatch).
|
|
36
37
|
# Of all labels, only the two that open the gate matter: a published run and a waiver.
|
|
37
38
|
if: >-
|
|
38
|
-
github.
|
|
39
|
-
|
|
39
|
+
(github.event_name == 'workflow_dispatch' || !github.event.pull_request.draft) &&
|
|
40
|
+
(github.event.action != 'labeled' ||
|
|
41
|
+
contains(fromJSON('<%= JSON.generate(gate_labels) %>'), github.event.label.name))
|
|
40
42
|
runs-on: ubuntu-latest
|
|
41
43
|
timeout-minutes: 10
|
|
42
44
|
steps:
|
|
@@ -65,5 +67,7 @@ jobs:
|
|
|
65
67
|
GH_REPO: ${{ github.repository }}
|
|
66
68
|
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
67
69
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
70
|
+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
71
|
+
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
|
|
68
72
|
PR_NUMBER: ${{ github.event.pull_request.number || inputs.pr_number }}
|
|
69
73
|
run: browser-review-gate ci "$PR_NUMBER"
|
data/lib/browser_review_gate.rb
CHANGED
|
@@ -29,11 +29,13 @@ module BrowserReviewGate
|
|
|
29
29
|
autoload :Hook, File.join(__dir__, "browser_review_gate/hook")
|
|
30
30
|
autoload :Installer, File.join(__dir__, "browser_review_gate/installer")
|
|
31
31
|
autoload :Markdown, File.join(__dir__, "browser_review_gate/markdown")
|
|
32
|
+
autoload :ModelApi, File.join(__dir__, "browser_review_gate/model_api")
|
|
32
33
|
autoload :ModelClient, File.join(__dir__, "browser_review_gate/model_client")
|
|
33
34
|
autoload :Prompts, File.join(__dir__, "browser_review_gate/prompts")
|
|
34
35
|
autoload :Publisher, File.join(__dir__, "browser_review_gate/publisher")
|
|
35
36
|
autoload :Report, File.join(__dir__, "browser_review_gate/report")
|
|
36
37
|
autoload :SavedReport, File.join(__dir__, "browser_review_gate/saved_report")
|
|
37
38
|
autoload :Shell, File.join(__dir__, "browser_review_gate/shell")
|
|
39
|
+
autoload :Stats, File.join(__dir__, "browser_review_gate/stats")
|
|
38
40
|
autoload :Status, File.join(__dir__, "browser_review_gate/status")
|
|
39
41
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: browser_review_gate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- JetRockets
|
|
@@ -32,12 +32,14 @@ files:
|
|
|
32
32
|
- lib/browser_review_gate/hook.rb
|
|
33
33
|
- lib/browser_review_gate/installer.rb
|
|
34
34
|
- lib/browser_review_gate/markdown.rb
|
|
35
|
+
- lib/browser_review_gate/model_api.rb
|
|
35
36
|
- lib/browser_review_gate/model_client.rb
|
|
36
37
|
- lib/browser_review_gate/prompts.rb
|
|
37
38
|
- lib/browser_review_gate/publisher.rb
|
|
38
39
|
- lib/browser_review_gate/report.rb
|
|
39
40
|
- lib/browser_review_gate/saved_report.rb
|
|
40
41
|
- lib/browser_review_gate/shell.rb
|
|
42
|
+
- lib/browser_review_gate/stats.rb
|
|
41
43
|
- lib/browser_review_gate/status.rb
|
|
42
44
|
- lib/browser_review_gate/templates/agents_block.md.erb
|
|
43
45
|
- lib/browser_review_gate/templates/claude_skill.md.erb
|
|
@@ -66,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
66
68
|
- !ruby/object:Gem::Version
|
|
67
69
|
version: '0'
|
|
68
70
|
requirements: []
|
|
69
|
-
rubygems_version: 4.0.
|
|
71
|
+
rubygems_version: 4.0.1
|
|
70
72
|
specification_version: 4
|
|
71
73
|
summary: Keeps human review of a pull request behind a browser run of its browser-visible
|
|
72
74
|
changes.
|