mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-09-24 20:20:37 +00:00
ci: automatically close PRs from organization-owned forks
This commit is contained in:
parent
70c1dbc01e
commit
2a4ebba818
61
.github/workflows/close-organization-fork-prs.yml
vendored
Normal file
61
.github/workflows/close-organization-fork-prs.yml
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
name: Close PRs from organization forks
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [opened, reopened]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
close-organization-fork-pr:
|
||||||
|
if: >-
|
||||||
|
github.event.pull_request.head.repo.owner.type == 'Organization' &&
|
||||||
|
github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 5
|
||||||
|
steps:
|
||||||
|
- name: Explain the contribution policy and close the PR
|
||||||
|
uses: actions/github-script@v9
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const { data: pr } = await github.rest.pulls.get({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: context.issue.number,
|
||||||
|
});
|
||||||
|
const headRepo = pr.head.repo;
|
||||||
|
if (pr.state !== 'open' || !headRepo ||
|
||||||
|
headRepo.id === pr.base.repo.id || headRepo.owner.type !== 'Organization') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const marker = '<!-- organization-fork-policy -->';
|
||||||
|
const comments = await github.paginate(github.rest.issues.listComments, {
|
||||||
|
...context.repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
per_page: 100,
|
||||||
|
});
|
||||||
|
const alreadyExplained = comments.some(comment =>
|
||||||
|
comment.user?.login === 'github-actions[bot]' && comment.body?.includes(marker));
|
||||||
|
if (!alreadyExplained) {
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
body: [
|
||||||
|
marker,
|
||||||
|
'This repository requires contributions from forks to use a personal fork with **Allow edits from maintainers** enabled.',
|
||||||
|
'GitHub does not support this option for organization-owned forks, so this PR is being closed automatically.',
|
||||||
|
'Please open a new PR from a fork in your personal GitHub account and enable **Allow edits from maintainers** so maintainers can help update the branch.',
|
||||||
|
'See [the GitHub documentation](https://docs.github.com/en/pull-requests/how-tos/work-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork).',
|
||||||
|
].join('\n\n'),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
await github.rest.pulls.update({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: pr.number,
|
||||||
|
state: 'closed',
|
||||||
|
});
|
||||||
@ -12,6 +12,10 @@ If you want to update a third-party dependency, please open an issue first inste
|
|||||||
|
|
||||||
## Pull Requests
|
## Pull Requests
|
||||||
|
|
||||||
|
When contributing from a fork, use a fork under your personal GitHub account and enable **Allow edits from maintainers**. This lets maintainers make follow-up fixes directly on the PR branch.
|
||||||
|
|
||||||
|
PRs from organization-owned forks are automatically closed when opened or reopened because GitHub does not support this maintainer-edit option for those forks. Submit the changes from a personal fork instead. See [GitHub's documentation](https://docs.github.com/en/pull-requests/how-tos/work-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
||||||
|
|
||||||
Keep each PR focused on one clear change. Large or overly complex PRs are harder to review and may not be merged.
|
Keep each PR focused on one clear change. Large or overly complex PRs are harder to review and may not be merged.
|
||||||
|
|
||||||
Do not include test code or test scripts in commits or PRs. Keep them local and report verification results in the PR description.
|
Do not include test code or test scripts in commits or PRs. Keep them local and report verification results in the PR description.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user