[Bug] macOS/iOS - no exit nodes available #757
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Needs More Info - Timer | |
| on: | |
| schedule: | |
| - cron: "0 0 * * *" # Daily at midnight UTC | |
| issue_comment: | |
| types: [created] | |
| workflow_dispatch: | |
| jobs: | |
| # When a non-bot user comments on a needs-more-info issue, remove the label. | |
| remove-label-on-response: | |
| if: >- | |
| github.repository == 'juanfont/headscale' && | |
| github.event_name == 'issue_comment' && | |
| github.event.comment.user.type != 'Bot' && | |
| contains(github.event.issue.labels.*.name, 'needs-more-info') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - name: Remove needs-more-info label | |
| run: gh issue edit "$NUMBER" --remove-label needs-more-info | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_REPO: ${{ github.repository }} | |
| NUMBER: ${{ github.event.issue.number }} | |
| # On schedule, close issues that have had no human response for 3 days. | |
| close-stale: | |
| if: >- | |
| github.repository == 'juanfont/headscale' && | |
| github.event_name != 'issue_comment' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - uses: hustcer/setup-nu@920172d92eb04671776f3ba69d605d3b09351c30 # v3.22 | |
| with: | |
| version: "*" | |
| - name: Close stale needs-more-info issues | |
| shell: nu {0} | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_REPO: ${{ github.repository }} | |
| run: | | |
| let issues = (gh issue list | |
| --repo $env.GH_REPO | |
| --label "needs-more-info" | |
| --state open | |
| --json number | |
| | from json) | |
| for issue in $issues { | |
| let number = $issue.number | |
| print $"Checking issue #($number)" | |
| # Find when needs-more-info was last added | |
| let events = (gh api $"repos/($env.GH_REPO)/issues/($number)/events" | |
| --paginate | from json) | |
| let label_event = ($events | |
| | where event == "labeled" | |
| | where label.name == "needs-more-info" | |
| | last) | |
| let label_added_at = ($label_event.created_at | into datetime) | |
| # Check for non-bot comments after the label was added | |
| let comments = (gh api $"repos/($env.GH_REPO)/issues/($number)/comments" | |
| --paginate | from json) | |
| let human_responses = ($comments | |
| | where user.type != "Bot" | |
| | where { ($in.created_at | into datetime) > $label_added_at }) | |
| if ($human_responses | length) > 0 { | |
| print $" Human responded, removing label" | |
| gh issue edit $number --repo $env.GH_REPO --remove-label needs-more-info | |
| continue | |
| } | |
| # Check if 3 days have passed | |
| let elapsed = (date now) - $label_added_at | |
| if $elapsed < 3day { | |
| print $" Only ($elapsed | format duration day) elapsed, skipping" | |
| continue | |
| } | |
| print $" No response for ($elapsed | format duration day), closing" | |
| let message = [ | |
| "This issue has been automatically closed because no additional information was provided within 3 days." | |
| "" | |
| "If you have the requested information, please open a new issue and include the debug information requested above." | |
| "" | |
| "Thank you for your understanding." | |
| ] | str join "\n" | |
| gh issue comment $number --repo $env.GH_REPO --body $message | |
| gh issue close $number --repo $env.GH_REPO --reason "not planned" | |
| gh issue edit $number --repo $env.GH_REPO --remove-label needs-more-info | |
| } |