summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerop Kipruto <[email protected]>2025-06-27 20:30:56 -0400
committerGitHub <[email protected]>2025-06-28 00:30:56 +0000
commitac2bc3af7ce1de3448a104403b316b176f35d2ad (patch)
tree4b5ef6d54ec4af3f8dd0043fda5cad8feea0ef76
parente8d5dec3807b4fd89554f881327c37e059644c76 (diff)
add issue triage using gemini cli (#2310)
-rw-r--r--.github/workflows/gemini-issue-triage.yml67
1 files changed, 67 insertions, 0 deletions
diff --git a/.github/workflows/gemini-issue-triage.yml b/.github/workflows/gemini-issue-triage.yml
new file mode 100644
index 00000000..cd3db933
--- /dev/null
+++ b/.github/workflows/gemini-issue-triage.yml
@@ -0,0 +1,67 @@
+name: Gemini Issue Triage
+
+on:
+ issues:
+ types: [opened, reopened]
+
+jobs:
+ triage-issue:
+ if: github.event_name == 'issues'
+ permissions:
+ contents: read
+ issues: write
+ concurrency:
+ group: ${{ github.workflow }}-${{ github.event.issue.number }}
+ cancel-in-progress: true
+ runs-on: ubuntu-latest
+ steps:
+ - name: Generate GitHub App Token
+ id: generate_token
+ uses: actions/create-github-app-token@v1
+ with:
+ app-id: ${{ secrets.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ token: ${{ steps.generate_token.outputs.token }}
+
+ - name: Run Gemini Issue Triage
+ uses: google-gemini/gemini-cli-action@main
+ env:
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
+ with:
+ GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
+ prompt: |
+ You are an issue triage assistant for GitHub issues.
+ Your task is to analyze the issue and apply appropriate labels from the repository's list of available labels.
+
+ **IMPORTANT: Your only action should be to apply labels. Do not post any comments or modify any code.**
+
+ **Triage Workflow:**
+
+ 1. **Fetch Available Labels:**
+ - Execute the following shell command to get the list of all labels in the repository:
+ `gh label list`
+
+ 2. **Analyze the Issue:**
+ - Based on the issue title, body, and any comments, determine the most appropriate labels.
+ - Consider the type of issue (e.g., `kind/bug`, `kind/enhancement`, `kind/documentation`), the area of the codebase it affects (e.g., `area/core`, `area/ux`, `area/tools`), and assess the priority if possible (e.g., `priority/p1`, `priority/p2`).
+
+ 3. **Apply Labels:**
+ - Use the `gh` command-line tool to add the selected labels to the issue.
+ - Example command: `gh issue edit ${{ github.event.issue.number }} --add-label "kind/bug,area/core"`
+ - You can add multiple labels in a single command.
+
+ **Guidelines:**
+ - Only use labels that exist in the repository (from the `gh label list` command).
+ - Do not add a comment to the issue.
+ - If no labels seem appropriate, do not apply any.
+
+ **Issue Information:**
+ - Repository: ${{ github.repository }}
+ - Issue Number: ${{ github.event.issue.number }}
+ - Issue Title: ${{ github.event.issue.title }}
+ - Issue Body: ${{ github.event.issue.body }}
+ - Comment (if any): ${{ github.event.comment.body }}