Skip to content

Commit 72652d8

Browse files
committed
🔀 merge main
2 parents 047e22c + c233e50 commit 72652d8

File tree

6 files changed

+681
-514
lines changed

6 files changed

+681
-514
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Claude Code Review
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize]
6+
# Optional: Only run on specific file changes
7+
# paths:
8+
# - "src/**/*.ts"
9+
# - "src/**/*.tsx"
10+
# - "src/**/*.js"
11+
# - "src/**/*.jsx"
12+
13+
jobs:
14+
claude-review:
15+
# Optional: Filter by PR author
16+
# if: |
17+
# github.event.pull_request.user.login == 'external-contributor' ||
18+
# github.event.pull_request.user.login == 'new-developer' ||
19+
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20+
21+
runs-on: ubuntu-latest
22+
permissions:
23+
contents: read
24+
pull-requests: read
25+
issues: read
26+
id-token: write
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 1
33+
34+
- name: Run Claude Code Review
35+
id: claude-review
36+
uses: anthropics/claude-code-action@beta
37+
with:
38+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39+
40+
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
41+
# model: "claude-opus-4-20250514"
42+
43+
# Direct prompt for automated review (no @claude mention needed)
44+
direct_prompt: |
45+
Please review this pull request and provide feedback on:
46+
- Code quality and best practices
47+
- Potential bugs or issues
48+
- Performance considerations
49+
- Security concerns
50+
- Test coverage
51+
52+
Be constructive and helpful in your feedback.
53+
54+
# Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR
55+
# use_sticky_comment: true
56+
57+
# Optional: Customize review based on file types
58+
# direct_prompt: |
59+
# Review this PR focusing on:
60+
# - For TypeScript files: Type safety and proper interface usage
61+
# - For API endpoints: Security, input validation, and error handling
62+
# - For React components: Performance, accessibility, and best practices
63+
# - For tests: Coverage, edge cases, and test quality
64+
65+
# Optional: Different prompts for different authors
66+
# direct_prompt: |
67+
# ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
68+
# 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
69+
# 'Please provide a thorough code review focusing on our coding standards and best practices.' }}
70+
71+
# Optional: Add specific tools for running tests or linting
72+
# allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"
73+
74+
# Optional: Skip review for certain conditions
75+
# if: |
76+
# !contains(github.event.pull_request.title, '[skip-review]') &&
77+
# !contains(github.event.pull_request.title, '[WIP]')
78+

.github/workflows/claude.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Claude Code
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_review_comment:
7+
types: [created]
8+
issues:
9+
types: [opened, assigned]
10+
pull_request_review:
11+
types: [submitted]
12+
13+
jobs:
14+
claude:
15+
if: |
16+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
pull-requests: read
24+
issues: read
25+
id-token: write
26+
actions: read # Required for Claude to read CI results on PRs
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 1
32+
33+
- name: Run Claude Code
34+
id: claude
35+
uses: anthropics/claude-code-action@beta
36+
with:
37+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38+
39+
# This is an optional setting that allows Claude to read CI results on PRs
40+
additional_permissions: |
41+
actions: read
42+
43+
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
44+
# model: "claude-opus-4-20250514"
45+
46+
# Optional: Customize the trigger phrase (default: @claude)
47+
# trigger_phrase: "/claude"
48+
49+
# Optional: Trigger when specific user is assigned to an issue
50+
# assignee_trigger: "claude-bot"
51+
52+
# Optional: Allow Claude to run specific commands
53+
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
54+
55+
# Optional: Add custom instructions for Claude to customize its behavior for your project
56+
# custom_instructions: |
57+
# Follow our coding standards
58+
# Ensure all new code has tests
59+
# Use TypeScript for new files
60+
61+
# Optional: Custom environment variables for Claude
62+
# claude_env: |
63+
# NODE_ENV: test
64+

