suppression github
This commit is contained in:
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,2 +0,0 @@
|
|||||||
ko_fi: koconnor
|
|
||||||
custom: https://www.klipper3d.org/Sponsors.html#klipper-developers
|
|
||||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
11
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,11 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: Contact Directions
|
|
||||||
url: https://www.klipper3d.org/Contact.html
|
|
||||||
about: Have a question? Need help? Start here.
|
|
||||||
- name: Klipper Forum
|
|
||||||
url: https://community.klipper3d.org/
|
|
||||||
about: Klipper community Discourse server.
|
|
||||||
- name: Klipper Chat
|
|
||||||
url: https://discord.klipper3d.org/
|
|
||||||
about: Klipper community Discord chat server.
|
|
||||||
27
.github/workflows/build-test.yaml
vendored
27
.github/workflows/build-test.yaml
vendored
@@ -1,27 +0,0 @@
|
|||||||
# Perform continuous integration tests on updates and pull requests
|
|
||||||
name: Build test
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup cache
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: ci_cache
|
|
||||||
key: ${{ runner.os }}-build-${{ hashFiles('scripts/ci-install.sh') }}
|
|
||||||
|
|
||||||
- name: Prepare tests
|
|
||||||
run: ./scripts/ci-install.sh
|
|
||||||
|
|
||||||
- name: Test
|
|
||||||
run: ./scripts/ci-build.sh 2>&1
|
|
||||||
|
|
||||||
- name: Upload micro-controller data dictionaries
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: data-dict
|
|
||||||
path: ci_build/dict
|
|
||||||
43
.github/workflows/invalid-label-bot.yaml
vendored
43
.github/workflows/invalid-label-bot.yaml
vendored
@@ -1,43 +0,0 @@
|
|||||||
# Add a comment to github issues marked with the "not on github" label
|
|
||||||
name: "Add comment to issues marked 'not on github'"
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [labeled]
|
|
||||||
jobs:
|
|
||||||
comment:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
if (context.payload.label.name != "not on github")
|
|
||||||
return;
|
|
||||||
msg = "It looks like this ticket is a request for help"
|
|
||||||
+ " (or similar)."
|
|
||||||
+ " Many helpful people will not see your message here and you"
|
|
||||||
+ " are unlikely to get a useful response."
|
|
||||||
+ " Instead, see the contact directions at:"
|
|
||||||
+ " https://www.klipper3d.org/Contact.html"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "We use github to share the results of work done to"
|
|
||||||
+ " improve Klipper. We don't use github for requests."
|
|
||||||
+ " (In particular, we don't use github for feature"
|
|
||||||
+ " requests, to answer questions, nor to help diagnose"
|
|
||||||
+ " problems with a printer.)"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Please follow the directions at:"
|
|
||||||
+ " https://www.klipper3d.org/Contact.html"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "This ticket will be automatically closed."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Best regards,\n"
|
|
||||||
+ "~ Your friendly GitIssueBot"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "PS: I'm just an automated script, not a human being.";
|
|
||||||
github.rest.issues.createComment({
|
|
||||||
issue_number: context.issue.number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
body: msg
|
|
||||||
})
|
|
||||||
34
.github/workflows/klipper3d-deploy.yaml
vendored
34
.github/workflows/klipper3d-deploy.yaml
vendored
@@ -1,34 +0,0 @@
|
|||||||
name: klipper3d deploy
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "0 0 * * *"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- docs/**
|
|
||||||
- .github/workflows/klipper3d-deploy.yaml
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Setup python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.8'
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: ~/.cache/pip
|
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('docs/_klipper3d/mkdocs-requirements.txt') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pip-
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install -r docs/_klipper3d/mkdocs-requirements.txt
|
|
||||||
- name: Build MkDocs Pages
|
|
||||||
run: docs/_klipper3d/build-translations.sh
|
|
||||||
- name: Deploy
|
|
||||||
uses: JamesIves/github-pages-deploy-action@v4.4.3
|
|
||||||
with:
|
|
||||||
branch: gh-pages # The branch the action should deploy to.
|
|
||||||
folder: site # The folder the action should deploy.
|
|
||||||
66
.github/workflows/reviewer-needed-label.yaml
vendored
66
.github/workflows/reviewer-needed-label.yaml
vendored
@@ -1,66 +0,0 @@
|
|||||||
# Add a comment to github PRs marked with the "reviewer needed" label
|
|
||||||
name: "Add comment to PRs marked 'reviewer needed'"
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [labeled]
|
|
||||||
jobs:
|
|
||||||
add_comment:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
if (context.payload.label.name != "reviewer needed")
|
|
||||||
return;
|
|
||||||
if (context.payload.pull_request.assignees.length > 0)
|
|
||||||
return;
|
|
||||||
msg = "Thank you for your contribution to Klipper."
|
|
||||||
+ " Unfortunately, a reviewer has not assigned themselves to"
|
|
||||||
+ " this GitHub Pull Request. All Pull Requests are reviewed"
|
|
||||||
+ " before merging, and a reviewer will need to volunteer."
|
|
||||||
+ " Further information is available at:"
|
|
||||||
+ " https://www.klipper3d.org/CONTRIBUTING.html"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "There are some steps that you can take now:"
|
|
||||||
+ "\n"
|
|
||||||
+ "1. Perform a self-review of your Pull Request by following"
|
|
||||||
+ " the steps at:"
|
|
||||||
+ " https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review"
|
|
||||||
+ "\n"
|
|
||||||
+ " If you have completed a self-review, be sure to state the"
|
|
||||||
+ " results of that self-review explicitly in the Pull Request"
|
|
||||||
+ " comments. A reviewer is more likely to participate if the"
|
|
||||||
+ " bulk of a review has already been completed."
|
|
||||||
+ "\n"
|
|
||||||
+ "2. Consider opening a topic on the [Klipper Discourse]"
|
|
||||||
+ "(https://www.klipper3d.org/Contact.html#discourse-forum)"
|
|
||||||
+ " server to discuss this work. The Discourse server is a good"
|
|
||||||
+ " place to discuss development ideas and to engage users"
|
|
||||||
+ " interested in testing. Reviewers are more likely to"
|
|
||||||
+ " prioritize Pull Requests with an active community of users."
|
|
||||||
+ "\n"
|
|
||||||
+ "3. Consider helping out reviewers by reviewing other Klipper"
|
|
||||||
+ " Pull Requests. Taking the time to perform a careful and"
|
|
||||||
+ " detailed review of others work is appreciated. Regular"
|
|
||||||
+ " contributors are more likely to prioritize the"
|
|
||||||
+ " contributions of other regular contributors."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Unfortunately, if a reviewer does not assign themselves to"
|
|
||||||
+ " this GitHub Pull Request then it will be automatically"
|
|
||||||
+ " closed. If this happens, then it is a good idea to move"
|
|
||||||
+ " further discussion to the [Klipper Discourse]"
|
|
||||||
+ "(https://www.klipper3d.org/Contact.html#discourse-forum)"
|
|
||||||
+ " server. Reviewers can reach out on that forum to let you"
|
|
||||||
+ " know if they are interested and when they are available."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Best regards,\n"
|
|
||||||
+ "~ Your friendly GitIssueBot"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "PS: I'm just an automated script, not a human being.";
|
|
||||||
github.rest.issues.createComment({
|
|
||||||
issue_number: context.issue.number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
body: msg
|
|
||||||
})
|
|
||||||
342
.github/workflows/stale-issue-bot.yaml
vendored
342
.github/workflows/stale-issue-bot.yaml
vendored
@@ -1,342 +0,0 @@
|
|||||||
# Close and warn on tickets that have become stale
|
|
||||||
name: "Close stale tickets"
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 */12 * * *'
|
|
||||||
jobs:
|
|
||||||
# Check for stale issues (no updates in 5 weeks)
|
|
||||||
stale:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@v8
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
stale-issue-message: |
|
|
||||||
Hello,
|
|
||||||
|
|
||||||
It looks like there hasn't been any recent updates on this
|
|
||||||
Klipper github issue. If you created this issue and no
|
|
||||||
longer consider it open, then please login to github and
|
|
||||||
close the issue. Otherwise, if there is no further activity
|
|
||||||
on this thread then it will be automatically closed in a few
|
|
||||||
days.
|
|
||||||
|
|
||||||
Best regards,
|
|
||||||
|
|
||||||
~ Your friendly GitIssueBot
|
|
||||||
|
|
||||||
PS: I'm just an automated script, not a human being.
|
|
||||||
|
|
||||||
exempt-issue-labels: 'enhancement,bug'
|
|
||||||
days-before-stale: 35
|
|
||||||
days-before-close: 7
|
|
||||||
days-before-pr-stale: -1
|
|
||||||
days-before-pr-close: -1
|
|
||||||
# Close tickets marked with "not on github" label
|
|
||||||
close_not_on_github:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const expireMillis = 1000 * 60 * 60 * 36;
|
|
||||||
const curtime = new Date().getTime();
|
|
||||||
const issues = await github.rest.issues.listForRepo({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
state: 'open',
|
|
||||||
labels: 'not on github',
|
|
||||||
per_page: 100,
|
|
||||||
page: 1
|
|
||||||
});
|
|
||||||
for (const issue of issues.data.values()) {
|
|
||||||
const updatetime = new Date(issue.updated_at).getTime();
|
|
||||||
if (curtime < updatetime + expireMillis)
|
|
||||||
continue;
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
state: 'closed'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
# # Close tickets marked with "reviewer needed" label for 2+ weeks
|
|
||||||
# close_reviewer_needed:
|
|
||||||
# if: github.repository == 'Klipper3d/klipper'
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/github-script@v6
|
|
||||||
# with:
|
|
||||||
# script: |
|
|
||||||
# const issues = await github.rest.issues.listForRepo({
|
|
||||||
# owner: context.repo.owner,
|
|
||||||
# repo: context.repo.repo,
|
|
||||||
# state: 'open',
|
|
||||||
# labels: 'reviewer needed',
|
|
||||||
# assignee: 'none',
|
|
||||||
# per_page: 100,
|
|
||||||
# page: 1
|
|
||||||
# });
|
|
||||||
# msg = "Unfortunately a reviewer has not assigned themselves to"
|
|
||||||
# + " this GitHub Pull Request and it is therefore being"
|
|
||||||
# + " closed. It is a good idea to move"
|
|
||||||
# + " further discussion to the [Klipper Discourse]"
|
|
||||||
# + "(https://www.klipper3d.org/Contact.html#discourse-forum)"
|
|
||||||
# + " server. Reviewers can reach out on that forum to let you"
|
|
||||||
# + " know if they are interested and when they are available."
|
|
||||||
# + "\n\n"
|
|
||||||
# + "Best regards,\n"
|
|
||||||
# + "~ Your friendly GitIssueBot"
|
|
||||||
# + "\n\n"
|
|
||||||
# + "PS: I'm just an automated script, not a human being.";
|
|
||||||
# const expireMillis = 1000 * 60 * 60 * 24 * 14;
|
|
||||||
# const curtime = new Date().getTime();
|
|
||||||
# for (const issue of issues.data.values()) {
|
|
||||||
# const updatetime = new Date(issue.updated_at).getTime();
|
|
||||||
# if (curtime < updatetime + expireMillis)
|
|
||||||
# continue;
|
|
||||||
# await github.rest.issues.createComment({
|
|
||||||
# owner: context.repo.owner,
|
|
||||||
# repo: context.repo.repo,
|
|
||||||
# issue_number: issue.number,
|
|
||||||
# body: msg
|
|
||||||
# });
|
|
||||||
# await github.rest.issues.update({
|
|
||||||
# owner: context.repo.owner,
|
|
||||||
# repo: context.repo.repo,
|
|
||||||
# issue_number: issue.number,
|
|
||||||
# state: 'closed'
|
|
||||||
# });
|
|
||||||
# }
|
|
||||||
# Mark unassigned PRs that are idle for 2 weeks
|
|
||||||
mark_reviewer_needed:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
msg = "Thank you for your contribution to Klipper."
|
|
||||||
+ " Unfortunately, a reviewer has not assigned themselves to"
|
|
||||||
+ " this GitHub Pull Request. All Pull Requests are reviewed"
|
|
||||||
+ " before merging, and a reviewer will need to volunteer."
|
|
||||||
+ " Further information is available at:"
|
|
||||||
+ " https://www.klipper3d.org/CONTRIBUTING.html"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "There are some steps that you can take now:"
|
|
||||||
+ "\n"
|
|
||||||
+ "1. Perform a self-review of your Pull Request by following"
|
|
||||||
+ " the steps at:"
|
|
||||||
+ " https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review"
|
|
||||||
+ "\n"
|
|
||||||
+ " If you have completed a self-review, be sure to state the"
|
|
||||||
+ " results of that self-review explicitly in the Pull Request"
|
|
||||||
+ " comments. A reviewer is more likely to participate if the"
|
|
||||||
+ " bulk of a review has already been completed."
|
|
||||||
+ "\n"
|
|
||||||
+ "2. Consider opening a topic on the [Klipper Discourse]"
|
|
||||||
+ "(https://www.klipper3d.org/Contact.html#discourse-forum)"
|
|
||||||
+ " server to discuss this work. The Discourse server is a good"
|
|
||||||
+ " place to discuss development ideas and to engage users"
|
|
||||||
+ " interested in testing. Reviewers are more likely to"
|
|
||||||
+ " prioritize Pull Requests with an active community of users."
|
|
||||||
+ "\n"
|
|
||||||
+ "3. Consider helping out reviewers by reviewing other Klipper"
|
|
||||||
+ " Pull Requests. Taking the time to perform a careful and"
|
|
||||||
+ " detailed review of others work is appreciated. Regular"
|
|
||||||
+ " contributors are more likely to prioritize the"
|
|
||||||
+ " contributions of other regular contributors."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Unfortunately, if a reviewer does not assign themselves to"
|
|
||||||
+ " this GitHub Pull Request then it will be automatically"
|
|
||||||
+ " closed. If this happens, then it is a good idea to move"
|
|
||||||
+ " further discussion to the [Klipper Discourse]"
|
|
||||||
+ "(https://www.klipper3d.org/Contact.html#discourse-forum)"
|
|
||||||
+ " server. Reviewers can reach out on that forum to let you"
|
|
||||||
+ " know if they are interested and when they are available."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Best regards,\n"
|
|
||||||
+ "~ Your friendly GitIssueBot"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "PS: I'm just an automated script, not a human being.";
|
|
||||||
const create_check = new Date("2022-03-01T00:00:00Z").getTime();
|
|
||||||
const expireMillis = 1000 * 60 * 60 * 24 * 14;
|
|
||||||
const curtime = new Date().getTime();
|
|
||||||
const pulls_req = await github.rest.pulls.list({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
per_page: 100,
|
|
||||||
page: 1
|
|
||||||
});
|
|
||||||
for (const pr of pulls_req.data.values()) {
|
|
||||||
const createtime = new Date(pr.created_at).getTime();
|
|
||||||
if (createtime < create_check)
|
|
||||||
continue;
|
|
||||||
const updatetime = new Date(pr.updated_at).getTime();
|
|
||||||
if (curtime < updatetime + expireMillis)
|
|
||||||
continue;
|
|
||||||
if (pr.labels.length > 0)
|
|
||||||
continue;
|
|
||||||
if (pr.assignees.length > 0)
|
|
||||||
continue;
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: pr.number,
|
|
||||||
body: msg
|
|
||||||
});
|
|
||||||
await github.rest.issues.addLabels({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: pr.number,
|
|
||||||
labels: ['reviewer needed']
|
|
||||||
});
|
|
||||||
}
|
|
||||||
# Close tickets marked with "resolved" label
|
|
||||||
close_resolved:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
msg = "This ticket is being closed because the underlying issue"
|
|
||||||
+ " is now thought to be resolved."
|
|
||||||
+ "\n\n"
|
|
||||||
+ "Best regards,\n"
|
|
||||||
+ "~ Your friendly GitIssueBot"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "PS: I'm just an automated script, not a human being.";
|
|
||||||
const expireMillis = 1000 * 60 * 60 * 24 * 7;
|
|
||||||
const curtime = new Date().getTime();
|
|
||||||
const issues = await github.rest.issues.listForRepo({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
state: 'open',
|
|
||||||
labels: 'resolved',
|
|
||||||
per_page: 100,
|
|
||||||
page: 1
|
|
||||||
});
|
|
||||||
for (const issue of issues.data.values()) {
|
|
||||||
const updatetime = new Date(issue.updated_at).getTime();
|
|
||||||
if (curtime < updatetime + expireMillis)
|
|
||||||
continue;
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
body: msg
|
|
||||||
});
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
state: 'closed'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
# Close PRs marked with "not mainline" label
|
|
||||||
close_not_mainline:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
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.";
|
|
||||||
const expireMillis = 1000 * 60 * 60 * 24 * 7;
|
|
||||||
const curtime = new Date().getTime();
|
|
||||||
const issues = await github.rest.issues.listForRepo({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
state: 'open',
|
|
||||||
labels: 'not mainline',
|
|
||||||
per_page: 100,
|
|
||||||
page: 1
|
|
||||||
});
|
|
||||||
for (const issue of issues.data.values()) {
|
|
||||||
const updatetime = new Date(issue.updated_at).getTime();
|
|
||||||
if (curtime < updatetime + expireMillis)
|
|
||||||
continue;
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
body: msg
|
|
||||||
});
|
|
||||||
await github.rest.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:
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
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.";
|
|
||||||
const expireMillis = 1000 * 60 * 60 * 24 * 21;
|
|
||||||
const curtime = new Date().getTime();
|
|
||||||
const issues = await github.rest.issues.listForRepo({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
state: 'open',
|
|
||||||
labels: 'pending feedback',
|
|
||||||
per_page: 100,
|
|
||||||
page: 1
|
|
||||||
});
|
|
||||||
for (const issue of issues.data.values()) {
|
|
||||||
const updatetime = new Date(issue.updated_at).getTime();
|
|
||||||
if (curtime < updatetime + expireMillis)
|
|
||||||
continue;
|
|
||||||
await github.rest.issues.addLabels({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
labels: ['inactive']
|
|
||||||
});
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
body: msg
|
|
||||||
});
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
issue_number: issue.number,
|
|
||||||
state: 'closed'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
# Lock closed issues after 6 months of inactivity and PRs after 1 year.
|
|
||||||
lock:
|
|
||||||
name: Lock Closed Issues
|
|
||||||
if: github.repository == 'Klipper3d/klipper'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: dessant/lock-threads@v4
|
|
||||||
with:
|
|
||||||
issue-inactive-days: '180'
|
|
||||||
issue-lock-reason: ''
|
|
||||||
pr-inactive-days: '365'
|
|
||||||
pr-lock-reason: ''
|
|
||||||
Reference in New Issue
Block a user