diff --git a/.github/workflows/issue-manager.yml b/.github/workflows/issue-manager.yml deleted file mode 100644 index 3cfdc5b18..000000000 --- a/.github/workflows/issue-manager.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Issue Manager - -on: - workflow_dispatch: - schedule: - - cron: "17 5 * * 1-5" # run at 5:17 on Monday to Friday - # We only use the issue manager for auto-closing, so we only need the cron trigger. - # issue_comment: - # types: - # - created - # - edited - # issues: - # types: - # - labeled - -jobs: - issue-manager: - runs-on: ubuntu-latest - steps: - - uses: tiangolo/issue-manager@0.4.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - config: > - { - "$schema": "https://raw.githubusercontent.com/tiangolo/issue-manager/master/schema.json", - "waiting for input": { - "delay": "P30DT0H0M0S", - "message": "Auto-closing this issue after waiting for input for a month. If anyone finds the time to provide the requested information, please re-open the issue and we will continue handling it.", - "remove_label_on_comment": true, - "remove_label_on_close": false - }, - "waiting for fix confirmation": { - "delay": "P30DT0H0M0S", - "message": "Auto-closing this issue after waiting for a fix confirmation for a month. If anyone still experiences this issue, please re-open the issue with updated information so we can continue working on a fix.", - "remove_label_on_comment": true, - "remove_label_on_close": false - }, - "waiting for release": { - "delay": "P3650DT0H0M0S", - "message": "That was 10 years ago, I think we can close this now.", - "remove_label_on_comment": true, - "remove_label_on_close": false - }, - "waiting for resources": { - "delay": "P3650DT0H0M0S", - "message": "That was 10 years ago, I think we can close this now.", - "remove_label_on_comment": true, - "remove_label_on_close": false - } - } diff --git a/.github/workflows/issues-first-greet.yml b/.github/workflows/issues-first-greet.yml new file mode 100644 index 000000000..c018fcf1a --- /dev/null +++ b/.github/workflows/issues-first-greet.yml @@ -0,0 +1,26 @@ +# This workflow responds to first time posters with a greeting message. +# Docs: https://github.com/actions/first-interaction +name: Greet New Users + +# This workflow is triggered when a new issue is created. +on: + issues: + types: opened + +permissions: + contents: read + issues: write + +jobs: + greet: + runs-on: ubuntu-latest + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + # Respond to first time issue raisers. + issue-message: | + Greetings and welcome to our community! As this is the first issue you opened here, we wanted to share some useful infos with you: + + - 🗣️ Our community on [Discord](https://discord.gg/safing) is super helpful and active. We also have an AI-enabled support bot that knows Portmaster well and can give you immediate help. + - 📖 The [Wiki](https://wiki.safing.io/) answers all common questions and has many important details. If you can't find an answer there, let us know, so we can add anything that's missing. diff --git a/.github/workflows/issues-label-actions.yml b/.github/workflows/issues-label-actions.yml new file mode 100644 index 000000000..4a031b5a6 --- /dev/null +++ b/.github/workflows/issues-label-actions.yml @@ -0,0 +1,22 @@ +# This workflow responds with a message when certain labels are added to an issue or PR. +# Docs: https://github.com/dessant/label-actions +name: Label Actions + +# This workflow is triggered when a label is added to an issue. +on: + issues: + types: labeled + +permissions: + contents: read + issues: write + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/label-actions@v3 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + config-path: ".github/label-actions.yml" + process-only: "issues" diff --git a/.github/workflows/issues-stale.yml b/.github/workflows/issues-stale.yml new file mode 100644 index 000000000..7153d00ee --- /dev/null +++ b/.github/workflows/issues-stale.yml @@ -0,0 +1,38 @@ +# This workflow warns and then closes stale issues and PRs. +# Docs: https://github.com/actions/stale +name: Close Stale Issues + +on: + schedule: + - cron: "17 5 * * 1-5" # run at 5:17 (UTC) on Monday to Friday + workflow_dispatch: + +permissions: + contents: read + issues: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v8 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + # Handle stale issues + stale-issue-label: 'stale' + # Exemptions + exempt-all-issue-assignees: true + exempt-issue-labels: 'support,dependencies,pinned,security' + # Mark as stale + days-before-issue-stale: 63 # 2 months / 9 weeks + stale-issue-message: | + This issue has been automatically marked as inactive because it has not had activity in the past two months. + + If no further activity occurs, this issue will be automatically closed in one week in order to increase our focus on active topics. + # Close + days-before-issue-close: 7 # 1 week + close-issue-message: | + This issue has been automatically closed because it has not had recent activity. Thank you for your contributions. + + If the issue has not been resolved, you can [find more information in our Wiki](https://wiki.safing.io/) or [continue the conversation on our Discord](https://discord.gg/safing). + # TODO: Handle stale PRs