From cfd2f54827112546af5c360e6aa7a7bde7143a48 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Wed, 21 Feb 2024 11:12:49 -0600 Subject: [PATCH] Bring workflow to test (#1638) * Update close-old-issues.yaml * Compile Winutil * Update close-old-issues.yaml * Update close-old-issues.yaml * Update close-old-issues.yaml --------- Co-authored-by: ChrisTitusTech --- .github/workflows/close-old-issues.yaml | 61 ++++++++++++++----------- winutil.ps1 | 4 +- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/.github/workflows/close-old-issues.yaml b/.github/workflows/close-old-issues.yaml index 5b472bc0..1b129a0a 100644 --- a/.github/workflows/close-old-issues.yaml +++ b/.github/workflows/close-old-issues.yaml @@ -3,10 +3,12 @@ name: Close Inactive Issues on: schedule: - cron: '0 0 * * *' # Run daily - + workflow_dispatch: # This line enables manual triggering jobs: close-issues: runs-on: ubuntu-latest + permissions: + issues: write # Ensure necessary permissions for issues steps: - name: Close inactive issues @@ -14,43 +16,50 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - const octokit = github.getOctokit(); + const octokit = github; // Get the repository owner and name - const { owner, repo } = github.context.repo; + const { owner, repo } = context.repo; // Define the inactivity period (14 days) const inactivityPeriod = new Date(); inactivityPeriod.setDate(inactivityPeriod.getDate() - 14); - async function run() { - // Get all open issues - const issues = await octokit.issues.listForRepo({ + try { + // Get all open issues with pagination + for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, { owner, repo, state: 'open', - }); + })) { + const issues = response.data; - // Close issues inactive for more than the inactivity period - for (const issue of issues.data) { - const lastCommentDate = issue.updated_at; - if (new Date(lastCommentDate) < inactivityPeriod) { - // Close the issue and add a comment - await octokit.issues.update({ - owner, - repo, - issue_number: issue.number, - state: 'closed', - }); + // Close issues inactive for more than the inactivity period + for (const issue of issues) { + const lastCommentDate = issue.updated_at; + if (new Date(lastCommentDate) < inactivityPeriod) { + try { + // Close the issue + await octokit.rest.issues.update({ + owner, + repo, + issue_number: issue.number, + state: 'closed', + }); - await octokit.issues.createComment({ - owner, - repo, - issue_number: issue.number, - body: 'Closed due to inactivity', - }); + // Add a comment + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number: issue.number, + body: 'Closed due to inactivity', + }); + } catch (error) { + console.error(`Error updating or commenting on issue #${issue.number}: ${error}`); + } + } } } + } catch (error) { + console.error(`Error fetching issues: ${error}`); } - - run().catch(error => console.error(error)); diff --git a/winutil.ps1 b/winutil.ps1 index 0a93b6a2..1fba3f53 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10,7 +10,7 @@ Author : Chris Titus @christitustech Runspace Author: @DeveloperDurp GitHub : https://github.com/ChrisTitusTech - Version : 24.02.12 + Version : 24.02.20 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.02.12" +$sync.version = "24.02.20" $sync.configs = @{} $sync.ProcessRunning = $false