generated from BlossomLabs/web3-turbo-template
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/dev' into allowlist-feature
- Loading branch information
Showing
44 changed files
with
12,671 additions
and
12,891 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,7 @@ jobs: | |
permissions: | ||
contents: read | ||
pull-requests: write | ||
issues: read | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
|
@@ -24,8 +25,8 @@ jobs: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
NODE_ID: ${{ github.event.comment.node_id }} | ||
|
||
- name: Fetch PR details using GitHub API | ||
id: pr-details | ||
- name: Fetch filtered PR diff (only .ts, .tsx, .sol files) | ||
id: pr-diff | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
|
@@ -35,40 +36,88 @@ jobs: | |
repo: context.repo.repo, | ||
pull_number: pr_number | ||
}); | ||
return pr.data; | ||
const { data: diff } = await github.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', { | ||
headers: { | ||
accept: 'application/vnd.github.v3.diff' | ||
}, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
pull_number: pr_number | ||
}); | ||
- name: "Get diff of the pull request" | ||
id: get_diff | ||
shell: bash | ||
env: | ||
PULL_REQUEST_HEAD_REF: "${{ steps.pr-details.outputs.head.ref }}" | ||
PULL_REQUEST_BASE_REF: "${{ steps.pr-details.outputs.base.ref }}" | ||
run: |- | ||
echo "PULL_REQUEST_HEAD_REF: $PULL_REQUEST_HEAD_REF" | ||
echo "PULL_REQUEST_BASE_REF: $PULL_REQUEST_BASE_REF" | ||
# Only include changes to .ts, .tsx, and .sol files in the diff | ||
git diff "origin/${{ env.PULL_REQUEST_BASE_REF }}" -- '*.ts' '*.tsx' '*.sol' > "diff.txt" | ||
{ | ||
echo "pull_request_diff<<EOF"; | ||
cat "diff.txt"; | ||
echo 'EOF'; | ||
} >> $GITHUB_OUTPUT # save the filtered diff to an output variable | ||
// Initialize variables to store filtered diff and a flag for capturing lines | ||
let filteredDiff = ''; | ||
let capture = false; | ||
// Iterate over each line in the diff | ||
diff.split('\n').forEach(line => { | ||
// Check if the line is a diff line for the relevant file types | ||
if (line.startsWith('diff --git')) { | ||
capture = line.endsWith('.ts') || line.endsWith('.tsx') || line.endsWith('.sol'); | ||
} | ||
// If capturing, append the current line to the filtered diff | ||
if (capture) { | ||
filteredDiff += line + '\n'; | ||
} | ||
}); | ||
// Get the head commit SHA | ||
const headSha = pr.data.head.sha; | ||
// Set outputs for the filtered diff and head SHA | ||
core.setOutput("diff", filteredDiff); | ||
core.setOutput("headSha", headSha); | ||
- name: Log filtered diff to file | ||
id: log-diff | ||
continue-on-error: true | ||
run: | | ||
echo "${{ steps.pr-diff.outputs.diff }}" | ||
- uses: rubensflinco/[email protected] | ||
name: "Code Review by Gemini AI" | ||
continue-on-error: true | ||
id: review | ||
with: | ||
gemini_api_key: ${{ secrets.GEMINI_API_KEY }} | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
github_repository: ${{ github.repository }} | ||
github_pull_request_number: ${{ steps.pr-details.outputs.number }} | ||
git_commit_hash: ${{ steps.pr-details.outputs.head.sha }} | ||
github_pull_request_number: ${{ github.event.issue.number }} | ||
git_commit_hash: ${{ steps.pr-diff.outputs.headSha }} | ||
model: "gemini-1.5-pro-latest" | ||
pull_request_diff: |- | ||
${{ steps.get_diff.outputs.pull_request_diff }} | ||
pull_request_chunk_size: "3500" | ||
${{ steps.pr-diff.outputs.diff }} | ||
pull_request_chunk_size: "5000" | ||
extra_prompt: |- | ||
Only review files with extensions: .ts, .tsx, .sol | ||
Focus your review on code logic, security vulnerabilities, and potential improvements in these files. | ||
Make a pull request review in regards of the added and removed code. | ||
Start with a summary of the changes and then list detail the review and suggestions. | ||
Focus on code quality, security, performance, best practices and potential mistakes. | ||
Never ask to provide more code and only review the code you received even if its partial. | ||
When a line start with a minus (`-`) it means that the line was removed, when it starts with plus (`+`) it means that the line was added. | ||
log_level: "DEBUG" | ||
|
||
- name: Add thumbs down reaction if something went wrong | ||
if: steps.review.outcome == 'failure' | ||
run: gh api graphql --silent --raw-field query="mutation AddReaction {addReaction(input:{subjectId:\"$NODE_ID\",content:THUMBS_DOWN}){reaction{content}subject{id}}}" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
NODE_ID: ${{ github.event.comment.node_id }} | ||
|
||
- name: Get Gemini step log | ||
if: steps.review.outcome == 'failure' | ||
id: get-gemini-log | ||
run: | | ||
echo "gemini_log<<EOF" >> $GITHUB_OUTPUT | ||
gh run view ${{ steps.review.outputs.run_id }} --log >> $GITHUB_OUTPUT | ||
echo "EOF" >> $GITHUB_OUTPUT | ||
- name: Add comment with log | ||
if: steps.review.outcome == 'failure' | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
github.rest.issues.createComment({ | ||
issue_number: context.issue.number, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
body: 'Gemini Code Review encountered an error. Here is the step log:\n\n```\n${{ steps.get-gemini-log.outputs.gemini_log }}\n```' | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.