diff --git a/.github/workflows/assistant.yml b/.github/workflows/assistant.yml new file mode 100644 index 0000000..59e7632 --- /dev/null +++ b/.github/workflows/assistant.yml @@ -0,0 +1,60 @@ +name: Qoder Assistant + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + +jobs: + qoder-assistant: + if: | + contains(github.event.comment.body, '@qoder') && + !endsWith(github.event.comment.user.login, '[bot]') + runs-on: ubuntu-latest + permissions: + contents: read + issues: write + pull-requests: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build Arguments + id: build_args + run: | + ARGS="REPO: ${{ github.repository }} + REQUEST_SOURCE: ${{ github.event_name }} + THREAD_ID: ${{ github.event.comment.node_id }} + COMMENT_ID: ${{ github.event.comment.id }} + AUTHOR: ${{ github.event.comment.user.login }} + BODY: ${{ github.event.comment.body }} + URL: ${{ github.event.comment.html_url }} + IS_PR: ${{ github.event.issue.pull_request != null || github.event_name == 'pull_request_review_comment' }} + ISSUE_OR_PR_NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }}" + + if [ -n "${{ github.event.comment.pull_request_review_id }}" ]; then + ARGS="$ARGS + REVIEW_ID: ${{ github.event.comment.pull_request_review_id }}" + fi + + if [ -n "${{ github.event.comment.in_reply_to_id }}" ]; then + ARGS="$ARGS + REPLY_TO_COMMENT_ID: ${{ github.event.comment.in_reply_to_id }}" + fi + + echo "args<> $GITHUB_OUTPUT + echo "$ARGS" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + - name: Run Qoder Assistant + uses: QoderAI/qoder-action@v0 + with: + qoder_personal_access_token: ${{ secrets.QODER_PERSONAL_ACCESS_TOKEN }} + prompt: | + /assistant + ${{ steps.build_args.outputs.args }} diff --git a/.github/workflows/code-review.yml b/.github/workflows/code-review.yml new file mode 100644 index 0000000..5d94a0a --- /dev/null +++ b/.github/workflows/code-review.yml @@ -0,0 +1,27 @@ +name: Qoder Auto Code Review + +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + qoder-review: + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run Qoder Code Review + uses: QoderAI/qoder-action@v0 + with: + qoder_personal_access_token: ${{ secrets.QODER_PERSONAL_ACCESS_TOKEN }} + prompt: | + /review-pr + REPO:${{ github.repository }} PR_NUMBER:${{ github.event.pull_request.number }}