Bin
2025-12-17 262fecaa75b2909ad244f12c3b079ed3ff4ae329
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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