Skip to content

Commit

Permalink
Create .github/workflows/main.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
Thanasis Politis authored Mar 25, 2023
1 parent ba67011 commit 2eab395
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: ChatGPT Code Review

on:
pull_request:
types: [opened, edited, reopened, synchronize]

jobs:
code_review:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install Python
uses: actions/setup-python@v2
with:
python-version: '3.9'

- name: Install dependencies
run: pip install requests

- name: Run code review
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHATGPT_API_KEY: ${{ secrets.CHATGPT_API_KEY }}
run: |
set -e
# Get the list of files changed in the pull request
files=$(git diff --name-only HEAD~1)
# Loop through each file and get its contents
for file in $files; do
contents=$(git show HEAD~1:$file)
# Send the contents to ChatGPT for review
response=$(curl -s -X POST -H "Authorization: Bearer $CHATGPT_API_KEY" -H "Content-Type: application/json" -d "{\"text\": \"$contents\"}" "https://api.openai.com/v1/engines/davinci-codex/completions?prompt=Please review the following code:&max_tokens=100&n=1")
# Parse the response to get the review
review=$(echo $response | jq -r '.choices[].text')
# Post the review as a comment on the pull request
curl -s -X POST -H "Authorization: Bearer $GITHUB_TOKEN" -H "Content-Type: application/json" -d "{\"body\": \"$review\"}" "https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments"
done

0 comments on commit 2eab395

Please sign in to comment.