Skip to content

feature: Add render-diff tool to show kustomize render delta for PRs #15542

feature: Add render-diff tool to show kustomize render delta for PRs

feature: Add render-diff tool to show kustomize render delta for PRs #15542

Workflow file for this run

name: '🔀 Gemini Dispatch'
on:
pull_request_review_comment:
types:
- 'created'
pull_request_review:
types:
- 'submitted'
pull_request_target:
types:
- 'opened'
issues:
types:
- 'opened'
- 'reopened'
issue_comment:
types:
- 'created'
defaults:
run:
shell: 'bash'
jobs:
# debugger:
# if: |-
# ${{ fromJSON(vars.DEBUG || vars.ACTIONS_STEP_DEBUG || false) }}
# runs-on: 'ubuntu-latest'
# permissions:
# contents: 'read'
# steps:
# - name: 'Print context for debugging'
# env:
# DEBUG_event_name: '${{ github.event_name }}'
# DEBUG_event__action: '${{ github.event.action }}'
# DEBUG_event__comment__author_association: '${{ github.event.comment.author_association }}'
# DEBUG_event__issue__author_association: '${{ github.event.issue.author_association }}'
# DEBUG_event__pull_request__author_association: '${{ github.event.pull_request.author_association }}'
# DEBUG_event__review__author_association: '${{ github.event.review.author_association }}'
# DEBUG_event: '${{ toJSON(github.event) }}'
# run: |-
# env | grep '^DEBUG_'
dispatch:
# For PRs: all
# For comments: only if user types @gemini-cli and is OWNER/MEMBER/COLLABORATOR
# For issues: only on open/reopen
if: |-
(
github.event_name == 'pull_request_target'
) || (
github.event.sender.type == 'User' &&
startsWith(github.event.comment.body || github.event.review.body || github.event.issue.body, '@gemini-cli') &&
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association || github.event.review.author_association || github.event.issue.author_association)
) || (
github.event_name == 'issues' &&
contains(fromJSON('["opened", "reopened"]'), github.event.action)
)
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
issues: 'write'
pull-requests: 'write'
outputs:
command: '${{ steps.extract_command.outputs.command }}'
request: '${{ steps.extract_command.outputs.request }}'
additional_context: '${{ steps.extract_command.outputs.additional_context }}'
issue_number: '${{ github.event.pull_request.number || github.event.issue.number }}'
steps:
- name: 'Mint identity token'
id: 'mint_identity_token'
if: |-
${{ vars.APP_ID }}
uses: 'actions/create-github-app-token@a8d616148505b5069dccd32f177bb87d7f39123b' # ratchet:actions/create-github-app-token@v2
with:
app-id: '${{ vars.APP_ID }}'
private-key: '${{ secrets.APP_PRIVATE_KEY }}'
permission-contents: 'read'
permission-issues: 'write'
permission-pull-requests: 'write'
- name: 'Extract command'
id: 'extract_command'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea' # ratchet:actions/github-script@v7
env:
EVENT_TYPE: '${{ github.event_name }}.${{ github.event.action }}'
REQUEST: '${{ github.event.comment.body || github.event.review.body || github.event.issue.body }}'
with:
script: |
const request = process.env.REQUEST;
const eventType = process.env.EVENT_TYPE
core.setOutput('request', request);
if (request.startsWith("@gemini-cli /review")) {
core.setOutput('command', 'review');
const additionalContext = request.replace(/^@gemini-cli \/review/, '').trim();
core.setOutput('additional_context', additionalContext);
} else if (request.startsWith("@gemini-cli /triage")) {
core.setOutput('command', 'triage');
} else if (request.startsWith("@gemini-cli")) {
core.setOutput('command', 'invoke');
const additionalContext = request.replace(/^@gemini-cli/, '').trim();
core.setOutput('additional_context', additionalContext);
} else if (eventType === 'pull_request.opened') {
core.setOutput('command', 'review');
} else if (['issues.opened', 'issues.reopened'].includes(eventType)) {
core.setOutput('command', 'triage');
} else {
core.setOutput('command', 'fallthrough');
}
- name: 'Add Gemini helper comment'
if: '${{ github.event_name }}.${{ github.event.action }} == "pull_request.opened"'

Check warning on line 114 in .github/workflows/gemini-dispatch.yml

View workflow run for this annotation

GitHub Actions / 🔀 Gemini Dispatch

Workflow syntax warning

