80 lines
2.7 KiB
YAML
80 lines
2.7 KiB
YAML
name: Pull Request
|
|
on:
|
|
pull_request_target:
|
|
types: [ opened, edited, labeled, unlabeled, synchronize ]
|
|
workflow_call: # zizmor: ignore[dangerous-triggers]
|
|
secrets:
|
|
ELEMENT_BOT_TOKEN:
|
|
required: true
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
prevent-blocked:
|
|
name: Prevent blocked
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: read
|
|
steps:
|
|
- name: Add notice
|
|
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
|
if: contains(github.event.pull_request.labels.*.name, 'X-Blocked')
|
|
with:
|
|
script: |
|
|
core.setFailed("PR has been labeled with X-Blocked; it cannot be merged.");
|
|
|
|
community-prs:
|
|
name: Label Community PRs
|
|
runs-on: ubuntu-latest
|
|
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: element-hq
|
|
team: Vector Core
|
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN_READ_ORG }}
|
|
- name: Add label
|
|
if: steps.teams.outputs.isTeamMember == 'false'
|
|
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
|
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-latest
|
|
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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
|
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.",
|
|
});
|
|
|
|
github.rest.pulls.update({
|
|
pull_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
state: 'closed'
|
|
});
|