Add mosaic-rag-ai #1
This file contains hidden or 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: '🏷️ Gemini Automated Issue Triage' | |
on: | |
issues: | |
types: | |
- 'opened' | |
- 'reopened' | |
issue_comment: | |
types: | |
- 'created' | |
workflow_dispatch: | |
inputs: | |
issue_number: | |
description: 'issue number to triage' | |
required: true | |
type: 'number' | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.event.issue.number }}' | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: 'bash' | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
issues: 'write' | |
statuses: 'write' | |
jobs: | |
triage-issue: | |
if: |- | |
github.event_name == 'issues' || | |
github.event_name == 'workflow_dispatch' || | |
( | |
github.event_name == 'issue_comment' && | |
contains(github.event.comment.body, '@gemini-cli /triage') && | |
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) | |
) | |
timeout-minutes: 5 | |
runs-on: 'ubuntu-latest' | |
steps: | |
- name: 'Checkout repository' | |
uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 | |
- name: 'Generate GitHub App Token' | |
id: 'generate_token' | |
if: |- | |
${{ vars.APP_ID }} | |
uses: 'actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e' # ratchet:actions/create-github-app-token@v2 | |
with: | |
app-id: '${{ vars.APP_ID }}' | |
private-key: '${{ secrets.APP_PRIVATE_KEY }}' | |
- name: 'Run Gemini Issue Triage' | |
uses: 'google-github-actions/run-gemini-cli@v0' | |
id: 'gemini_issue_triage' | |
env: | |
GITHUB_TOKEN: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' | |
ISSUE_TITLE: '${{ github.event.issue.title }}' | |
ISSUE_BODY: '${{ github.event.issue.body }}' | |
ISSUE_NUMBER: '${{ github.event.issue.number }}' | |
REPOSITORY: '${{ github.repository }}' | |
with: | |
gemini_cli_version: '${{ vars.GEMINI_CLI_VERSION }}' | |
gcp_workload_identity_provider: '${{ vars.GCP_WIF_PROVIDER }}' | |
gcp_project_id: '${{ vars.GOOGLE_CLOUD_PROJECT }}' | |
gcp_location: '${{ vars.GOOGLE_CLOUD_LOCATION }}' | |
gcp_service_account: '${{ vars.SERVICE_ACCOUNT_EMAIL }}' | |
gemini_api_key: '${{ secrets.GEMINI_API_KEY }}' | |
use_vertex_ai: '${{ vars.GOOGLE_GENAI_USE_VERTEXAI }}' | |
use_gemini_code_assist: '${{ vars.GOOGLE_GENAI_USE_GCA }}' | |
settings: |- | |
{ | |
"maxSessionTurns": 25, | |
"coreTools": [ | |
"run_shell_command(echo)", | |
"run_shell_command(gh label list)", | |
"run_shell_command(gh issue edit)" | |
], | |
"telemetry": { | |
"enabled": false, | |
"target": "gcp" | |
} | |
} | |
prompt: |- | |
## Role | |
You are an issue triage assistant. Analyze the current GitHub issue | |
and apply the most appropriate existing labels. Use the available | |
tools to gather information; do not ask for information to be | |
provided. | |
## Steps | |
1. Run: `gh label list` to get all available labels. | |
2. Review the issue title and body provided in the environment | |
variables: "${ISSUE_TITLE}" and "${ISSUE_BODY}". | |
3. Classify issues by their kind (bug, enhancement, documentation, | |
cleanup, etc) and their priority (p0, p1, p2, p3). Set the | |
labels accoridng to the format `kind/*` and `priority/*` patterns. | |
4. Apply the selected labels to this issue using: | |
`gh issue edit "${ISSUE_NUMBER}" --add-label "label1,label2"` | |
5. If the "status/needs-triage" label is present, remove it using: | |
`gh issue edit "${ISSUE_NUMBER}" --remove-label "status/needs-triage"` | |
## Guidelines | |
- Only use labels that already exist in the repository | |
- Do not add comments or modify the issue content | |
- Triage only the current issue | |
- Assign all applicable labels based on the issue content | |
- Reference all shell variables as "${VAR}" (with quotes and braces) | |
- name: 'Post Issue Triage Failure Comment' | |
if: |- | |
${{ failure() && steps.gemini_issue_triage.outcome == 'failure' }} | |
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea' | |
with: | |
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' | |
script: |- | |
github.rest.issues.createComment({ | |
owner: '${{ github.repository }}'.split('/')[0], | |
repo: '${{ github.repository }}'.split('/')[1], | |
issue_number: '${{ github.event.issue.number }}', | |
body: 'There is a problem with the Gemini CLI issue triaging. Please check the [action logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details.' | |
}) |