.github/workflows/gemini-dispatch.yml (Line: 114, Col: 13): Conditional expression contains literal text outside replacement tokens. This will cause the expression to always evaluate to truthy. Did you mean to put the entire expression inside ${{ }}?
env:
GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}'
PR_NUMBER: '${{ github.event.pull_request.number }}'
REPOSITORY: '${{ github.repository }}'
MESSAGE: |-
## 🤖 Gemini AI Assistant Available
Hi @${{ github.actor }}! I'm here to help with your pull request. You can interact with me using the following commands:
### Available Commands
- **`@gemini-cli /review`** - Request a comprehensive code review
- Example: `@gemini-cli /review Please focus on security and performance`
- **`@gemini-cli <your question>`** - Ask me anything about the codebase
- Example: `@gemini-cli How can I improve this function?`
- Example: `@gemini-cli What are the best practices for error handling here?`
### How to Use
1. Simply type one of the commands above in a comment on this PR
2. I'll analyze your code and provide detailed feedback
3. You can track my progress in the [workflow logs](https://github.com/${{ github.repository }}/actions)
### Permissions
Only **OWNER**, **MEMBER**, or **COLLABORATOR** users can trigger my responses. This ensures secure and appropriate usage.
---
*This message was automatically added to help you get started with the Gemini AI assistant. Feel free to delete this comment if you don't need assistance.*
run: |-
gh pr comment "${PR_NUMBER}" \
--body "${MESSAGE}" \
--repo "${REPOSITORY}"
- name: 'Acknowledge request'
env:
GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}'
ISSUE_NUMBER: '${{ github.event.pull_request.number || github.event.issue.number }}'
MESSAGE: |-
🤖 Hi @${{ github.actor }}, I've received your request, and I'm working on it now! You can track my progress [in the logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for more details.
REPOSITORY: '${{ github.repository }}'
run: |-
gh issue comment "${ISSUE_NUMBER}" \
--body "${MESSAGE}" \
--repo "${REPOSITORY}"
review:
needs: 'dispatch'
if: |-
${{ needs.dispatch.outputs.command == 'review' }}
uses: './.github/workflows/gemini-review.yml'
permissions:
contents: 'read'
id-token: 'write'
issues: 'write'
pull-requests: 'write'
with:
additional_context: '${{ needs.dispatch.outputs.additional_context }}'
secrets: 'inherit'
# triage:
# needs: 'dispatch'
# if: |-
# ${{ needs.dispatch.outputs.command == 'triage' }}
# uses: './.github/workflows/gemini-triage.yml'
# permissions:
# contents: 'read'
# id-token: 'write'
# issues: 'write'
# pull-requests: 'write'
# with:
# additional_context: '${{ needs.dispatch.outputs.additional_context }}'
# secrets: 'inherit'
# invoke:
# needs: 'dispatch'
# if: |-
# ${{ needs.dispatch.outputs.command == 'invoke' }}
# uses: './.github/workflows/gemini-invoke.yml'
# permissions:
# contents: 'read'
# id-token: 'write'
# issues: 'write'
# pull-requests: 'write'
# with:
# additional_context: '${{ needs.dispatch.outputs.additional_context }}'
# secrets: 'inherit'
# fallthrough:
# needs:
# - 'dispatch'
# - 'review'
# - 'triage'
# - 'invoke'
# if: |-
# ${{ always() && !cancelled() && (failure() || needs.dispatch.outputs.command == 'fallthrough') }}
# runs-on: 'ubuntu-latest'
# permissions:
# contents: 'read'
# issues: 'write'
# pull-requests: 'write'
# steps:
# - name: 'Mint identity token'
# id: 'mint_identity_token'
# if: |-
# ${{ vars.APP_ID }}
# uses: 'actions/create-github-app-token@a8d616148505b5069dccd32f177bb87d7f39123b' # ratchet:actions/create-github-app-token@v2
# with:
# app-id: '${{ vars.APP_ID }}'
# private-key: '${{ secrets.APP_PRIVATE_KEY }}'
# permission-contents: 'read'
# permission-issues: 'write'
# permission-pull-requests: 'write'
# - name: 'Send failure comment'
# env:
# GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}'
# ISSUE_NUMBER: '${{ github.event.pull_request.number || github.event.issue.number }}'
# MESSAGE: |-
# 🤖 I'm sorry @${{ github.actor }}, but I was unable to process your request. Please [see the logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for more details.
# REPOSITORY: '${{ github.repository }}'
# run: |-
# gh issue comment "${ISSUE_NUMBER}" \
# --body "${MESSAGE}" \
# --repo "${REPOSITORY}"