mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-11 06:31:01 -07:00
80 lines
3.1 KiB
YAML
80 lines
3.1 KiB
YAML
name: 'Release: Patch from Comment'
|
|
|
|
on:
|
|
issue_comment:
|
|
types: ['created']
|
|
|
|
jobs:
|
|
slash-command:
|
|
runs-on: 'ubuntu-latest'
|
|
# Only run if the comment is from a human user (not automated)
|
|
if: "github.event.comment.user.type == 'User' && github.event.comment.user.login != 'github-actions[bot]'"
|
|
permissions:
|
|
contents: 'write'
|
|
pull-requests: 'write'
|
|
actions: 'write'
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: 'actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8'
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: 'Slash Command Dispatch'
|
|
id: 'slash_command'
|
|
uses: 'peter-evans/slash-command-dispatch@40877f718dce0101edfc7aea2b3800cc192f9ed5'
|
|
with:
|
|
token: '${{ secrets.GITHUB_TOKEN }}'
|
|
commands: 'patch'
|
|
permission: 'write'
|
|
issue-type: 'pull-request'
|
|
static-args: |
|
|
dry_run=false
|
|
|
|
- name: 'Acknowledge Patch Command'
|
|
if: "startsWith(github.event.comment.body, '/patch')"
|
|
uses: 'peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d'
|
|
with:
|
|
issue-number: '${{ github.event.issue.number }}'
|
|
body: |
|
|
👋 Patch command received! Processing...
|
|
|
|
You can track the progress here: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
|
|
- name: 'Get PR Status'
|
|
id: 'pr_status'
|
|
if: "startsWith(github.event.comment.body, '/patch')"
|
|
env:
|
|
GH_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
run: |
|
|
gh pr view "${{ github.event.issue.number }}" --json mergeCommit,state > pr_status.json
|
|
echo "MERGE_COMMIT_SHA=$(jq -r .mergeCommit.oid pr_status.json)" >> "$GITHUB_OUTPUT"
|
|
echo "STATE=$(jq -r .state pr_status.json)" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: 'Dispatch if Merged'
|
|
if: "steps.pr_status.outputs.STATE == 'MERGED'"
|
|
uses: 'actions/github-script@00f12e3e20659f42342b1c0226afda7f7c042325'
|
|
with:
|
|
script: |
|
|
const argsStr = '${{ steps.slash_command.outputs.command-arguments }}';
|
|
const args = argsStr ? JSON.parse(argsStr) : {};
|
|
github.rest.actions.createWorkflowDispatch({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
workflow_id: 'release-patch-1-create-pr.yml',
|
|
ref: 'main',
|
|
inputs: {
|
|
commit: '${{ steps.pr_status.outputs.MERGE_COMMIT_SHA }}',
|
|
channel: args.channel || 'stable',
|
|
dry_run: args.dry_run || 'false',
|
|
original_pr: '${{ github.event.issue.number }}'
|
|
}
|
|
})
|
|
|
|
- name: 'Comment on Failure'
|
|
if: "startsWith(github.event.comment.body, '/patch') && steps.pr_status.outputs.STATE != 'MERGED'"
|
|
uses: 'peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d'
|
|
with:
|
|
issue-number: '${{ github.event.issue.number }}'
|
|
body: |
|
|
:x: The `/patch` command failed. This pull request must be merged before a patch can be created.
|