ci: add static-checker #47
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
name: Comment PRs | |
on: | |
pull_request_target: | |
jobs: | |
comment-pr: | |
env: | |
MODEL_NAME: hermes-2-theta-llama-3-8b | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: "${{ github.event.pull_request.merge_commit_sha }}" | |
- uses: mudler/localai-github-action@v1 | |
with: | |
model: 'hermes-2-theta-llama-3-8b' # Any from models.localai.io, or from huggingface.com with: "huggingface://<repository>/file" | |
# Check the PR diff using the current branch and the base branch of the PR | |
- uses: GrantBirki/[email protected] | |
id: git-diff-action | |
with: | |
json_diff_file_output: diff.json | |
raw_diff_file_output: diff.txt | |
file_output_only: "true" | |
- name: Show diff | |
env: | |
DIFF: ${{ steps.git-diff-action.outputs.raw-diff-path }} | |
run: | | |
cat $DIFF | |
- name: Summarize | |
env: | |
DIFF: ${{ steps.git-diff-action.outputs.raw-diff-path }} | |
id: summarize | |
run: | | |
input="$(cat $DIFF)" | |
# Define the LocalAI API endpoint | |
API_URL="http://localhost:8080/chat/completions" | |
# Create a JSON payload using jq to handle special characters | |
json_payload=$(jq -n --arg input "$input" '{ | |
model: "'$MODEL_NAME'", | |
messages: [ | |
{ | |
role: "system", | |
content: "You are LocalAI-bot in Github that helps understanding PRs and assess complexity. Explain what has changed in this PR diff and why" | |
}, | |
{ | |
role: "user", | |
content: $input | |
} | |
] | |
}') | |
# Send the request to LocalAI | |
response=$(curl -s -X POST $API_URL \ | |
-H "Content-Type: application/json" \ | |
-d "$json_payload") | |
# Extract the summary from the response | |
summary="$(echo $response | jq -r '.choices[0].message.content')" | |
# Print the summary | |
# -H "Authorization: Bearer $API_KEY" \ | |
echo "Summary:" | |
echo "$summary" | |
echo "payload sent" | |
echo "$json_payload" | |
{ | |
echo 'message<<EOF' | |
echo "$summary" | |
echo EOF | |
} >> "$GITHUB_OUTPUT" | |
docker logs --tail 10 local-ai | |
- uses: mshick/add-pr-comment@v2 | |
if: always() | |
with: | |
repo-token: ${{ secrets.UPDATE_BOT_TOKEN }} | |
message: ${{ steps.summarize.outputs.message }} | |
message-failure: | | |
Uh oh! Could not analyze this PR, maybe it's too big? |