README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,13 @@ Pake's development can not be without these Hackers. They contributed a lot of c
315315
<sub><b>Matt Bajorek</b></sub>
316316
</a>
317317
</td>
318+
<td align="center">
319+
<a href="https://github.com/vaddisrinivas">
320+
<img src="https://avatars.githubusercontent.com/u/38348871?v=4" width="90;" alt="vaddisrinivas"/>
321+
<br />
322+
<sub><b>Srinivas Vaddi</b></sub>
323+
</a>
324+
</td>
318325
<td align="center">
319326
<a href="https://github.com/QingZ11">
320327
<img src="https://avatars.githubusercontent.com/u/38887077?v=4" width="90;" alt="QingZ11"/>
@@ -349,15 +356,15 @@ Pake's development can not be without these Hackers. They contributed a lot of c
349356
<br />
350357
<sub><b>Kieran</b></sub>
351358
</a>
352-
</td>
359+
</td></tr>
360+
<tr>
353361
<td align="center">
354362
<a href="https://github.com/exposir">
355363
<img src="https://avatars.githubusercontent.com/u/33340988?v=4" width="90;" alt="exposir"/>
356364
<br />
357365
<sub><b>孟世博</b></sub>
358366
</a>
359-
</td></tr>
360-
<tr>
367+
</td>
361368
<td align="center">
362369
<a href="https://github.com/2nthony">
363370
<img src="https://avatars.githubusercontent.com/u/19513289?v=4" width="90;" alt="2nthony"/>
@@ -399,15 +406,15 @@ Pake's development can not be without these Hackers. They contributed a lot of c
399406
<br />
400407
<sub><b>Dengju Deng</b></sub>
401408
</a>
402-
</td>
409+
</td></tr>
410+
<tr>
403411
<td align="center">
404412
<a href="https://github.com/Fechin">
405413
<img src="https://avatars.githubusercontent.com/u/2541482?v=4" width="90;" alt="Fechin"/>
406414
<br />
407415
<sub><b>Fechin</b></sub>
408416
</a>
409-
</td></tr>
410-
<tr>
417+
</td>
411418
<td align="center">
412419
<a href="https://github.com/ImgBotApp">
413420
<img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="90;" alt="ImgBotApp"/>
@@ -449,15 +456,15 @@ Pake's development can not be without these Hackers. They contributed a lot of c
449456
<br />
450457
<sub><b>Null</b></sub>
451458
</a>
452-
</td>
459+
</td></tr>
460+
<tr>
453461
<td align="center">
454462
<a href="https://github.com/geekvest">
455463
<img src="https://avatars.githubusercontent.com/u/126322776?v=4" width="90;" alt="geekvest"/>
456464
<br />
457465
<sub><b>Null</b></sub>
458466
</a>
459-
</td></tr>
460-
<tr>
467+
</td>
461468
<td align="center">
462469
<a href="https://github.com/houhoz">
463470
<img src="https://avatars.githubusercontent.com/u/19684376?v=4" width="90;" alt="houhoz"/>

bin/utils/url.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as psl from 'psl';
2-
import isUrl from 'is-url';
32

43
// Extracts the domain from a given URL.
54
export function getDomain(inputUrl: string): string | null {
@@ -32,10 +31,10 @@ export function appendProtocol(inputUrl: string): string {
3231
// Normalizes the URL by ensuring it has a protocol and is valid.
3332
export function normalizeUrl(urlToNormalize: string): string {
3433
const urlWithProtocol = appendProtocol(urlToNormalize);
35-
36-
if (isUrl(urlWithProtocol)) {
34+
try {
35+
new URL(urlWithProtocol);
3736
return urlWithProtocol;
38-
} else {
39-
throw new Error(`Your url "${urlWithProtocol}" is invalid`);
37+
} catch (err) {
38+
throw new Error(`Your url "${urlWithProtocol}" is invalid: ${(err as Error).message}`);
4039
}
4140
}

package.json

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,41 +48,38 @@
4848
"exports": "./dist/pake.js",
4949
"license": "MIT",
5050
"dependencies": {
51-
"@tauri-apps/api": "^2.2.0",
52-
"@tauri-apps/cli": "^2.2.5",
53-
"axios": "^1.7.9",
54-
"chalk": "^5.4.1",
55-
"commander": "^13.1.0",
56-
"execa": "^9.5.2",
57-
"file-type": "^20.0.0",
58-
"fs-extra": "^11.3.0",
59-
"is-url": "^1.2.4",
51+
"@tauri-apps/api": "^2.7.0",
52+
"@tauri-apps/cli": "^2.7.1",
53+
"axios": "^1.11.0",
54+
"chalk": "^5.5.0",
55+
"commander": "^11.1.0",
56+
"file-type": "^18.7.0",
57+
"fs-extra": "^11.3.1",
6058
"loglevel": "^1.9.2",
61-
"ora": "^8.1.1",
59+
"ora": "^8.2.0",
6260
"prompts": "^2.4.2",
6361
"psl": "^1.15.0",
6462
"tmp-promise": "^3.0.3",
6563
"update-notifier": "^7.3.1"
6664
},
6765
"devDependencies": {
6866
"@rollup/plugin-alias": "^5.1.1",
69-
"@rollup/plugin-commonjs": "^28.0.2",
67+
"@rollup/plugin-commonjs": "^28.0.6",
7068
"@rollup/plugin-json": "^6.1.0",
7169
"@rollup/plugin-replace": "^6.0.2",
7270
"@rollup/plugin-terser": "^0.4.4",
7371
"@types/fs-extra": "^11.0.4",
74-
"@types/is-url": "^1.2.32",
75-
"@types/node": "^22.10.8",
72+
"@types/node": "^20.19.10",
7673
"@types/page-icon": "^0.3.6",
7774
"@types/prompts": "^2.4.9",
78-
"@types/psl": "^1.1.3",
75+
"@types/psl": "^1.11.0",
7976
"@types/tmp": "^0.2.6",
8077
"@types/update-notifier": "^6.0.8",
8178
"app-root-path": "^3.1.0",
8279
"cross-env": "^7.0.3",
83-
"rollup": "^4.31.0",
80+
"rollup": "^4.46.2",
8481
"rollup-plugin-typescript2": "^0.36.0",
8582
"tslib": "^2.8.1",
86-
"typescript": "^5.7.3"
83+
"typescript": "^5.9.2"
8784
}
8885
}

0 commit comments

Comments
 (0)