name: Pull Request on: pull_request_target: types: [opened, edited, labeled, unlabeled, synchronize] merge_group: types: [checks_requested] workflow_call: secrets: ELEMENT_BOT_TOKEN: required: true concurrency: ${{ github.workflow }}-${{ github.event.pull_request.head.ref || github.head_ref || github.ref }} permissions: {} # We use ELEMENT_BOT_TOKEN instead jobs: changelog: name: Preview Changelog runs-on: ubuntu-24.04 steps: - uses: mheap/github-action-required-labels@8afbe8ae6ab7647d0c9f0cfa7c2f939650d22509 # v5 if: github.event_name != 'merge_group' with: labels: | X-Breaking-Change T-Deprecation T-Enhancement T-Defect T-Task Dependencies mode: minimum count: 1 prevent-blocked: name: Prevent Blocked runs-on: ubuntu-24.04 permissions: pull-requests: read steps: - name: Add notice uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 if: contains(github.event.pull_request.labels.*.name, 'X-Blocked') with: script: | core.setFailed("Preventing merge whilst PR is marked blocked!"); community-prs: name: Label Community PRs runs-on: ubuntu-24.04 if: github.event.action == 'opened' permissions: pull-requests: write steps: - name: Check membership if: github.event.pull_request.user.login != 'renovate[bot]' uses: tspascoal/get-user-teams-membership@57e9f42acd78f4d0f496b3be4368fc5f62696662 # v3 id: teams with: username: ${{ github.event.pull_request.user.login }} organization: matrix-org team: Core Team GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} - name: Add label if: steps.teams.outputs.isTeamMember == 'false' uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 with: script: | github.rest.issues.addLabels({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, labels: ['Z-Community-PR'] }); close-if-fork-develop: name: Forbid develop branch fork contributions runs-on: ubuntu-24.04 if: > github.event.action == 'opened' && github.event.pull_request.head.ref == 'develop' && github.event.pull_request.head.repo.full_name != github.repository steps: - name: Close pull request uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: "Thanks for opening this pull request, unfortunately we do not accept contributions from the main" + " branch of your fork, please re-open once you switch to an alternative branch for everyone's sanity." + " See https://github.com/matrix-org/matrix-js-sdk/blob/develop/CONTRIBUTING.md", }); github.rest.pulls.update({ pull_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, state: 'closed' });