Skip to content

Commit 60f43d9

Browse files
authored
🔨 chore: unify Claude Code workflows to use claude-code-action@main (lobehub#9712)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent b8136ac commit 60f43d9

2 files changed

Lines changed: 125 additions & 132 deletions

File tree

.github/workflows/claude-dedupe-issues.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ jobs:
2525
fetch-depth: 1
2626

2727
- name: Run Claude Code slash command
28-
uses: anthropics/claude-code-base-action@beta
28+
uses: anthropics/claude-code-action@main
2929
with:
30-
prompt: '/dedupe ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}'
30+
github_token: ${{ secrets.GITHUB_TOKEN }}
31+
allowed_non_write_users: "*"
3132
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
32-
claude_env: |
33-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33+
prompt: '/dedupe ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}'

.github/workflows/claude-issue-triage.yml

Lines changed: 121 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -23,173 +23,166 @@ jobs:
2323
mkdir -p /tmp/claude-prompts
2424
cp .claude/prompts/team-assignment.md /tmp/claude-prompts/
2525
26-
- name: Create triage prompt
27-
run: |
28-
mkdir -p /tmp/claude-prompts
29-
cat > /tmp/claude-prompts/triage-prompt.md << 'EOF'
30-
You're an issue triage assistant for GitHub issues. Your task is to analyze issues, apply appropriate labels, and mention the responsible team member.
31-
32-
REPOSITORY: ${{ github.repository }}
33-
ISSUE_NUMBER: ${{ github.event.issue.number }}
26+
- name: Run Claude Code for Issue Triage
27+
uses: anthropics/claude-code-action@main
28+
with:
29+
github_token: ${{ secrets.GH_TOKEN }}
30+
allowed_non_write_users: "*"
31+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
32+
claude_args: "--allowed-tools Bash(gh *),Read"
33+
prompt: |
34+
You're an issue triage assistant for GitHub issues. Your task is to analyze issues, apply appropriate labels, and mention the responsible team member.
3435
35-
## WORKFLOW
36+
REPOSITORY: ${{ github.repository }}
37+
ISSUE_NUMBER: ${{ github.event.issue.number }}
3638
37-
### Step 1: Get Available Labels
38-
```bash
39-
gh label list --json name,description --limit 300
40-
```
39+
## WORKFLOW
4140
42-
### Step 2: Get Issue Details
43-
```bash
44-
gh issue view ${{ github.event.issue.number }} --json number,title,body,labels,comments
45-
```
41+
### Step 1: Get Available Labels
42+
```bash
43+
gh label list --json name,description --limit 300
44+
```
4645
47-
### Step 3: Read Team Assignment Guide
48-
```bash
49-
cat /tmp/claude-prompts/team-assignment.md
50-
```
46+
### Step 2: Get Issue Details
47+
```bash
48+
gh issue view ${{ github.event.issue.number }} --json number,title,body,labels,comments
49+
```
5150
52-
### Step 4: Analyze and Select Labels
51+
### Step 3: Read Team Assignment Guide
52+
```bash
53+
cat /tmp/claude-prompts/team-assignment.md
54+
```
5355
54-
Extract information from the issue template:
55-
- 📦 Platform field → platform:web/desktop/mobile
56-
- 💻 Operating System → os:windows/macos/linux/ios
57-
- 🌐 Browser → device:pc/mobile
58-
- 📦 Deployment mode → deployment:server/client/pglite
59-
- Platform (hosting) → hosting:cloud/self-host/vercel/zeabur/railway
56+
### Step 4: Analyze and Select Labels
6057
61-
**LABEL CATEGORIES:**
58+
Extract information from the issue template:
59+
- 📦 Platform field → platform:web/desktop/mobile
60+
- 💻 Operating System → os:windows/macos/linux/ios
61+
- 🌐 Browser → device:pc/mobile
62+
- 📦 Deployment mode → deployment:server/client/pglite
63+
- Platform (hosting) → hosting:cloud/self-host/vercel/zeabur/railway
6264
63-
**a) Issue Type (REQUIRED - select ONE):**
64-
- 🐛 Bug, 🌠 Feature Request, 💄 Design, 📝 Documentation, ⚡️ Performance
65+
**LABEL CATEGORIES:**
6566
66-
**b) Priority (select ONE if applicable):**
67-
- priority:high - Critical, maintainer mentions "urgent"/"serious"/"critical"
68-
- priority:medium - Important, affects multiple users
69-
- priority:low - Nice to have, minor issues
67+
**a) Issue Type (REQUIRED - select ONE):**
68+
- 🐛 Bug, 🌠 Feature Request, 💄 Design, 📝 Documentation, ⚡️ Performance
7069
71-
**c) Platform (select ALL applicable):**
72-
- platform:web, platform:desktop, platform:mobile
70+
**b) Priority (select ONE if applicable):**
71+
- priority:high - Critical, maintainer mentions "urgent"/"serious"/"critical"
72+
- priority:medium - Important, affects multiple users
73+
- priority:low - Nice to have, minor issues
7374
74-
**d) Device (for platform:web, select ONE):**
75-
- device:pc, device:mobile
75+
**c) Platform (select ALL applicable):**
76+
- platform:web, platform:desktop, platform:mobile
7677
77-
**e) Operating System (select ALL applicable):**
78-
- os:windows, os:macos, os:linux, os:ios
78+
**d) Device (for platform:web, select ONE):**
79+
- device:pc, device:mobile
7980
80-
**f) Hosting Platform (select ONE):**
81-
- hosting:cloud, hosting:self-host, hosting:vercel, hosting:zeabur, hosting:railway
81+
**e) Operating System (select ALL applicable):**
82+
- os:windows, os:macos, os:linux, os:ios
8283
83-
**g) Deployment Mode (select ONE if mentioned):**
84-
- deployment:server, deployment:client, deployment:pglite
84+
**f) Hosting Platform (select ONE):**
85+
- hosting:cloud, hosting:self-host, hosting:vercel, hosting:zeabur, hosting:railway
8586
86-
**h) Model Provider (select ALL applicable):**
87-
- provider:openai, provider:gemini, provider:claude, provider:deepseek
88-
- provider:google, provider:ollama, provider:azure, provider:bedrock, provider:vertex
87+
**g) Deployment Mode (select ONE if mentioned):**
88+
- deployment:server, deployment:client, deployment:pglite
8989
90-
**i) Feature/Component (select ALL applicable):**
91-
- feature:settings, feature:agent, feature:topic, feature:marketplace
92-
- feature:streaming, feature:tool, feature:sync, feature:export
93-
- feature:search, feature:auth, feature:files, feature:knowledge-base
94-
- feature:tts, feature:vision, feature:mcp, feature:editor, feature:thread
95-
- feature:image, feature:api, feature:dalle, feature:plugin, feature:markdown
96-
- feature:group-chat, feature:memory, feature:team-workspace
90+
**h) Model Provider (select ALL applicable):**
91+
- provider:openai, provider:gemini, provider:claude, provider:deepseek
92+
- provider:google, provider:ollama, provider:azure, provider:bedrock, provider:vertex
9793
98-
**j) Workflow/Status:**
99-
- Duplicate - Only if duplicate of OPEN issue
100-
- needs-reproduction, good-first-issue, 🤔 Need Reproduce
94+
**i) Feature/Component (select ALL applicable):**
95+
- feature:settings, feature:agent, feature:topic, feature:marketplace
96+
- feature:streaming, feature:tool, feature:sync, feature:export
97+
- feature:search, feature:auth, feature:files, feature:knowledge-base
98+
- feature:tts, feature:vision, feature:mcp, feature:editor, feature:thread
99+
- feature:image, feature:api, feature:dalle, feature:plugin, feature:markdown
100+
- feature:group-chat, feature:memory, feature:team-workspace
101101
102-
**IMPORTANT RULES:**
103-
- Read issue template fields carefully
104-
- Check maintainer comments for priority/status
105-
- Use ALL applicable labels from different categories
106-
- Always use prefixes (feature:, provider:, os:, platform:, etc.)
102+
**j) Workflow/Status:**
103+
- Duplicate - Only if duplicate of OPEN issue
104+
- needs-reproduction, good-first-issue, 🤔 Need Reproduce
107105
108-
### Step 5: Apply Labels
106+
**IMPORTANT RULES:**
107+
- Read issue template fields carefully
108+
- Check maintainer comments for priority/status
109+
- Use ALL applicable labels from different categories
110+
- Always use prefixes (feature:, provider:, os:, platform:, etc.)
109111
110-
Add labels:
111-
```bash
112-
gh issue edit ${{ github.event.issue.number }} --add-label "label1,label2,label3"
113-
```
112+
### Step 5: Apply Labels
114113
115-
Remove "unconfirm" if adding other labels:
116-
```bash
117-
gh issue edit ${{ github.event.issue.number }} --remove-label "unconfirm"
118-
```
114+
Add labels:
115+
```bash
116+
gh issue edit ${{ github.event.issue.number }} --add-label "label1,label2,label3"
117+
```
119118
120-
**Execute the commands now.**
119+
Remove "unconfirm" if adding other labels:
120+
```bash
121+
gh issue edit ${{ github.event.issue.number }} --remove-label "unconfirm"
122+
```
121123
122-
### Step 6: Determine Team Member
124+
**Execute the commands now.**
123125
124-
Based on the team assignment guide and applied labels, determine who to mention.
126+
### Step 6: Determine Team Member
125127
126-
**Priority Order:**
127-
1. Specific feature owner (feature:knowledge-base → @RiverTwilight)
128-
2. Platform owner (platform:mobile → @sudongyuer)
129-
3. Provider owner (provider:* → @sxjeru)
130-
4. Component owner (💄 Design → @canisminor1990)
131-
5. Infrastructure owner (deployment:* → @nekomeowww)
132-
6. General maintainer (@ONLY-yours)
133-
7. Last resort (@arvinxx)
128+
Based on the team assignment guide and applied labels, determine who to mention.
134129
135-
**Special Cases:**
136-
- Multiple owners: Mention primary + secondary
137-
- priority:high: Mention owner + @arvinxx
130+
**Priority Order:**
131+
1. Specific feature owner (feature:knowledge-base → @RiverTwilight)
132+
2. Platform owner (platform:mobile → @sudongyuer)
133+
3. Provider owner (provider:* → @sxjeru)
134+
4. Component owner (💄 Design → @canisminor1990)
135+
5. Infrastructure owner (deployment:* → @nekomeowww)
136+
6. General maintainer (@ONLY-yours)
137+
7. Last resort (@arvinxx)
138138
139-
### Step 7: Post Comment
139+
**Special Cases:**
140+
- Multiple owners: Mention primary + secondary
141+
- priority:high: Mention owner + @arvinxx
140142
141-
Format the comment (1-2 sentences):
143+
### Step 7: Post Comment
142144
143-
**Single owner:**
144-
```
145-
@username - This is a [feature/component] issue. Please take a look.
146-
```
145+
Format the comment (1-2 sentences):
147146
148-
**Multiple owners:**
149-
```
150-
@user1 @user2 - This involves [features]. Please coordinate.
151-
```
147+
**Single owner:**
148+
```
149+
@username - This is a [feature/component] issue. Please take a look.
150+
```
152151
153-
**High priority:**
154-
```
155-
@owner @arvinxx - High priority [feature] issue.
156-
```
152+
**Multiple owners:**
153+
```
154+
@user1 @user2 - This involves [features]. Please coordinate.
155+
```
157156
158-
Post the comment:
159-
```bash
160-
gh issue comment ${{ github.event.issue.number }} --body "@username - [message]"
161-
```
157+
**High priority:**
158+
```
159+
@owner @arvinxx - High priority [feature] issue.
160+
```
162161
163-
**Execute the command now.**
162+
Post the comment:
163+
```bash
164+
gh issue comment ${{ github.event.issue.number }} --body "@username - [message]"
165+
```
164166
165-
### Step 8: Output Summary
167+
**Execute the command now.**
166168
167-
Log your reasoning (2-4 sentences):
168-
- Labels applied and why
169-
- Team member(s) mentioned and reason
170-
- Key factors from issue template/comments
169+
### Step 8: Output Summary
171170
172-
## GUIDELINES
171+
Log your reasoning (2-4 sentences):
172+
- Labels applied and why
173+
- Team member(s) mentioned and reason
174+
- Key factors from issue template/comments
173175
174-
- Be thorough in analysis
175-
- Use only labels from the provided list
176-
- Extract info from issue template fields
177-
- ALWAYS post a mention comment (unless no clear owner)
178-
- Keep comments professional and brief
179-
- Output reasoning to logs
176+
## GUIDELINES
180177
181-
**Start the triage process now.**
182-
EOF
178+
- Be thorough in analysis
179+
- Use only labels from the provided list
180+
- Extract info from issue template fields
181+
- ALWAYS post a mention comment (unless no clear owner)
182+
- Keep comments professional and brief
183+
- Output reasoning to logs
183184
184-
- name: Run Claude Code for Issue Triage
185-
uses: anthropics/claude-code-base-action@beta
186-
with:
187-
prompt_file: /tmp/claude-prompts/triage-prompt.md
188-
allowed_tools: "Bash(gh *),Read"
189-
timeout_minutes: "5"
190-
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
191-
claude_env: |
192-
GH_TOKEN: ${{ secrets.GH_TOKEN }}
185+
**Start the triage process now.**
193186
194187
- name: Remove trigger label
195188
if: github.event.action == 'labeled' && github.event.label.name == 'trigger:triage'

0 commit comments

Comments
 (0)