Skip to content

Commit 64b2f9d

Browse files
committed
Merge branch 'master' into feat/image-upload-2025
* master: auth: code review cleanups auth: remove troubleshooting logs Add Claude Code GitHub Workflow (#30) auth: add better logging auth: appears to have resolved login issue refactor: enhance cache handling and logging in auth and onenote modules # Conflicts: # handler.js # lib/auth.js
2 parents f33f9ae + 70eb39c commit 64b2f9d

File tree

8 files changed

+401
-202
lines changed

8 files changed

+401
-202
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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@v1
37+
with:
38+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39+
prompt: |
40+
Please review this pull request and provide feedback on:
41+
- Code quality and best practices
42+
- Potential bugs or issues
43+
- Performance considerations
44+
- Security concerns
45+
- Test coverage
46+
47+
Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
48+
49+
Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
50+
51+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
52+
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
53+
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
54+

.github/workflows/claude.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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@v1
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: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
44+
# prompt: 'Update the pull request description to include a summary of changes.'
45+
46+
# Optional: Add claude_args to customize behavior and configuration
47+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
48+
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
49+
# claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'
50+

db/persist.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,24 @@ async function getItem(itemName, parse = false) {
3232

3333
try {
3434
const data = await documentClient.get(params).promise()
35-
console.log(`Getting '${itemName}'`)
36-
return parse ? JSON.parse(data.Item[itemName]) : data.Item[itemName]
35+
36+
// Check if item exists and has the requested attribute
37+
if (!data.Item || data.Item[itemName] === undefined) {
38+
return null
39+
}
40+
41+
const itemValue = data.Item[itemName]
42+
43+
// Handle empty or null values
44+
if (itemValue === null || itemValue === undefined) {
45+
return null
46+
}
47+
48+
return parse ? JSON.parse(itemValue) : itemValue
3749
} catch (err) {
3850
console.error(`Error getting db item: '${itemName}'`)
3951
console.error(err)
40-
return err
52+
throw err // Throw error for consistency with setItem
4153
}
4254
}
4355

@@ -61,12 +73,12 @@ async function setItem(itemName, data) {
6173
}
6274

6375
try {
64-
const data = await documentClient.update(params).promise()
65-
console.log(`Attribute '${itemName}' Updated`)
76+
const result = await documentClient.update(params).promise()
77+
return result
6678
} catch (err) {
6779
console.error(`Error setting db item: '${itemName}'`)
6880
console.error(err)
69-
return err
81+
throw err // Throw error instead of returning it
7082
}
7183
}
7284

0 commit comments

Comments
 (0)