name: "/git command"
|
|
on:
|
repository_dispatch:
|
types: [ git-command ]
|
|
concurrency:
|
group: ${{ github.workflow }}-${{ github.event.client_payload.github.payload.issue.number }}-${{ github.event.client_payload.slash_command.command }}-${{ github.event.client_payload.slash_command.args.unnamed.arg1 || github.event.client_payload.slash_command.args.all }}
|
|
jobs:
|
merge:
|
if: ${{ github.event.client_payload.slash_command.args.unnamed.arg1 == 'merge' }}
|
runs-on: ubuntu-latest
|
timeout-minutes: 10
|
steps:
|
- uses: hmarr/debug-action@v3.0.0
|
|
- name: Add Workflow link to command comment
|
uses: peter-evans/create-or-update-comment@v5
|
with:
|
token: ${{ secrets.GIT_PAT }}
|
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
|
body: |
|
> [Workflow run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
- name: Checkout
|
uses: actions/checkout@v6
|
with:
|
token: ${{ secrets.GIT_PAT }}
|
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
|
ref: ${{ github.event.client_payload.pull_request.head.ref }}
|
|
- name: Checkout Actions Hub
|
uses: actions/checkout@v6
|
with:
|
token: ${{ secrets.GIT_PAT }}
|
repository: HumanSignal/actions-hub
|
path: ./.github/actions-hub
|
|
- name: Git Configure
|
uses: ./.github/actions-hub/actions/git-configure
|
with:
|
username: ${{ github.event.client_payload.github.actor }}
|
|
# Merge
|
|
- name: Git Merge
|
id: merge
|
uses: ./.github/actions-hub/actions/git-merge
|
with:
|
base_branch: ${{ github.event.client_payload.slash_command.args.unnamed.arg2 || github.event.client_payload.pull_request.base.ref }}
|
base_repository: ${{ github.event.client_payload.pull_request.base.repo.full_name }}
|
head_sha: ${{ github.event.client_payload.pull_request.head.sha }}
|
our_files: "pyproject.toml poetry.lock web"
|
|
- name: Git Push
|
if: steps.merge.outputs.result == 'true'
|
uses: ./.github/actions-hub/actions/git-push
|
|
- name: Add reaction to command comment
|
uses: peter-evans/create-or-update-comment@v5
|
if: always()
|
with:
|
token: ${{ secrets.GIT_PAT }}
|
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
|
body: |
|
> ${{ steps.merge.outputs.message || '**Error**: Workflow failed' }}
|
reactions: ${{ steps.merge.outputs.reaction || '-1' }}
|
|
help:
|
if: ${{ github.event.client_payload.slash_command.args.unnamed.arg1 == 'help' || !contains(fromJson('["merge"]'), github.event.client_payload.slash_command.args.unnamed.arg1) }}
|
runs-on: ubuntu-latest
|
timeout-minutes: 1
|
steps:
|
- name: Update comment
|
uses: peter-evans/create-or-update-comment@v5
|
with:
|
token: ${{ secrets.GIT_PAT }}
|
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
|
body: |
|
> Command | Description
|
> --- | ---
|
> /git merge `branch` | Merge branch `branch` into current branch
|
reactions: hooray
|