mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-12-28 08:51:31 -06:00
Compare commits
2 Commits
70ec481305
...
f6e9028fdb
Author | SHA1 | Date | |
---|---|---|---|
|
f6e9028fdb | ||
|
cfd2f54827 |
61
.github/workflows/close-old-issues.yaml
vendored
61
.github/workflows/close-old-issues.yaml
vendored
@ -3,10 +3,12 @@ name: Close Inactive Issues
|
|||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * *' # Run daily
|
- cron: '0 0 * * *' # Run daily
|
||||||
|
workflow_dispatch: # This line enables manual triggering
|
||||||
jobs:
|
jobs:
|
||||||
close-issues:
|
close-issues:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write # Ensure necessary permissions for issues
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Close inactive issues
|
- name: Close inactive issues
|
||||||
@ -14,43 +16,50 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
const octokit = github.getOctokit();
|
const octokit = github;
|
||||||
|
|
||||||
// Get the repository owner and name
|
// Get the repository owner and name
|
||||||
const { owner, repo } = github.context.repo;
|
const { owner, repo } = context.repo;
|
||||||
|
|
||||||
// Define the inactivity period (14 days)
|
// Define the inactivity period (14 days)
|
||||||
const inactivityPeriod = new Date();
|
const inactivityPeriod = new Date();
|
||||||
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
|
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
|
||||||
|
|
||||||
async function run() {
|
try {
|
||||||
// Get all open issues
|
// Get all open issues with pagination
|
||||||
const issues = await octokit.issues.listForRepo({
|
for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
|
||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
state: 'open',
|
state: 'open',
|
||||||
});
|
})) {
|
||||||
|
const issues = response.data;
|
||||||
|
|
||||||
// Close issues inactive for more than the inactivity period
|
// Close issues inactive for more than the inactivity period
|
||||||
for (const issue of issues.data) {
|
for (const issue of issues) {
|
||||||
const lastCommentDate = issue.updated_at;
|
const lastCommentDate = issue.updated_at;
|
||||||
if (new Date(lastCommentDate) < inactivityPeriod) {
|
if (new Date(lastCommentDate) < inactivityPeriod) {
|
||||||
// Close the issue and add a comment
|
try {
|
||||||
await octokit.issues.update({
|
// Close the issue
|
||||||
owner,
|
await octokit.rest.issues.update({
|
||||||
repo,
|
owner,
|
||||||
issue_number: issue.number,
|
repo,
|
||||||
state: 'closed',
|
issue_number: issue.number,
|
||||||
});
|
state: 'closed',
|
||||||
|
});
|
||||||
|
|
||||||
await octokit.issues.createComment({
|
// Add a comment
|
||||||
owner,
|
await octokit.rest.issues.createComment({
|
||||||
repo,
|
owner,
|
||||||
issue_number: issue.number,
|
repo,
|
||||||
body: 'Closed due to inactivity',
|
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));
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Author : Chris Titus @christitustech
|
Author : Chris Titus @christitustech
|
||||||
Runspace Author: @DeveloperDurp
|
Runspace Author: @DeveloperDurp
|
||||||
GitHub : https://github.com/ChrisTitusTech
|
GitHub : https://github.com/ChrisTitusTech
|
||||||
Version : 24.02.12
|
Version : 24.02.21
|
||||||
#>
|
#>
|
||||||
param (
|
param (
|
||||||
[switch]$Debug,
|
[switch]$Debug,
|
||||||
@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms
|
|||||||
# Variable to sync between runspaces
|
# Variable to sync between runspaces
|
||||||
$sync = [Hashtable]::Synchronized(@{})
|
$sync = [Hashtable]::Synchronized(@{})
|
||||||
$sync.PSScriptRoot = $PSScriptRoot
|
$sync.PSScriptRoot = $PSScriptRoot
|
||||||
$sync.version = "24.02.12"
|
$sync.version = "24.02.21"
|
||||||
$sync.configs = @{}
|
$sync.configs = @{}
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user