Skip to content
name: genai commander
on:
issue_comment:
types: [created]
jobs:
pr_commented:
# must be PR and have a comment starting with /genai
if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/genai-') }}
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: resolve pr sha
id: sha
uses: actions/github-script@v7
with:
result-encoding: string
script: |
const { owner, repo, number } = context.issue;
const pr = await github.pulls.get({ owner, repo, pull_number: number, });
console.log(pr)
const res = { sha: pr.data.head.sha, ref: pr.data.head.ref }
console.log(res)
return JSON.stringify(res)
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: diff PR branch
run: git diff origin/main...origin/${{ fromJSON(steps.sha.outputs.result).ref }}
- name: diff PR commit
run: git diff origin/main...${{ fromJSON(steps.sha.outputs.result).sha }}
- name: checkout PR commit
run: git checkout ${{ fromJSON(steps.sha.outputs.result).sha }}
- name: diff main
run: git diff origin/main
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile
- name: compile
run: yarn compile
- name: genaiscript pr-describe
if: contains(github.event.comment.body, '/genai-describe')
run: node packages/cli/built/genaiscript.cjs run pr-describe --out ./temp/genai/pr-describe -prd --out-trace $GITHUB_STEP_SUMMARY
env:
GITHUB_ISSUE: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_API_TYPE: ${{ secrets.OPENAI_API_TYPE }}
OPENAI_API_BASE: ${{ secrets.OPENAI_API_BASE }}
- name: genaiscript pr-review
if: contains(github.event.comment.body, '/genai-review')
run: node packages/cli/built/genaiscript.cjs run pr-review --out ./temp/genai/pr-review -prc --out-trace $GITHUB_STEP_SUMMARY
env:
GITHUB_ISSUE: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_COMMIT_SHA: ${{ fromJSON(steps.sha.outputs.result).sha }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_API_TYPE: ${{ secrets.OPENAI_API_TYPE }}
OPENAI_API_BASE: ${{ secrets.OPENAI_API_BASE }}
- name: start ollama
if: contains(github.event.comment.body, '/genai-test')
run: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
- name: run test within scripts
if: contains(github.event.comment.body, '/genai-test')
run: yarn test:scripts --out-summary $GITHUB_STEP_SUMMARY --test-delay 10
- name: Archive genai results
if: always()
uses: actions/upload-artifact@v4
with:
name: genai-results
path: ./temp/genai/**