Auto-close PRs on subtree-splits

This commit is contained in:
Kevin Bond
2024-04-18 16:54:09 -04:00
committed by Nicolas Grekas
parent ad934312cd
commit b212f1bb2f
26 changed files with 433 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
<?php
if ('cli' !== PHP_SAPI) {
echo "This script can only be run from the command line.\n";
exit(1);
}
$mainRepo = 'https://github.com/twigphp/Twig';
exec('find extra/ -name composer.json', $packages);
foreach ($packages as $package) {
$package = dirname($package);
$c = file_get_contents($package.'/.gitattributes');
$c = preg_replace('{^/\.git.*+\n}m', '', $c);
$c .= "/.git* export-ignore\n";
file_put_contents($package.'/.gitattributes', $c);
@mkdir($package.'/.github');
file_put_contents($package.'/.github/PULL_REQUEST_TEMPLATE.md', <<<EOTXT
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
{$mainRepo}
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
EOTXT
);
@mkdir($package.'/.github/workflows');
file_put_contents($package.'/.github/workflows/check-subtree-split.yml', <<<EOTXT
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
{$mainRepo}
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
EOTXT
);
}
+26
View File
@@ -0,0 +1,26 @@
name: Verify Packages
on:
pull_request:
paths:
- extra/**
permissions:
contents: read
jobs:
verify:
name: Verify Packages
runs-on: Ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch branch from where the PR started
run: git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
- name: Verify subtree-splits are auto-closed
run: |
php .github/sync-packages.php
git add extra/
git diff --staged --exit-code || (echo '::error::Please run "php .github/sync-packages.php".' && exit 1)
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
+8
View File
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}
+1
View File
@@ -1,2 +1,3 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
/.git* export-ignore
@@ -0,0 +1,8 @@
Please do not submit any Pull Requests here. They will be closed.
---
Please submit your PR here instead:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
@@ -0,0 +1,33 @@
name: Check subtree split
on:
pull_request_target:
jobs:
close-pull-request:
runs-on: ubuntu-latest
steps:
- name: Close pull request
uses: actions/github-script@v6
with:
script: |
if (context.repo.owner === "twigphp") {
github.rest.issues.createComment({
owner: "twigphp",
repo: context.repo.repo,
issue_number: context.issue.number,
body: `
Thanks for your Pull Request! We love contributions.
However, you should instead open your PR on the main repository:
https://github.com/twigphp/Twig
This repository is what we call a "subtree split": a read-only subset of that main repository.
We're looking forward to your PR there!
`
});
github.rest.pulls.update({
owner: "twigphp",
repo: context.repo.repo,
pull_number: context.issue.number,
state: "closed"
});
}