mirror of https://github.com/Desuuuu/klipper.git
workflows: Add script to manage "not mainline" and "pending feedback" PRs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
dd1b1f496c
commit
f2dd677491
|
@ -99,3 +99,93 @@ jobs:
|
|||
state: 'closed'
|
||||
});
|
||||
}
|
||||
# Close PRs marked with "not mainline" label
|
||||
close_not_mainline:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
script: |
|
||||
const issues = await github.issues.listForRepo({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'open',
|
||||
labels: 'not mainline',
|
||||
per_page: 100,
|
||||
page: 1
|
||||
});
|
||||
const expireMillis = 1000 * 60 * 60 * 24 * 7;
|
||||
const curtime = new Date().getTime();
|
||||
for (var issue of issues.data.values()) {
|
||||
const updatetime = new Date(issue.updated_at).getTime();
|
||||
if (curtime < updatetime + expireMillis)
|
||||
continue;
|
||||
msg = "This PR is being closed because it is currently not"
|
||||
+ " considered a good match for the master Klipper"
|
||||
+ " repository."
|
||||
+ "\n\n"
|
||||
+ "Best regards,\n"
|
||||
+ "~ Your friendly GitIssueBot"
|
||||
+ "\n\n"
|
||||
+ "PS: I'm just an automated script, not a human being.";
|
||||
await github.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
body: msg
|
||||
});
|
||||
await github.issues.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
state: 'closed'
|
||||
});
|
||||
}
|
||||
# Mark (and close) PRs with "pending feedback" for 3+ weeks
|
||||
mark_inactive:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
script: |
|
||||
const issues = await github.issues.listForRepo({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'open',
|
||||
labels: 'pending feedback',
|
||||
per_page: 100,
|
||||
page: 1
|
||||
});
|
||||
const expireMillis = 1000 * 60 * 60 * 24 * 21;
|
||||
const curtime = new Date().getTime();
|
||||
for (var issue of issues.data.values()) {
|
||||
const updatetime = new Date(issue.updated_at).getTime();
|
||||
if (curtime < updatetime + expireMillis)
|
||||
continue;
|
||||
msg = "It looks like this GitHub Pull Request has become"
|
||||
+ " inactive. If there are any further updates, you can"
|
||||
" " add a comment here or open a new ticket."
|
||||
+ "\n\n"
|
||||
+ "Best regards,\n"
|
||||
+ "~ Your friendly GitIssueBot"
|
||||
+ "\n\n"
|
||||
+ "PS: I'm just an automated script, not a human being.";
|
||||
await github.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
labels: ['inactive']
|
||||
});
|
||||
await github.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
body: msg
|
||||
});
|
||||
await github.issues.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
state: 'closed'
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue