mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-01-04 02:39:56 +00:00
73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
---
|
|
# This action is centrally managed in https://github.com/<organization>/.github/
|
|
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in
|
|
# the above-mentioned repo.
|
|
|
|
# Label PRs with `autoupdate` if various conditions are met, otherwise, remove the label.
|
|
|
|
name: Label PR autoupdate
|
|
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- edited
|
|
- opened
|
|
- reopened
|
|
- synchronize
|
|
|
|
jobs:
|
|
label_pr:
|
|
if: >-
|
|
startsWith(github.repository, 'LizardByte/') &&
|
|
contains(github.event.pull_request.body, fromJSON('"] I want maintainers to keep my branch updated"'))
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
steps:
|
|
- name: Check if member
|
|
id: org_member
|
|
run: |
|
|
status="true"
|
|
gh api \
|
|
-H "Accept: application/vnd.github+json" \
|
|
/orgs/${{ github.repository_owner }}/members/${{ github.actor }} || status="false"
|
|
|
|
echo "result=${status}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Label autoupdate
|
|
if: >-
|
|
steps.org_member.outputs.result == 'true' &&
|
|
contains(github.event.pull_request.labels.*.name, 'autoupdate') == false &&
|
|
contains(github.event.pull_request.body,
|
|
fromJSON('"\n- [x] I want maintainers to keep my branch updated"')) == true
|
|
uses: actions/github-script@v6
|
|
with:
|
|
github-token: ${{ secrets.GH_BOT_TOKEN }}
|
|
script: |
|
|
github.rest.issues.addLabels({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: ['autoupdate']
|
|
})
|
|
|
|
- name: Unlabel autoupdate
|
|
if: >-
|
|
contains(github.event.pull_request.labels.*.name, 'autoupdate') &&
|
|
(
|
|
(github.event.action == 'synchronize' && steps.org_member.outputs.result == 'false') ||
|
|
(contains(github.event.pull_request.body,
|
|
fromJSON('"\n- [x] I want maintainers to keep my branch updated"')) == false
|
|
)
|
|
)
|
|
uses: actions/github-script@v6
|
|
with:
|
|
github-token: ${{ secrets.GH_BOT_TOKEN }}
|
|
script: |
|
|
github.rest.issues.removeLabel({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
name: ['autoupdate']
|
|
})
|