name: 'Follow Merge: Dispatch' on: pull_request_target: types: - opened - closed - converted_to_draft - ready_for_review - synchronize branches: - develop - 'lse-release/**' paths-ignore: - 'label_studio/frontend/**' - 'docs/**' # - 'web/dist/**' concurrency: group: ${{ github.workflow }}-${{ github.head_ref }} jobs: sync: name: "Sync" if: startsWith(github.head_ref, 'fb-') || startsWith(github.head_ref, 'revert-') || startsWith(github.head_ref, 'cursor') runs-on: ubuntu-latest steps: - uses: hmarr/debug-action@v3.0.0 - name: Check user's membership uses: actions/github-script@v8 id: check-membership with: github-token: ${{ secrets.GIT_PAT }} script: | const { repo, owner } = context.repo; try { return (await github.rest.orgs.getMembershipForUser({ org: owner, username: '${{ github.actor }}', }))?.data?.state == "active"; } catch (error) { return false; } - name: Notify user on failure if: steps.check-membership.outputs.result == 'false' uses: actions/github-script@v8 with: github-token: ${{ secrets.GIT_PAT }} script: | const { repo, owner } = context.repo; const result = await github.rest.issues.createComment({ owner, repo, issue_number: '${{ github.event.number }}', body: [ 'Hi @${{ github.actor }}!', '', `Unfortunately you don't have membership in ${owner} organization, Follow Merge dispatch is skipped.` ].join('\n') }); throw `${{ github.actor }} don't have membership in ${owner} organization` - name: Checkout Actions Hub uses: actions/checkout@v6 with: token: ${{ secrets.GIT_PAT }} repository: HumanSignal/actions-hub path: ./.github/actions-hub - name: Dispatch label-studio-enterprise Follow Merge uses: ./.github/actions-hub/actions/follow-merge-dispatch with: github_token: ${{ secrets.GIT_PAT }} downstream_repository: "label-studio-enterprise"