diff --git a/.github/workflows/issues-stale.yml b/.github/workflows/issues-stale.yml
index f82cbbc1..e65e30d2 100755
--- a/.github/workflows/issues-stale.yml
+++ b/.github/workflows/issues-stale.yml
@@ -3,19 +3,18 @@
# @author Aetherinox
# @url https://github.com/Aetherinox
# @usage creates repository labels if they are not yet installed
-# issues marked as stale after 30 days, given tag Status π Stale
-# inactive issues closed after 180 days, given tag Status π Locked
-# inactive pr closed after 365 days, given tag Status π Locked
-# issues marked stale after 30 days, given tag Status π Stale
-# issues marked closed 7 days after being marked stale, given tag Status π Autoclosed
+# issues marked as stale after 30 days, given tag Status βΊ Stale
+# inactive issues closed after 180 days, given tag Status βΊ Locked
+# inactive pr closed after 365 days, given tag Status βΊ Locked
+# issues marked stale after 30 days, given tag Status βΊ Stale
+# issues marked closed 7 days after being marked stale, given tag Status βΊ Autoclosed
#
# @notes This Github action must be activated manually. This workflow script will do the following:
-#
# - Scan issues / pull requests and make sure they have properly assigned labels:
-# - `Bug`
-# - `Feature`
-# - `Urgent`
-# - `Roadmap`
+# - `Bug`
+# - `Feature`
+# - `Urgent`
+# - `Roadmap`
#
# - Workflow script will then scan each pr or issue and mark them as `Stale`
# if they haven't had any replies in 30 days.
@@ -28,15 +27,15 @@
# secrets.PYPI_API_TOKEN self Pypi API token (production site) - https://pypi.org/
# secrets.PYPI_API_TEST_TOKEN self Pypi API token (test site) - https://test.pypi.org/
# secrets.SELF_DOCKERHUB_TOKEN self Dockerhub token
-# secrets.ORG_BINARYNINJA_TOKEN org github personal access token (fine-grained)
-# secrets.ORG_BINARYNINJA_TOKEN_CL org github personal access token (classic)
-# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN org dockerhub secret
-# secrets.ORG_BINARYNINJA_GITEA_TOKEN org gitea personal access token (classic) with package:write permission
-# secrets.BINARYSERV_GPG_KEY_ASC bot gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK
-# secrets.BINARYSERV_GPG_PASSPHRASE bot gpg private key passphrase
-# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES discord webhook to report release notifications from github to discord
-# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_WORKFLOWS discord webhook to report workflow notifications from github to discord
-# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_UPDATES discord webhook to report activity notifications from github to discord
+# secrets.ORG_TOKEN org github personal access token (fine-grained)
+# secrets.ORG_TOKEN_CL org github personal access token (classic)
+# secrets.ORG_DOCKERHUB_TOKEN org dockerhub secret
+# secrets.ORG_GITEA_TOKEN org gitea personal access token (classic) with package:write permission
+# secrets.BOT_GPG_KEY_ASC bot gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK
+# secrets.BOT_GPG_PASSPHRASE bot gpg private key passphrase
+# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_RELEASES discord webhook to report release notifications from github to discord
+# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_WORKFLOWS discord webhook to report workflow notifications from github to discord
+# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_UPDATES discord webhook to report activity notifications from github to discord
#
# @local these workflows can be tested locally through the use of `act`
# https://github.com/nektos/act
@@ -48,8 +47,8 @@
# act -W .github/workflows/issues-stale.yml -s TOKEN_CL=XXXXXXXXXX --pull=false
# #
-name: "π« Issues βΊ Stale"
-run-name: "π« Issues βΊ Stale"
+name: 'π« Issues βΊ Stale'
+run-name: 'π« Issues βΊ Stale'
# #
# triggers
@@ -65,68 +64,75 @@ on:
# #
env:
- PREFIX_BUG: "π Bug"
- PREFIX_DEPENDENCY: "Dependency"
- PREFIX_DOCS: "Docs"
- PREFIX_FEATURE: "π‘ Feature"
- PREFIX_GIT: "Git Action"
- PREFIX_PR: "PR"
- PREFIX_ROADMAP: "πΊοΈ Roadmap"
- PREFIX_INTERNAL: "Internal"
- PREFIX_URGENT: "β Urgent"
+ PREFIX_BUG: "π Bug"
+ PREFIX_DEPENDENCY: "Dependency"
+ PREFIX_DOCS: "Docs"
+ PREFIX_FEATURE: "π‘ Feature"
+ PREFIX_GIT: "Git Action"
+ PREFIX_PR: "PR"
+ PREFIX_ROADMAP: "πΊοΈ Roadmap"
+ PREFIX_INTERNAL: "Internal"
+ PREFIX_URGENT: "β Urgent"
- LABEL_BUG: "Type β¦ Bug"
- LABEL_DEPENDENCY: "Type β¦ Dependency"
- LABEL_DOCS: "Type β¦ Docs"
- LABEL_FEATURE: "Type β¦ Feature"
- LABEL_GIT: "Type β¦ Git Action"
- LABEL_PR: "Type β¦ Pull Request"
- LABEL_ROADMAP: "Type β¦ Roadmap"
- LABEL_INTERNAL: "Type β¦ Internal"
- LABEL_URGENT: "β Urgent"
+ LABEL_BUG: "Type βΊ Bug"
+ LABEL_DEPENDENCY: "Type βΊ Dependency"
+ LABEL_DOCS: "Type βΊ Docs"
+ LABEL_FEATURE: "Type βΊ Feature"
+ LABEL_GIT: "Type βΊ Git Action"
+ LABEL_PR: "Type βΊ Pull Request"
+ LABEL_ROADMAP: "Type βΊ Roadmap"
+ LABEL_INTERNAL: "Type βΊ Internal"
+ LABEL_LOCKED: "Status βΊ Locked"
+ LABEL_STALE: "Status βΊ Stale"
+ LABEL_AUTOCLOSE: "Status βΊ Autoclosed"
+ LABEL_ACCEPTED: "Status βΊ Accepted"
+ LABEL_REVIEW: "Status βΊ Review"
+ LABEL_PENDING: "Status βΊ Pending"
+ LABEL_AC_REVIEW: "AC βΊ Review Required"
+ LABEL_URGENT: "β Urgent"
- ASSIGN_USER: Aetherinox
- BOT_NAME_1: EuropaServ
- BOT_NAME_2: BinaryServ
- BOT_NAME_DEPENDABOT: dependabot[bot]
- BOT_NAME_RENOVATE: renovate[bot]
+ ASSIGN_USER: Aetherinox
+ BOT_NAME_1: EuropaServ
+ BOT_NAME_2: BinaryServ
+ BOT_NAME_DEPENDABOT: dependabot[bot]
+ BOT_NAME_RENOVATE: renovate[bot]
LABELS_JSON: |
[
- { "name": "AC βΊ Changes Made", "color": "8F1784", "description": "Requested changes have been made and are pending a re-scan" },
- { "name": "AC βΊ Changes Required", "color": "8F1784", "description": "Requires changes to be made to the package before being accepted" },
- { "name": "AC βΊ Failed", "color": "a61f2d", "description": "Autocheck failed to run through a complete cycle, requires investigation" },
- { "name": "AC βΊ Needs Rebase", "color": "8F1784", "description": "Due to the permissions on the requesting repo, this pull request must be rebased by the author" },
- { "name": "AC βΊ Passed", "color": "146b4a", "description": "Ready to be reviewed" },
- { "name": "AC βΊ Review Required", "color": "8F1784", "description": "PR needs to be reviewed by another person, after the requested changes have been made" },
- { "name": "AC βΊ Security Warning", "color": "761620", "description": "Does not conform to developer policies, or includes potentially dangerous code" },
- { "name": "AC βΊ Skipped Scan", "color": "8F1784", "description": "Author has skipped code scan" },
- { "name": "Status π Duplicate", "color": "75536b", "description": "Issue or pull request already exists" },
- { "name": "Status π Accepted", "color": "2e7539", "description": "This pull request has been accepted" },
- { "name": "Status π Autoclosed", "color": "3E0915", "description": "Originally stale and was autoclosed for no activity" },
- { "name": "Status π Denied", "color": "ba4058", "description": "Pull request has been denied" },
- { "name": "Status π Locked", "color": "550F45", "description": "Automatically locked by AdminServ for a prolonged period of inactivity" },
- { "name": "Status π Need Info", "color": "2E3C4C", "description": "Not enough information to resolve" },
- { "name": "Status π No Action", "color": "030406", "description": "Closed without any action being taken" },
- { "name": "Status π Pending", "color": "984b12", "description": "Pending pull request" },
- { "name": "Status π Released", "color": "1b6626", "description": "Issues or PR has been implemented and is now live" },
- { "name": "Status π Reopened", "color": "8a6f14", "description": "A previously closed PR which has been re-opened" },
- { "name": "Status π Review", "color": "9e1451", "description": "Currently pending review" },
- { "name": "Status π Stale", "color": "928282", "description": "Has not had any activity in over 30 days" },
- { "name": "Type β¦ Bug", "color": "9a2c2c", "description": "Something isn't working" },
- { "name": "Type β¦ Dependency", "color": "243759", "description": "Item is associated to dependency" },
- { "name": "Type β¦ Docs", "color": "0e588d", "description": "Improvements or modifications to docs" },
- { "name": "Type β¦ Feature", "color": "3c4e93", "description": "Feature request" },
- { "name": "Type β¦ Git Action", "color": "030406", "description": "GitHub Action / workflow" },
- { "name": "Type β¦ Pull Request", "color": "8F1784", "description": "Normal pull request" },
- { "name": "Type β¦ Roadmap", "color": "8F1784", "description": "Feature or bug currently planned for implementation" },
- { "name": "Type β¦ Internal", "color": "A51994", "description": "Assigned items are for internal developer use" },
- { "name": "Build β¦ Desktop", "color": "c7ca4a", "description": "Specific to desktop" },
- { "name": "Build β¦ Linux", "color": "c7ca4a", "description": "Specific to Linux" },
- { "name": "Build β¦ MacOS", "color": "c7ca4a", "description": "Specific to MacOS" },
- { "name": "Build β¦ Mobile", "color": "c7ca4a", "description": "Specific to mobile" },
- { "name": "Build β¦ Web", "color": "c7ca4a", "description": "Specific to web" },
- { "name": "Build β¦ Windows", "color": "c7ca4a", "description": "Specific to Windows" },
+ { "name": "AC βΊ Changes Made", "color": "8F1784", "description": "Requested changes have been made and are pending a re-scan" },
+ { "name": "AC βΊ Changes Required", "color": "8F1784", "description": "Requires changes to be made to the package before being accepted" },
+ { "name": "AC βΊ Failed", "color": "a61f2d", "description": "Autocheck failed to run through a complete cycle, requires investigation" },
+ { "name": "AC βΊ Needs Rebase", "color": "8F1784", "description": "Due to the permissions on the requesting repo, this pull request must be rebased by the author" },
+ { "name": "AC βΊ Passed", "color": "146b4a", "description": "Ready to be reviewed" },
+ { "name": "AC βΊ Review Required", "color": "8F1784", "description": "PR needs to be reviewed by another person, after the requested changes have been made" },
+ { "name": "AC βΊ Security Warning", "color": "761620", "description": "Does not conform to developer policies, or includes potentially dangerous code" },
+ { "name": "AC βΊ Skipped Scan", "color": "8F1784", "description": "Author has skipped code scan" },
+ { "name": "Status βΊ Duplicate", "color": "75536b", "description": "Issue or pull request already exists" },
+ { "name": "Status βΊ Accepted", "color": "2e7539", "description": "This pull request has been accepted" },
+ { "name": "Status βΊ Autoclosed", "color": "3E0915", "description": "Originally stale and was autoclosed for no activity" },
+ { "name": "Status βΊ Denied", "color": "ba4058", "description": "Pull request has been denied" },
+ { "name": "Status βΊ Locked", "color": "550F45", "description": "Automatically locked by AdminServ for a prolonged period of inactivity" },
+ { "name": "Status βΊ Need Info", "color": "2E3C4C", "description": "Not enough information to resolve" },
+ { "name": "Status βΊ No Action", "color": "030406", "description": "Closed without any action being taken" },
+ { "name": "Status βΊ Pending", "color": "984b12", "description": "Pending pull request" },
+ { "name": "Status βΊ Released", "color": "1b6626", "description": "Issues or PR has been implemented and is now live" },
+ { "name": "Status βΊ Reopened", "color": "8a6f14", "description": "A previously closed PR which has been re-opened" },
+ { "name": "Status βΊ Review", "color": "9e1451", "description": "Currently pending review" },
+ { "name": "Status βΊ Stale", "color": "928282", "description": "Has not had any activity in over 30 days" },
+ { "name": "Type βΊ Bug", "color": "9a2c2c", "description": "Something isn't working" },
+ { "name": "Type βΊ Dependency", "color": "243759", "description": "Item is associated to dependency" },
+ { "name": "Type βΊ Docs", "color": "0e588d", "description": "Improvements or modifications to docs" },
+ { "name": "Type βΊ Feature", "color": "3c4e93", "description": "Feature request" },
+ { "name": "Type βΊ Git Action", "color": "030406", "description": "GitHub Action / workflow" },
+ { "name": "Type βΊ Pull Request", "color": "8F1784", "description": "Normal pull request" },
+ { "name": "Type βΊ Roadmap", "color": "8F1784", "description": "Feature or bug currently planned for implementation" },
+ { "name": "Type βΊ Internal", "color": "A51994", "description": "Assigned items are for internal developer use" },
+ { "name": "Build βΊ Desktop", "color": "c7ca4a", "description": "Specific to desktop" },
+ { "name": "Build βΊ Linux", "color": "c7ca4a", "description": "Specific to Linux" },
+ { "name": "Build βΊ MacOS", "color": "c7ca4a", "description": "Specific to MacOS" },
+ { "name": "Build βΊ Mobile", "color": "c7ca4a", "description": "Specific to mobile" },
+ { "name": "Build βΊ Web", "color": "c7ca4a", "description": "Specific to web" },
+ { "name": "Build βΊ Windows", "color": "c7ca4a", "description": "Specific to Windows" },
{ "name": "βΊ API", "color": "F99B50", "description": "Plugin API, CLI, browser JS API" },
{ "name": "βΊ Auto-type", "color": "9141E0", "description": "Auto-type functionality in desktop apps" },
{ "name": "βΊ Browser", "color": "9141E0", "description": "Browser plugins and passing data to <=> from app" },
@@ -169,41 +175,62 @@ jobs:
job-labels-create:
name: >-
π« Labels βΊ Verify Existing
- runs-on: ubuntu-latest
- timeout-minutes: 4
+ # runs-on: ubuntu-latest
+ runs-on: apollo-x64
+ timeout-minutes: 5
steps:
# #
- # [ Create Labels ] Start
+ # Issues (Stale) βΊ Labels βΊ Create βΊ Start
# #
- name: >-
β
Start
- id: task_label_create_start
+ id: task_labels_create_start
run: |
echo "Assigning labels and assignees"
# #
- # [ Create Labels ] Checkout
+ # Issues (Stale) βΊ Labels βΊ Create βΊ Set Env Variables
+ # #
+
+ - name: >-
+ π Get Timestamp
+ id: task_labels_create_set_timestamp
+ run: |
+ echo "YEAR=$(date +'%Y')" >> $GITHUB_ENV
+ echo "NOW=$(date +'%m-%d-%Y %H:%M:%S')" >> $GITHUB_ENV
+ echo "NOW_SHORT=$(date +'%m-%d-%Y')" >> $GITHUB_ENV
+ echo "NOW_LONG=$(date +'%m-%d-%Y %H:%M')" >> $GITHUB_ENV
+ echo "NOW_DOCKER_LABEL=$(date +'%Y%m%d')" >> $GITHUB_ENV
+
+ # #
+ # Issues (Stale) βΊ Labels βΊ Create βΊ Checkout
# #
- name: >-
βοΈ Checkout
- id: task_label_create_checkout
+ id: task_labels_create_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # [ Create Labels ] Verify Existing Labels
+ # Issues (Stale) βΊ Labels βΊ Create βΊ Verify Existing
+ #
+ # check if repo has all of the needed issue / pr labels; create label if not exists
+ #
+ # action needed if using 'pull_request' and 'issue_comment'
+ # to get the pull request, you would normally use ${{ github.event.number }}
+ # however this isnt available for 'issue_comment'
# #
- name: >-
- π·οΈ Verify Existing Labels
- id: task_label_create_verify
+ π« Labels βΊ Verify Existing
+ id: task_labels_create_verify
uses: actions/github-script@v7
with:
- github-token: ${{ secrets.ADMINSERV_TOKEN_CL }}
+ github-token: ${{ secrets.ADMINSERV_TOKEN_CL || github.token }}
script: |
const labels = JSON.parse( process.env.LABELS_JSON );
for ( const label of labels )
@@ -215,7 +242,7 @@ jobs:
owner: context.repo.owner,
repo: context.repo.repo,
name: label.name,
- description: label.description || '',
+ description: label.description || 'No Description',
color: label.color
});
}
@@ -233,7 +260,7 @@ jobs:
}
# #
- # Job [ Check Labels ]
+ # Issues (Stale) βΊ Labels βΊ Assign Missing
#
# Runs through all submissions to check for ones that have not been properly labeled
# - Bug
@@ -245,31 +272,36 @@ jobs:
job-issues-nolabel:
name: >-
π« Labels βΊ Assign Missing
- runs-on: ubuntu-latest
- timeout-minutes: 4
+ # runs-on: ubuntu-latest
+ runs-on: apollo-x64
+ timeout-minutes: 5
needs: job-labels-create
steps:
# #
- # [ Check Labels ] Checkout
+ # Issues (Stale) βΊ Labels βΊ Assign Missing βΊ Checkout
# #
- - name: "βοΈ Prepare"
+
+ - name: >-
+ βοΈ Checkout
id: task_issues_nolabel_prepare
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # [ Check Labels ] Check
- # Check if repo has labels currently added to issues
+ # Issues (Stale) βΊ Labels βΊ Assign Missing βΊ Check
+ #
+ # Check if repo has labels to use
# #
- - name: π·οΈ Checking Issues
+ - name: >-
+ π« Labels βΊ Check
id: task_issues_nolabel_run
uses: actions/github-script@v7
with:
- github-token: ${{ secrets.ADMINSERV_TOKEN_CL }}
+ github-token: ${{ secrets.ADMINSERV_TOKEN_CL || github.token }}
script: |
/*
@@ -278,19 +310,18 @@ jobs:
const dateTimeformat = ( date ) =>
{
- let month = date.getMonth( ) + 1;
- month = month.toString( ).padStart( 2, '0' );
- let day = date.getDate( ).toString( ).padStart( 2, '0' );
- let year = date.getFullYear( ).toString( ).padStart( 2, '0' );
+ let month = date.getMonth( ) + 1;
+ month = month.toString( ).padStart( 2, '0' );
+ let day = date.getDate( ).toString( ).padStart( 2, '0' );
+ let year = date.getFullYear( ).toString( ).padStart( 2, '0' );
- let hours = date.getHours();
- let minutes = date.getMinutes();
- let x = hours >= 12 ? 'PM' : 'AM';
- hours = hours % 12;
- hours = hours ? hours : 12;
- minutes = minutes.toString( ).padStart( 2, '0' );
-
- let mergeTime = month + '.' + day + '.' + year + ' ' + hours + ':' + minutes + ' ' + x;
+ let hours = date.getHours();
+ let minutes = date.getMinutes();
+ let x = hours >= 12 ? 'PM' : 'AM';
+ hours = hours % 12;
+ hours = hours ? hours : 12;
+ minutes = minutes.toString( ).padStart( 2, '0' );
+ let mergeTime = month + '.' + day + '.' + year + ' ' + hours + ':' + minutes + ' ' + x;
return mergeTime;
}
@@ -315,7 +346,7 @@ jobs:
let date_UpdateHuman = dateTimeformat( date_UpdateDate ) + " UTC"; // 03.26.2024 4:40 PM UTC
const time_UpdateMs = new Date( issue.updated_at ).getTime( ); // 1711471241000
- //if ( curtime < time_UpdateMs + expireAfterMs ) continue;
+ // if ( curtime < time_UpdateMs + expireAfterMs ) continue;
/*
Anything past this point is stale / to be closed
@@ -336,8 +367,8 @@ jobs:
let iss_body = `${ issue.body }`;
const iss_body_lc = iss_body.toLowerCase( );
- console.log( ` βββ π ` + iss_title );
- console.log( ` βββ π Issue #${ issue.number } last updated on ${ date_UpdateHuman }` );
+ console.log( ` βββ π ` + iss_title + ` #${ issue.number }`);
+ console.log( ` βββ π last updated on ${ date_UpdateHuman }` );
console.log( ` βββ π ${add_labels}` );
console.log( `\n\n` )
@@ -345,8 +376,8 @@ jobs:
Keywords
*/
- const bug_words = [ "bug", "broke", "issue", "fail" ];
- const feat_words = [ "feature", "request", "add support" ];
+ const bug_words = [ "bug", "broke", "issue", "fail", "wont work" ];
+ const feat_words = [ "feature", "request", "add", "addition", "enhance", "create" ];
const urgn_words = [ "urgent", "urgency", "emergency", "important", "critical" ];
const road_words = [ "roadmap", "road map", "planned" ];
@@ -365,17 +396,14 @@ jobs:
/*
Label > Bugs
- */
- const bug_bIncWordT = bug_words.some( s => s.includes( iss_title_lc ) || iss_title_lc.includes( s ) );
-
- /*
Find regex based phrases
Regex:
https://regex101.com/r/Z99Gnq/2
*/
+ const bug_bIncWordT = bug_words.some( s => s.includes( iss_title_lc ) || iss_title_lc.includes( s ) );
const bug_findWordList = /^\b(?:I?\s*have\s*(?:a|an)\s*(?:issue|problem|bug))|(?:will\s*not\s*work)|(?:it\s*is\s*(?:broken|broke|stuck))|(?:found\s*(?:an?|the)\s*(?:bug|issue))|(?:can\s*I\s*fix\s*the\s*(?:bug|issue))|(?:(?:does not|doesn'?t|don'?t|won'?t|can'?t|can\s?not|will\s*not)\s*(?:work|load|function))|(?:it\s*(?:will\s?not|won'?t|can\s?not|can'?t))\s*(?:get|find)\s*the\s*(?:website|site|webpage|page)|(?:the\s*(?:window|frame)\s*is\s*(?:blank|white|empty|missing))\b$/igm;
const bug_bFoundMatchTitle = Boolean( bug_findWordList.test( iss_title ) );
const bug_bFoundMatchBody = Boolean( bug_findWordList.test( iss_body ) );
@@ -403,6 +431,9 @@ jobs:
if ( author === `${{ env.BOT_NAME_DEPENDABOT }}` )
core.info( `Skipping: Detected ${ author }` )
+ if ( author === `${{ env.BOT_NAME_RENOVATE }}` )
+ core.info( `Skipping: Detected ${ author }` )
+
// Rename title to contain Bug:
if ( author !== `${{ env.BOT_NAME_DEPENDABOT }}` && !bug_bFoundPRTitle && !iss_title_lc.startsWith( bug_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( feat_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( urgn_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( road_tag.toLowerCase( ) ) )
{
@@ -433,7 +464,7 @@ jobs:
https://regex101.com/r/fR1Hm6/1
*/
- const feat_findWordList = /^(?:(?:request|include|see)\s*(?:an?|the?)\s*(?:feature|addon|addition|plugin))|(?:(?:add|see|get)\s*support\s*(?:for|with|of))|(?:can\s*we\s*get\s*(?:the|a)\s*(?:ability|feature))|(?:π‘ Feature:)$/igm;
+ const feat_findWordList = /(?:(?:add|enjoy|would|like|can|request|include|see|could|have)\s*?(?:the|liked?|i|we|an?|the|you?)\s*?(?:to|have|an|get|ability|request|add|feature|functionality|addon|addition|plugin|create))|(?:(?:add|see|get)\s*?support\s*?(?:for|with|of))|(?:can\s*we\s*get\s*?(?:the|a)\s*?(?:ability|feature))|(?:π‘ Feature:)$/igm;
const feat_bFoundMatchTitle = Boolean( feat_findWordList.test( iss_title ) );
const feat_bFoundMatchBody = Boolean( feat_findWordList.test( iss_body ) );
@@ -460,6 +491,9 @@ jobs:
if ( author === `${{ env.BOT_NAME_DEPENDABOT }}` )
core.info( `Skipping: Detected ${ author }` )
+ if ( author === `${{ env.BOT_NAME_RENOVATE }}` )
+ core.info( `Skipping: Detected ${ author }` )
+
// Rename title to contain Feature:
if ( author !== `${{ env.BOT_NAME_DEPENDABOT }}` && !feat_bFoundPRTitle && !iss_title_lc.startsWith( bug_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( feat_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( urgn_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( road_tag.toLowerCase( ) ) )
{
@@ -471,6 +505,8 @@ jobs:
iss_title = `${ feat_tag } ${ title_new }`;
}
+ console.log( `New Title: ...................... ${ iss_title }` )
+
await github.rest.issues.update(
{
owner: context.repo.owner, repo: context.repo.repo, issue_number: issue.number,
@@ -518,6 +554,9 @@ jobs:
if ( author === `${{ env.BOT_NAME_DEPENDABOT }}` )
core.info( `Skipping: Detected ${ author }` )
+ if ( author === `${{ env.BOT_NAME_RENOVATE }}` )
+ core.info( `Skipping: Detected ${ author }` )
+
// Rename title to contain Urgent:
if ( author !== `${{ env.BOT_NAME_DEPENDABOT }}` && !urgn_bFoundPRTitle && !iss_title_lc.startsWith( bug_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( feat_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( urgn_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( road_tag.toLowerCase( ) ) )
{
@@ -552,8 +591,8 @@ jobs:
*/
const road_findWordList = /#\s*Summary[\S\s]+#\s*(?:Proposal|Objective)[^\]]+/igm;
- const road_bFoundMatchTitle = Boolean( road_findWordList.test( iss_title ) );
- const road_bFoundMatchBody = Boolean( road_findWordList.test( iss_body ) );
+ const road_bFoundMatchTitle = Boolean( road_findWordList.test( iss_title ) );
+ const road_bFoundMatchBody = Boolean( road_findWordList.test( iss_body ) );
/*
Do not change a title if the item starts with a PR: #
@@ -562,8 +601,8 @@ jobs:
https://regex101.com/r/JOrqbN/1
*/
- const road_findPRTitle = /^PR\s?#?(?:[0-9]*:)/igm;
- const road_bFoundPRTitle = Boolean( road_findPRTitle.test( iss_title ) );
+ const road_findPRTitle = /^PR\s?#?(?:[0-9]*:)/igm;
+ const road_bFoundPRTitle = Boolean( road_findPRTitle.test( iss_title ) );
/*
- Check if issue title matches the issue label "Roadmap:"
@@ -578,16 +617,19 @@ jobs:
if ( author === `${{ env.BOT_NAME_DEPENDABOT }}` )
core.info( `Skipping: Detected ${ author }` )
+ if ( author === `${{ env.BOT_NAME_RENOVATE }}` )
+ core.info( `Skipping: Detected ${ author }` )
+
// Rename title to contain Roadmap:
if ( author !== `${{ env.BOT_NAME_DEPENDABOT }}` && !road_bFoundPRTitle && !iss_title_lc.startsWith( bug_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( feat_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( urgn_tag.toLowerCase( ) ) && !iss_title_lc.startsWith( road_tag.toLowerCase( ) ) )
{
- const title = issue.title;
- let title_new = title.replace( /^\s?emergency\s*(.*?)\b/gi, '' );
- title_new = title.replace( /^\s?urgent\s*(.*?)\b/gi, '' );
- title_new = title.replace( /^\s?urgency\s*(.*?)\b/gi, '' );
- title_new = title.replace( /^\s?important\s*(.*?)\b/gi, '' );
- title_new = title.replace( /^\s?critical\s*(.*?)\b/gi, '' );
- iss_title = `${ road_tag } ${ title_new }`;
+ const title = issue.title;
+ let title_new = title.replace( /^\s?emergency\s*(.*?)\b/gi, '' );
+ title_new = title.replace( /^\s?urgent\s*(.*?)\b/gi, '' );
+ title_new = title.replace( /^\s?urgency\s*(.*?)\b/gi, '' );
+ title_new = title.replace( /^\s?important\s*(.*?)\b/gi, '' );
+ title_new = title.replace( /^\s?critical\s*(.*?)\b/gi, '' );
+ iss_title = `${ road_tag } ${ title_new }`;
}
await github.rest.issues.update(
@@ -607,14 +649,15 @@ jobs:
}
# #
- # Job [ Stale Issues ]
+ # Issues (Stale) βΊ Stale
# #
job-issues-stale:
name: >-
- π€ Check βΊ Stale
- runs-on: ubuntu-latest
- timeout-minutes: 4
+ π€ Scan βΊ Check Stale
+ # runs-on: ubuntu-latest
+ runs-on: apollo-x64
+ timeout-minutes: 5
needs:
- job-labels-create
- job-issues-nolabel
@@ -624,57 +667,60 @@ jobs:
pull-requests: write
steps:
- # #
- # [ Stale Issues ] Check Condition
- # #
+ # #
+ # Stale βΊ Check Condition
+ # #
- - name: "π€ Stale βΊ Check Condition"
- uses: actions/stale@v9
- id: task_issues_stale_run
- with:
- repo-token: ${{ secrets.ADMINSERV_TOKEN_CL }}
- stale-issue-message: |
- β οΈ It looks like there hasn't been any recent updates on this issue. If you created this issue and no longer consider it open, then please login to github and close the issue.
+ - name: >-
+ π€ Stale βΊ Check Condition
+ id: task_issues_inactive_stale
+ uses: actions/stale@v9
+ with:
+ repo-token: ${{ secrets.ADMINSERV_TOKEN_CL || github.token }}
+ stale-issue-message: |
+ β οΈ It looks like there hasn't been any recent updates on this issue. If you created this issue and no longer consider it open, then please login to github and close the issue.
- If there is no further activity on this issue, it will be automatically closed in the next week.
+ If there is no further activity on this issue, it will be automatically closed in the next week.
- ---
+ ---
- I am a bot reaching out to you with an automated response.
- stale-issue-label: 'Status π Stale'
- close-issue-label: 'Status π Autoclosed'
- exempt-issue-labels: 'Status π Accepted,Status π Review,Status π Pending,Type β¦ Bug,Type β¦ Dependency,Type β¦ Docs,Type β¦ Feature,Type β¦ Git Action,Type β¦ Pull Request,Type β¦ Roadmap'
- days-before-stale: 60
- days-before-close: 7
- days-before-pr-stale: -1
- days-before-pr-close: -1
+ I am a bot reaching out to you with an automated response.
+ stale-issue-label: '${{ env.LABEL_STALE }}'
+ close-issue-label: '${{ env.LABEL_AUTOCLOSE }}'
+ exempt-issue-labels: '${{ env.LABEL_ACCEPTED }},${{ env.LABEL_REVIEW }},${{ env.LABEL_PENDING }},${{ env.LABEL_BUG }},${{ env.LABEL_DEPENDENCY }},${{ env.LABEL_DOCS }},${{ env.LABEL_FEATURE }},${{ env.LABEL_GIT }},${{ env.LABEL_PR }},${{ env.LABEL_ROADMAP }}'
+ days-before-stale: 120
+ days-before-close: 7
+ days-before-pr-stale: -1
+ days-before-pr-close: -1
# #
- # Job [ Lock Issues ]
+ # Issues (Stale) βΊ Lock
# #
job-issues-lock:
name: >-
- π Check βΊ Inactive
- runs-on: ubuntu-latest
- timeout-minutes: 4
+ π Scan βΊ Lock Inactive
+ # runs-on: ubuntu-latest
+ runs-on: apollo-x64
+ timeout-minutes: 5
needs:
- job-labels-create
- job-issues-nolabel
steps:
# #
- # [ Lock Issues ] Look for inactives
+ # Inactive βΊ Lock
# #
- - name: "π Lock βΊ Inactives"
+ - name: >-
+ π Inactive βΊ Lock
+ id: task_issues_inactive_lock
uses: dessant/lock-threads@v5
- id: task_issues_lock_run
with:
- github-token: ${{ secrets.ADMINSERV_TOKEN_CL }}
- exclude-any-issue-labels: 'AC βΊ Review Required,Status π Accepted,Status π Review,Status π Pending,Type β¦ Bug,Type β¦ Dependency,Type β¦ Docs,Type β¦ Feature,Type β¦ Git Action,Type β¦ Roadmap,Type β¦ Internal'
- add-issue-labels: 'Status π Locked'
- issue-inactive-days: '60'
+ github-token: ${{ secrets.ADMINSERV_TOKEN_CL || github.token }}
+ exclude-any-issue-labels: '${{ env.LABEL_AC_REVIEW }},${{ env.LABEL_ACCEPTED }},${{ env.LABEL_REVIEW }},${{ env.LABEL_PENDING }},${{ env.LABEL_BUG }},${{ env.LABEL_DEPENDENCY }},${{ env.LABEL_DOCS }},${{ env.LABEL_FEATURE }},${{ env.LABEL_GIT }},${{ env.LABEL_ROADMAP }},${{ env.LABEL_INTERNAL }}'
+ add-issue-labels: '${{ env.LABEL_LOCKED }}'
+ issue-inactive-days: '120'
issue-lock-reason: 'resolved'
issue-comment: >
β οΈ This **issue** has been automatically locked since there has not been any recent activity after it was closed.
@@ -684,8 +730,8 @@ jobs:
---
I am a bot reaching out to you with an automated response.
- exclude-any-pr-labels: 'AC βΊ Review Required,Status π Accepted,Status π Review,Status π Pending,Type β¦ Bug,Type β¦ Dependency,Type β¦ Docs,Type β¦ Feature,Type β¦ Git Action,Type β¦ Roadmap,Type β¦ Internal'
- add-pr-labels: 'Status π Locked'
+ exclude-any-pr-labels: '${{ env.LABEL_AC_REVIEW }},${{ env.LABEL_ACCEPTED }},${{ env.LABEL_REVIEW }},${{ env.LABEL_PENDING }},${{ env.LABEL_BUG }},${{ env.LABEL_DEPENDENCY }},${{ env.LABEL_DOCS }},${{ env.LABEL_FEATURE }},${{ env.LABEL_GIT }},${{ env.LABEL_ROADMAP }},${{ env.LABEL_INTERNAL }}'
+ add-pr-labels: '${{ env.LABEL_LOCKED }}'
pr-inactive-days: '365'
pr-lock-reason: 'resolved'
pr-comment: >