Skip to content

Commit fa1d262

Browse files
authored
Merge pull request #7 from ncaq/simplify-permissions
refactor: permissionsをClaude GitHub App前提の最小限に簡素化
2 parents b9cec94 + fdd962f commit fa1d262

3 files changed

Lines changed: 23 additions & 59 deletions

File tree

.github/workflows/kyosei.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,10 @@ on:
88

99
# Reusable workflows are constrained by the caller's permissions,
1010
# so they must be explicitly declared here.
11+
# Claude GitHub App manages its own token, so only minimal permissions are needed.
1112
permissions:
12-
checks: read
1313
contents: read
14-
discussions: read
1514
id-token: write
16-
issues: read
17-
pages: read
18-
pull-requests: write
19-
repository-projects: read
20-
security-events: read
2115

2216
jobs:
2317
kyosei:

.github/workflows/review.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,17 +93,18 @@ on:
9393
anthropic_api_key:
9494
description: Anthropic API key (alternative to OAuth token)
9595
required: false
96+
github_token:
97+
description: >-
98+
GitHub token for API access.
99+
If omitted, claude-code-action uses Claude GitHub App token (claude[bot]).
100+
required: false
96101

102+
# Claude GitHub App manages its own token, so only minimal permissions are needed.
103+
# If the caller passes github_token explicitly, additional permissions
104+
# (e.g. pull-requests: write) must be granted by the caller.
97105
permissions:
98-
checks: read # Reference CI results
99-
contents: read # Read repository contents for review
100-
discussions: read # Reference discussions
101-
id-token: write # Required for Claude Code Action
102-
issues: read # Reference issues
103-
pages: read # Reference existing documentation
104-
pull-requests: write # Post review comments on PRs
105-
repository-projects: read # Reference project schedules
106-
security-events: read # Reference vulnerability reports
106+
contents: read # Read repository contents for checkout
107+
id-token: write # Required for Claude Code Action OIDC authentication
107108

108109
jobs:
109110
kyosei:
@@ -118,6 +119,7 @@ jobs:
118119
with:
119120
claude_code_oauth_token: ${{ secrets.claude_code_oauth_token }}
120121
anthropic_api_key: ${{ secrets.anthropic_api_key }}
122+
github_token: ${{ secrets.github_token }}
121123
model: ${{ inputs.model }}
122124
allowed_bots: ${{ inputs.allowed_bots }}
123125
allowed_tools: ${{ inputs.allowed_tools }}

README.md

Lines changed: 11 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,8 @@ on:
6565
# Reusable workflows are constrained by the caller's permissions,
6666
# so they must be explicitly declared here.
6767
permissions:
68-
checks: read # Reference CI results
69-
contents: read # Read repository contents for review
70-
discussions: read # Reference discussions
71-
id-token: write # Required for Claude Code Action
72-
issues: read # Reference issues
73-
pages: read # Reference existing documentation
74-
pull-requests: write # Post review comments on PRs
75-
repository-projects: read # Reference project schedules
76-
security-events: read # Reference vulnerability reports
68+
contents: read # Read repository contents for checkout
69+
id-token: write # Required for Claude Code Action OIDC authentication
7770

7871
jobs:
7972
kyosei:
@@ -83,8 +76,7 @@ jobs:
8376
```
8477
8578
Most Composite Action inputs can be passed via `with:`.
86-
The Reusable Workflow additionally accepts `fetch-depth` and `timeout-minutes`,
87-
but does not expose `github_token` (it manages checkout and tokens internally).
79+
The Reusable Workflow additionally accepts `fetch-depth` and `timeout-minutes`.
8880
See the Composite Action section below for the full input list.
8981

9082
## Composite Action
@@ -101,15 +93,8 @@ on:
10193
types: [opened, synchronize]
10294
10395
permissions:
104-
checks: read # Reference CI results
105-
contents: read # Read repository contents for review
106-
discussions: read # Reference discussions
107-
id-token: write # Required for Claude Code Action
108-
issues: read # Reference issues
109-
pages: read # Reference existing documentation
110-
pull-requests: write # Post review comments on PRs
111-
repository-projects: read # Reference project schedules
112-
security-events: read # Reference vulnerability reports
96+
contents: read # Read repository contents for checkout
97+
id-token: write # Required for Claude Code Action OIDC authentication
11398
11499
jobs:
115100
review:
@@ -182,34 +167,17 @@ To add tools without replacing the defaults, use `additional_allowed_tools`:
182167

183168
## Permissions
184169

185-
The following permissions are required:
170+
When `github_token` is omitted (default), Claude GitHub App manages its own token,
171+
so the workflow only needs minimal permissions:
186172

187173
```yaml
188174
permissions:
189-
checks: read # Reference CI results
190-
contents: read # Read repository contents for review
191-
discussions: read # Reference discussions
192-
id-token: write # Required for Claude Code Action
193-
issues: read # Reference issues
194-
pages: read # Reference existing documentation
195-
pull-requests: write # Post review comments on PRs
196-
repository-projects: read # Reference project schedules
197-
security-events: read # Reference vulnerability reports
175+
contents: read # Read repository contents for checkout
176+
id-token: write # Required for Claude Code Action OIDC authentication
198177
```
199178

200-
The minimum permissions required to run are:
201-
202-
```yaml
203-
permissions:
204-
contents: read
205-
id-token: write
206-
pull-requests: write
207-
```
208-
209-
The other permissions allow the review agent to reference
210-
additional context (CI results, issues, discussions, etc.)
211-
for better review quality.
212-
179+
If you explicitly pass `github_token`, the token needs additional permissions
180+
such as `pull-requests: write` for posting review comments.
213181
If the token lacks `pull-requests: write`
214182
(e.g. due to workflow file changes in the PR or fork PRs),
215183
the action will skip gracefully with a warning instead of failing.

0 commit comments

Comments
 (0)