From 082857c09ba0bf2047a15d565cdb0b81b380ec69 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 20:53:52 -0500 Subject: [PATCH 001/105] Create Check for CodeQL alerts step in codeql.yml --- .github/workflows/codeql.yml | 74 +++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 85c3f1127d..f507bbdedc 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -75,4 +75,76 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: - category: "/language:${{matrix.language}}" \ No newline at end of file + category: "/language:${{matrix.language}}" + + - name: Check for CodeQL alerts + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + + // Get a list of open CodeQL alerts + const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { + headers: { + Authorization: `token ${{secrets.H4LA_TOKEN}}` + } + }); + + if (!response.ok) { + throw new Error(`Failed to fetch alerts: ${response.status} - ${response.statusText}`); + } + + const alerts = await response.json(); + + // Check if there are any alerts + if (alerts.length > 0) { + for (const alert of alerts) { + const alertId = alert.number; + + // Check if there is an existing tracking issue for the alert + const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { + headers: { + Authorization: `token ${{secrets.H4LA_TOKEN}}` + } + }); + + if (!searchResponse.ok) { + throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); + } + + const searchResult = await searchResponse.json(); + + if (searchResult.items.length === 0) { + const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + + // Read the template file + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-alert-issues/issue-body.md'; + let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + + // Replace placeholders with actual values + issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + + // Use the modified content as the issue body + const issueBody = issueBodyTemplate; + + // Create a new issue + const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { + method: 'POST', + headers: { + Authorization: `token ${{secrets.H4LA_TOKEN}}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + title: issueTitle, + body: issueBody, + labels: ['ready for dev lead'] + }) + }); + + if (!createIssueResponse.ok) { + throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); + } + } + } + } + From abb26c42d552e74de7343b0db593444dab94e514 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 20:54:37 -0500 Subject: [PATCH 002/105] Make create-codeql-issue folder with issue-body.md file --- .../create-codeql-issues/issue-body.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 github-actions/create-codeql-issues/issue-body.md diff --git a/github-actions/create-codeql-issues/issue-body.md b/github-actions/create-codeql-issues/issue-body.md new file mode 100644 index 0000000000..7c2d5e2113 --- /dev/null +++ b/github-actions/create-codeql-issues/issue-body.md @@ -0,0 +1,25 @@ +### Prerequisite + +1. Be a member of Hack for LA. (There are no fees to join.) If you have not joined yet, please follow the steps on our [Getting Started page](https://www.hackforla.org/getting-started). +2. Before you claim or start working on an issue, please make sure you have read our [How to Contribute to Hack for LA Guide](https://github.com/hackforla/website/blob/7f0c132c96f71230b8935759e1f8711ccb340c0f/CONTRIBUTING.md). + +### Overview +We need to resolve the new alert [(${alertId})](https://github.com/hackforla/website/security/code-scanning/${alertId}) and either recommend dismissal of the alert or update the code files to resolve the alert. + +### Action Items +- [ ] The following action item serves to "link" this issue as the "tracking issue" for the CodeQL alert and to provide more details regarding the alert: https://github.com/hackforla/website/security/code-scanning/${alertId} +- [ ] In a comment in this issue, add your analysis and recommendations. The recommendation can be one of the following: `dismiss as test`, `dismiss as false positive`, `dismiss as won't fix`, or `update code`. An example of a `false positive` is a report of a JavaScript syntax error that is caused by markdown or liquid symbols such as `---` or `{%` +- [ ] **If the recommendation is to dismiss the alert:** + - [ ] Apply the label `ready for dev lead` + - [ ] Move the issue to `Questions/In Review` +- [ ] **If the recommendation is to update code:** + - [ ] Create an issue branch and proceed with the code update + - [ ] Test using docker to ensure that there are no changes to any affected webpage(s) + - [ ] Proceed with pull request in the usual manner + +### Resources/Instructions +- [HfLA website: CodeQL scan alert audits - issue 5005](https://docs.google.com/spreadsheets/d/1B3R-fI8OW0LcYuwZICQZ2fB8sjlE3VsfyGIXoReNBIs/edit#gid=193401043) +- [Code scanning results page](https://github.com/hackforla/website/security/code-scanning) +- [CodeQL query help for JavaScript](https://codeql.github.com/codeql-query-help/javascript/) + +This issue was automatically generated from the codeql.yml workflow \ No newline at end of file From fa2b8011cab045fd5433ec2df5906161845e693f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 20:55:11 -0500 Subject: [PATCH 003/105] Change branch name for testing --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f507bbdedc..7e4a790078 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "gh-pages" ] + branches: [ "create-new-codeql-issues-5059" ] pull_request: # The branches below must be a subset of the branches above - branches: [ "gh-pages" ] + branches: [ "create-new-codeql-issues-5059s" ] schedule: - cron: '30 5 * * 5' From 1569ef5edb61126bf5841d22cd491e49a3823c67 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 21:03:02 -0500 Subject: [PATCH 004/105] Change branch back to gh-pages and token secrets back to GITHUB_TOKEN --- .github/workflows/codeql.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7e4a790078..a10c5f68fb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "create-new-codeql-issues-5059" ] + branches: [ "gh-pages" ] pull_request: # The branches below must be a subset of the branches above - branches: [ "create-new-codeql-issues-5059s" ] + branches: [ "gh-pages" ] schedule: - cron: '30 5 * * 5' @@ -86,7 +86,7 @@ jobs: // Get a list of open CodeQL alerts const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}` + Authorization: `token ${{secrets.GITHUB_TOKEN}}` } }); @@ -104,7 +104,7 @@ jobs: // Check if there is an existing tracking issue for the alert const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}` + Authorization: `token ${{secrets.GITHUB_TOKEN}}` } }); @@ -131,7 +131,7 @@ jobs: const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { method: 'POST', headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}`, + Authorization: `token ${{secrets.GITHUB_TOKEN}}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ From c4aaeac2b797797d69fb3113626a21121a482698 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 21:28:12 -0500 Subject: [PATCH 005/105] Fix issueBodyTemplatePath --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a10c5f68fb..04566f1ceb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -118,7 +118,7 @@ jobs: const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; // Read the template file - const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-alert-issues/issue-body.md'; + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); // Replace placeholders with actual values From 044a2f7b981c16fd2ce8ac770ad83feb75e8c00a Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 21 Mar 2024 21:31:05 -0500 Subject: [PATCH 006/105] Move create-codeql-issues folder into trigger-issue folder --- .../{ => trigger-issue}/create-codeql-issues/issue-body.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github-actions/{ => trigger-issue}/create-codeql-issues/issue-body.md (100%) diff --git a/github-actions/create-codeql-issues/issue-body.md b/github-actions/trigger-issue/create-codeql-issues/issue-body.md similarity index 100% rename from github-actions/create-codeql-issues/issue-body.md rename to github-actions/trigger-issue/create-codeql-issues/issue-body.md From a294d2d9660680c4320171f392fe5138fa8d38d5 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Fri, 22 Mar 2024 08:37:04 -0500 Subject: [PATCH 007/105] Comment out error message for createIssueResponse --- .github/workflows/codeql.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 04566f1ceb..5e10991dbe 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -141,9 +141,11 @@ jobs: }) }); + /* if (!createIssueResponse.ok) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } + */ } } } From c83430ff597beafdbc374d89239336aef9b41e6d Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:38:18 -0500 Subject: [PATCH 008/105] Refactor codeql.yml and move scripts to separate js files --- .github/workflows/codeql.yml | 89 +++++++++--------------------------- 1 file changed, 21 insertions(+), 68 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5e10991dbe..c66a8e3bd6 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -77,76 +77,29 @@ jobs: with: category: "/language:${{matrix.language}}" - - name: Check for CodeQL alerts + # Fetch Alerts + - name: Fetch Alerts uses: actions/github-script@v7 with: script: | - const fs = require('fs'); + const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); + const fetchAlerts = script({ g: github, c: context }); + return fetchAlerts; - // Get a list of open CodeQL alerts - const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { - headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}` - } - }); - - if (!response.ok) { - throw new Error(`Failed to fetch alerts: ${response.status} - ${response.statusText}`); - } - - const alerts = await response.json(); - - // Check if there are any alerts - if (alerts.length > 0) { - for (const alert of alerts) { - const alertId = alert.number; - - // Check if there is an existing tracking issue for the alert - const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { - headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}` - } - }); - - if (!searchResponse.ok) { - throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); - } - - const searchResult = await searchResponse.json(); - - if (searchResult.items.length === 0) { - const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; - - // Read the template file - const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; - let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); - - // Replace placeholders with actual values - issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); - - // Use the modified content as the issue body - const issueBody = issueBodyTemplate; - - // Create a new issue - const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { - method: 'POST', - headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'] - }) - }); - - /* - if (!createIssueResponse.ok) { - throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); - } - */ - } - } - } + # Check Existing Issues + - name: Check Existing Issues + uses: actions/github-script@v7 + with: + script: | + const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); + const checkIssues = script({ g: github, c: context }); + return checkIssues; + # Create New Issues + - name: Create New Issues + uses: actions/github-script@v7 + with: + script: | + const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); + const newIssues = script({ g: github, c: context }); + return newIssues; From 1f4a99844f445e509886fd854a7c7fc0c7157138 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:38:33 -0500 Subject: [PATCH 009/105] Create fetch-alerts.js --- .../create-codeql-issues/fetch-alerts.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js new file mode 100644 index 0000000000..714946cc8e --- /dev/null +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -0,0 +1,35 @@ +const fs = require('fs'); + +// Global variables +var github; +var context; + +/** + * Fetches a list of open CodeQL alerts from the GitHub API. + * @returns {Promise} A promise that resolves when the alerts are fetched. + */ +const fetchAlerts = async ({ g, c }) => { + // Rename parameters + github = g; + context = c; + + // Get a list of open CodeQL alerts + const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { + headers: { + Authorization: `token ${{secrets.GITHUB_TOKEN}}` + } + }); + + // Throw error if fetch fails + if (!response.ok) { + throw new Error(`Failed to fetch alerts: ${response.status} - ${response.statusText}`); + } + + // Convert response to JSON + const alerts = await response.json(); + + // Set output for future scripts in workflow + core.setOutput("alerts", alerts); +}; + +module.exports = fetchAlerts From e16ac9c5447e9ed781e08a83aa0e43bff10c13eb Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:38:50 -0500 Subject: [PATCH 010/105] Create check-existing-issues.js --- .../check-existing-issues.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js new file mode 100644 index 0000000000..8c859de44b --- /dev/null +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -0,0 +1,46 @@ +const fs = require('fs'); + +// Global variables +var github; +var context; + +/** + * Fetches existing issues for each alert and sets the output for alerts without existing issues. + * @returns {Promise} + */ +const checkExistingIssues = async ({ g, c }) => { + // Rename parameters + github = g; + context = c; + + // Get alerts from the fetch-alerts step output + const alerts = ${{ steps.fetch-alerts.outputs.alerts }}; + + // Loop through each alert + for (const alert of alerts) { + const alertId = alert.number; + + // Search for existing issues related to the alert + const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { + headers: { + Authorization: `token ${{secrets.GITHUB_TOKEN}}` + } + }); + + // Check if the search request was successful + if (!searchResponse.ok) { + throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); + } + + // Convert response to JSON + const searchResult = await searchResponse.json(); + + // If no existing issues are found, set the alertId output and exit the loop + if (searchResult.items.length === 0) { + core.setOutput("alertId", alertId); + break; // Exit the loop after finding the first alert without an existing issue + } + } +}; + +module.exports = checkExistingIssues From 6acc62f613e83c5975cca5fce1bbb243a74672a9 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:39:09 -0500 Subject: [PATCH 011/105] Create create-new-issues.js --- .../create-codeql-issues/create-new-issues.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 github-actions/trigger-issue/create-codeql-issues/create-new-issues.js diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js new file mode 100644 index 0000000000..ec4c9217bd --- /dev/null +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -0,0 +1,54 @@ +const fs = require('fs'); + +// Global variables +var github; +var context; + +/** + * Creates new GitHub issues for each alert that doesn't have an existing issue. + * @returns {Promise} + */ +const createNewIssues = async ({ g, c }) => { + // Rename parameters + github = g; + context = c; + + // Get the alertId from the check-existing-issues step output + const alertId = ${{ steps.check-existing-issues.outputs.alertId }}; + + // Create the issue title + const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + + // Read the issue body template file + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; + let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + + // Replace placeholders with actual values in the issue body template + issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + + // Use the modified content as the issue body + const issueBody = issueBodyTemplate; + + // Create a new GitHub issue + const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { + method: 'POST', + headers: { + Authorization: `token ${{secrets.GITHUB_TOKEN}}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + title: issueTitle, + body: issueBody, + labels: ['ready for dev lead'] + }) + }); + + /* + if (!createIssueResponse.ok) { + throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); + } + */ +}; + +module.exports = createNewIssues + From 8bcf7091beab6ed39474718b72fb6fb5c381dc11 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:42:35 -0500 Subject: [PATCH 012/105] Replace branch and token for testing --- .github/workflows/codeql.yml | 4 ++-- .../create-codeql-issues/check-existing-issues.js | 2 +- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c66a8e3bd6..2337b30f38 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "gh-pages" ] + branches: [ "create-new-codeql-issues-5059" ] pull_request: # The branches below must be a subset of the branches above - branches: [ "gh-pages" ] + branches: [ "create-new-codeql-issues-5059" ] schedule: - cron: '30 5 * * 5' diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 8c859de44b..d78fb4fbee 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -23,7 +23,7 @@ const checkExistingIssues = async ({ g, c }) => { // Search for existing issues related to the alert const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}` + Authorization: `token ${{secrets.H4LA_TOKEN}}` } }); diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index ec4c9217bd..894400d671 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -33,7 +33,7 @@ const createNewIssues = async ({ g, c }) => { const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { method: 'POST', headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}`, + Authorization: `token ${{secrets.H4LA_TOKEN}}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 714946cc8e..3c27dd4012 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -16,7 +16,7 @@ const fetchAlerts = async ({ g, c }) => { // Get a list of open CodeQL alerts const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { headers: { - Authorization: `token ${{secrets.GITHUB_TOKEN}}` + Authorization: `token ${{secrets.H4LA_TOKEN}}` } }); From c5e96c94df6d1f4152d521e6d756d344f483951c Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 10:58:19 -0500 Subject: [PATCH 013/105] Move secrets to codeql.yml and pass as argument to functions --- .github/workflows/codeql.yml | 6 +++--- .../create-codeql-issues/check-existing-issues.js | 4 ++-- .../trigger-issue/create-codeql-issues/create-new-issues.js | 4 ++-- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2337b30f38..5ea0b3d1f9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -83,7 +83,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context }); + const fetchAlerts = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return fetchAlerts; # Check Existing Issues @@ -92,7 +92,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context }); + const checkIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return checkIssues; # Create New Issues @@ -101,5 +101,5 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context }); + const newIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return newIssues; diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index d78fb4fbee..86faa51729 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -8,7 +8,7 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c }) => { +const checkExistingIssues = async ({ g, c, token }) => { // Rename parameters github = g; context = c; @@ -23,7 +23,7 @@ const checkExistingIssues = async ({ g, c }) => { // Search for existing issues related to the alert const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}` + Authorization: `token ${token}` } }); diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 894400d671..818e87078c 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -8,7 +8,7 @@ var context; * Creates new GitHub issues for each alert that doesn't have an existing issue. * @returns {Promise} */ -const createNewIssues = async ({ g, c }) => { +const createNewIssues = async ({ g, c, token }) => { // Rename parameters github = g; context = c; @@ -33,7 +33,7 @@ const createNewIssues = async ({ g, c }) => { const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { method: 'POST', headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}`, + Authorization: `token ${token}` 'Content-Type': 'application/json' }, body: JSON.stringify({ diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 3c27dd4012..78be653364 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -8,7 +8,7 @@ var context; * Fetches a list of open CodeQL alerts from the GitHub API. * @returns {Promise} A promise that resolves when the alerts are fetched. */ -const fetchAlerts = async ({ g, c }) => { +const fetchAlerts = async ({ g, c, token }) => { // Rename parameters github = g; context = c; @@ -16,8 +16,8 @@ const fetchAlerts = async ({ g, c }) => { // Get a list of open CodeQL alerts const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { headers: { - Authorization: `token ${{secrets.H4LA_TOKEN}}` - } + Authorization: `token ${token}` + }, }); // Throw error if fetch fails From bd78d8538de9cdea3ecfb48d7b597aa6c6ce87a7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:01:23 -0500 Subject: [PATCH 014/105] Require core in fetch-alerts.js and check-existing-issues.js --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 1 + .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 + 2 files changed, 2 insertions(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 86faa51729..20a5f15efd 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 78be653364..d6957ef2f1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; From ef67e158845a2f2c11a14c726b0c5a32d7612af0 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:13:46 -0500 Subject: [PATCH 015/105] Remove require core and pass as argument to js files --- .github/workflows/codeql.yml | 6 +++--- .../create-codeql-issues/check-existing-issues.js | 3 +-- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5ea0b3d1f9..1964902634 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -83,7 +83,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const fetchAlerts = script({ g: github, c: context, core, token: ${{secrets.H4LA_TOKEN}} }); return fetchAlerts; # Check Existing Issues @@ -92,7 +92,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const checkIssues = script({ g: github, c: context, core token: ${{secrets.H4LA_TOKEN}} }); return checkIssues; # Create New Issues @@ -101,5 +101,5 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const newIssues = script({ g: github, c: context, core, token: ${{secrets.H4LA_TOKEN}} }); return newIssues; diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 20a5f15efd..731c888e5b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; @@ -9,7 +8,7 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c, token }) => { +const checkExistingIssues = async ({ g, c, core, token }) => { // Rename parameters github = g; context = c; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index d6957ef2f1..a68ad566b1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; @@ -9,7 +8,7 @@ var context; * Fetches a list of open CodeQL alerts from the GitHub API. * @returns {Promise} A promise that resolves when the alerts are fetched. */ -const fetchAlerts = async ({ g, c, token }) => { +const fetchAlerts = async ({ g, c, core, token }) => { // Rename parameters github = g; context = c; From c3e7e537967fea23425d3241f55579b3072f2fcb Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:22:45 -0500 Subject: [PATCH 016/105] Swap core with setOutput --- .github/workflows/codeql.yml | 6 +++--- .../create-codeql-issues/check-existing-issues.js | 3 ++- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1964902634..2e609bc0e8 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -83,7 +83,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context, core, token: ${{secrets.H4LA_TOKEN}} }); + const fetchAlerts = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); return fetchAlerts; # Check Existing Issues @@ -92,7 +92,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, core token: ${{secrets.H4LA_TOKEN}} }); + const checkIssues = script({ g: github, c: context, setOutput: core.setOutput token: ${{secrets.H4LA_TOKEN}} }); return checkIssues; # Create New Issues @@ -101,5 +101,5 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context, core, token: ${{secrets.H4LA_TOKEN}} }); + const newIssues = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); return newIssues; diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 731c888e5b..e4da27b04b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; @@ -8,7 +9,7 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c, core, token }) => { +const checkExistingIssues = async ({ g, c, setOutput, token }) => { // Rename parameters github = g; context = c; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index a68ad566b1..992073b088 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; @@ -8,7 +9,7 @@ var context; * Fetches a list of open CodeQL alerts from the GitHub API. * @returns {Promise} A promise that resolves when the alerts are fetched. */ -const fetchAlerts = async ({ g, c, core, token }) => { +const fetchAlerts = async ({ g, c, setOutput, token }) => { // Rename parameters github = g; context = c; From b85effbd05da6fea530d465c2a1b92eb7ecb59af Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:23:25 -0500 Subject: [PATCH 017/105] Remove require core --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 1 - .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 - 2 files changed, 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index e4da27b04b..e5ca7b0016 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 992073b088..b6403cb621 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; From f47a6bc34d1d8880339c23497edfe5516ec87257 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:24:58 -0500 Subject: [PATCH 018/105] Remove core from setOutput invocation --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 2 +- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index e5ca7b0016..952c1fbcd1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -37,7 +37,7 @@ const checkExistingIssues = async ({ g, c, setOutput, token }) => { // If no existing issues are found, set the alertId output and exit the loop if (searchResult.items.length === 0) { - core.setOutput("alertId", alertId); + setOutput("alertId", alertId); break; // Exit the loop after finding the first alert without an existing issue } } diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index b6403cb621..4d8d749235 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -29,7 +29,7 @@ const fetchAlerts = async ({ g, c, setOutput, token }) => { const alerts = await response.json(); // Set output for future scripts in workflow - core.setOutput("alerts", alerts); + setOutput("alerts", alerts); }; module.exports = fetchAlerts From 60510cd343e4d26366b264e5d29e767bb6ea6ff2 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:26:01 -0500 Subject: [PATCH 019/105] Add comma --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2e609bc0e8..41a8e37147 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -92,7 +92,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, setOutput: core.setOutput token: ${{secrets.H4LA_TOKEN}} }); + const checkIssues = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); return checkIssues; # Create New Issues From c7499eb110f816ccde98b310b645a1af7512ddc9 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:30:32 -0500 Subject: [PATCH 020/105] Require in core and remove from arguments --- .github/workflows/codeql.yml | 6 +++--- .../create-codeql-issues/check-existing-issues.js | 5 +++-- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 41a8e37147..5ea0b3d1f9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -83,7 +83,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); + const fetchAlerts = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return fetchAlerts; # Check Existing Issues @@ -92,7 +92,7 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); + const checkIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return checkIssues; # Create New Issues @@ -101,5 +101,5 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context, setOutput: core.setOutput, token: ${{secrets.H4LA_TOKEN}} }); + const newIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); return newIssues; diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 952c1fbcd1..20a5f15efd 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; @@ -8,7 +9,7 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c, setOutput, token }) => { +const checkExistingIssues = async ({ g, c, token }) => { // Rename parameters github = g; context = c; @@ -37,7 +38,7 @@ const checkExistingIssues = async ({ g, c, setOutput, token }) => { // If no existing issues are found, set the alertId output and exit the loop if (searchResult.items.length === 0) { - setOutput("alertId", alertId); + core.setOutput("alertId", alertId); break; // Exit the loop after finding the first alert without an existing issue } } diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 4d8d749235..d6957ef2f1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const core = require('@actions/core'); // Global variables var github; @@ -8,7 +9,7 @@ var context; * Fetches a list of open CodeQL alerts from the GitHub API. * @returns {Promise} A promise that resolves when the alerts are fetched. */ -const fetchAlerts = async ({ g, c, setOutput, token }) => { +const fetchAlerts = async ({ g, c, token }) => { // Rename parameters github = g; context = c; @@ -29,7 +30,7 @@ const fetchAlerts = async ({ g, c, setOutput, token }) => { const alerts = await response.json(); // Set output for future scripts in workflow - setOutput("alerts", alerts); + core.setOutput("alerts", alerts); }; module.exports = fetchAlerts From e8ad4042aa9bc925eb6454785ba6caaa6cd6c7a3 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:34:11 -0500 Subject: [PATCH 021/105] Remove core require --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 1 - .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 - 2 files changed, 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 20a5f15efd..86faa51729 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index d6957ef2f1..78be653364 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; From 7ac35fdfb08f86586b2dc133c45412592a09ddc3 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:40:49 -0500 Subject: [PATCH 022/105] Remove return statements --- .github/workflows/codeql.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5ea0b3d1f9..6393417a5a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -84,7 +84,6 @@ jobs: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); - return fetchAlerts; # Check Existing Issues - name: Check Existing Issues @@ -93,7 +92,6 @@ jobs: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); const checkIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); - return checkIssues; # Create New Issues - name: Create New Issues @@ -102,4 +100,3 @@ jobs: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const newIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); - return newIssues; From b2d321deac8ab0aa1463e7d8e06a67f99a1e2c21 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:41:24 -0500 Subject: [PATCH 023/105] Add console log for testing --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 78be653364..4b4feb9e33 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -27,6 +27,7 @@ const fetchAlerts = async ({ g, c, token }) => { // Convert response to JSON const alerts = await response.json(); + console.log("alerts worked") // Set output for future scripts in workflow core.setOutput("alerts", alerts); From f87b3756d844113813954b3b34f9b30516e09d1a Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:43:58 -0500 Subject: [PATCH 024/105] Add more console logs for testing --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 4b4feb9e33..610a352209 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -9,6 +9,7 @@ var context; * @returns {Promise} A promise that resolves when the alerts are fetched. */ const fetchAlerts = async ({ g, c, token }) => { + console.log("fetchAlerts starts") // Rename parameters github = g; context = c; @@ -19,6 +20,7 @@ const fetchAlerts = async ({ g, c, token }) => { Authorization: `token ${token}` }, }); + console.log('response: ', response); // Throw error if fetch fails if (!response.ok) { @@ -27,6 +29,7 @@ const fetchAlerts = async ({ g, c, token }) => { // Convert response to JSON const alerts = await response.json(); + console.log('alerts: ', alerts); console.log("alerts worked") // Set output for future scripts in workflow From 296cbb745d86820a391ce7888a39b1d10f6635ac Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:52:48 -0500 Subject: [PATCH 025/105] Add env to yml steps and use process.env in token --- .github/workflows/codeql.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 6393417a5a..7bb61b95f0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -80,23 +80,30 @@ jobs: # Fetch Alerts - name: Fetch Alerts uses: actions/github-script@v7 + env: + H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const fetchAlerts = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); # Check Existing Issues - name: Check Existing Issues uses: actions/github-script@v7 + env: + H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const checkIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); # Create New Issues - name: Create New Issues uses: actions/github-script@v7 + env: + H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context, token: ${{secrets.H4LA_TOKEN}} }); + const newIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); + From f44068708d15a470ba2bce4354d828ce0e7eb954 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 11:55:24 -0500 Subject: [PATCH 026/105] Require in core --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 2 ++ .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 86faa51729..c1f517b6d9 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,4 +1,6 @@ const fs = require('fs'); +const core = require('@actions/core'); + // Global variables var github; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 610a352209..b86fd14de4 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,4 +1,6 @@ const fs = require('fs'); +const core = require('@actions/core'); + // Global variables var github; From 5df8e547b600a4c0491ce785aaa205c8eb0d9ab9 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 12:02:55 -0500 Subject: [PATCH 027/105] Add Set up Node.js step to enable core --- .github/workflows/codeql.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7bb61b95f0..e15500b428 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -77,6 +77,11 @@ jobs: with: category: "/language:${{matrix.language}}" + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '14' + # Fetch Alerts - name: Fetch Alerts uses: actions/github-script@v7 From c91e01f3b2966f8aa2fdfcccecbd1db7da400bf9 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 12:06:20 -0500 Subject: [PATCH 028/105] Add step to install actions/core module --- .github/workflows/codeql.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e15500b428..a854759450 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,6 +82,10 @@ jobs: with: node-version: '14' + # Install @actions/core + - name: Install @actions/core + run: npm install @actions/core + # Fetch Alerts - name: Fetch Alerts uses: actions/github-script@v7 From 36dfd2be7240cd65428843adf3ba95e830ba75b7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 12:22:39 -0500 Subject: [PATCH 029/105] Declare alerts and alertId in yml file --- .github/workflows/codeql.yml | 8 ++++++-- .../create-codeql-issues/check-existing-issues.js | 5 +---- .../create-codeql-issues/create-new-issues.js | 5 +---- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 - 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a854759450..fcfb795274 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -88,6 +88,7 @@ jobs: # Fetch Alerts - name: Fetch Alerts + id: fetch-alerts uses: actions/github-script@v7 env: H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} @@ -99,12 +100,14 @@ jobs: # Check Existing Issues - name: Check Existing Issues uses: actions/github-script@v7 + id: check-existing-issues env: H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const checkIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); + const alerts = ${{ steps.fetch-alerts.outputs.alerts }}; + const checkIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN, alerts }); # Create New Issues - name: Create New Issues @@ -114,5 +117,6 @@ jobs: with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const newIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); + const alertId = ${{ steps.check-existing-issues.outputs.alertId }}; + const newIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN, alertId }); diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index c1f517b6d9..79303787a4 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -10,13 +10,10 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c, token }) => { +const checkExistingIssues = async ({ g, c, token, alerts }) => { // Rename parameters github = g; context = c; - - // Get alerts from the fetch-alerts step output - const alerts = ${{ steps.fetch-alerts.outputs.alerts }}; // Loop through each alert for (const alert of alerts) { diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 818e87078c..c75522e081 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -8,14 +8,11 @@ var context; * Creates new GitHub issues for each alert that doesn't have an existing issue. * @returns {Promise} */ -const createNewIssues = async ({ g, c, token }) => { +const createNewIssues = async ({ g, c, token, alertId }) => { // Rename parameters github = g; context = c; - // Get the alertId from the check-existing-issues step output - const alertId = ${{ steps.check-existing-issues.outputs.alertId }}; - // Create the issue title const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index b86fd14de4..faeb0870c7 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,7 +1,6 @@ const fs = require('fs'); const core = require('@actions/core'); - // Global variables var github; var context; From a0fa86d4e289dc12b006f37c474c42e397dc224f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 12:28:12 -0500 Subject: [PATCH 030/105] Add comma to headers in POST request --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index c75522e081..49fefbb267 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -30,7 +30,7 @@ const createNewIssues = async ({ g, c, token, alertId }) => { const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { method: 'POST', headers: { - Authorization: `token ${token}` + Authorization: `token ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ From 58a94299fcf216a83ab9c1e301acefb2b366ff5b Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 12:48:19 -0500 Subject: [PATCH 031/105] Replace TEAMS with H4LA_TOKEN --- .github/workflows/issue-trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-trigger.yml b/.github/workflows/issue-trigger.yml index 55bfd9af08..41f6af5e1c 100644 --- a/.github/workflows/issue-trigger.yml +++ b/.github/workflows/issue-trigger.yml @@ -43,7 +43,7 @@ jobs: username: ${{ github.actor }} organization: 'hackforla' team: 'website-write' - GITHUB_TOKEN: ${{ secrets.TEAMS }} + GITHUB_TOKEN: ${{ secrets.H4LA_TOKEN }} # Checks if user is on the website-write-team - if: ${{ steps.checkUserMember.outputs.isTeamMember == 'true' }} From 88f847228bb5d421eef1845add71e06f76bac84d Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 13:05:04 -0500 Subject: [PATCH 032/105] Update node version --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index fcfb795274..a4313d18a0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -80,7 +80,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: '14' + node-version: '20' # Install @actions/core - name: Install @actions/core From df3078981c2339b82a5960652fa7437cf525677e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 13:16:23 -0500 Subject: [PATCH 033/105] Revert H4LA_TOKEN to TEAMS --- .github/workflows/issue-trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-trigger.yml b/.github/workflows/issue-trigger.yml index 41f6af5e1c..55bfd9af08 100644 --- a/.github/workflows/issue-trigger.yml +++ b/.github/workflows/issue-trigger.yml @@ -43,7 +43,7 @@ jobs: username: ${{ github.actor }} organization: 'hackforla' team: 'website-write' - GITHUB_TOKEN: ${{ secrets.H4LA_TOKEN }} + GITHUB_TOKEN: ${{ secrets.TEAMS }} # Checks if user is on the website-write-team - if: ${{ steps.checkUserMember.outputs.isTeamMember == 'true' }} From 4b9fdee0d19536890204032f6c68beebb4245f6f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 13:22:02 -0500 Subject: [PATCH 034/105] Revert H4LA_TOKEN to GITHUB_TOKEN --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a4313d18a0..d18e58181b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -91,7 +91,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 env: - H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} + H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); @@ -102,7 +102,7 @@ jobs: uses: actions/github-script@v7 id: check-existing-issues env: - H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} + H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); @@ -113,7 +113,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 env: - H4LA_TOKEN: ${{ secrets.H4LA_TOKEN }} + H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); From fc53febf4b1469ed32c4337ced1a6a2e9f943905 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 28 Mar 2024 14:09:41 -0500 Subject: [PATCH 035/105] Remove console logs --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index faeb0870c7..d6957ef2f1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -10,7 +10,6 @@ var context; * @returns {Promise} A promise that resolves when the alerts are fetched. */ const fetchAlerts = async ({ g, c, token }) => { - console.log("fetchAlerts starts") // Rename parameters github = g; context = c; @@ -21,7 +20,6 @@ const fetchAlerts = async ({ g, c, token }) => { Authorization: `token ${token}` }, }); - console.log('response: ', response); // Throw error if fetch fails if (!response.ok) { @@ -30,8 +28,6 @@ const fetchAlerts = async ({ g, c, token }) => { // Convert response to JSON const alerts = await response.json(); - console.log('alerts: ', alerts); - console.log("alerts worked") // Set output for future scripts in workflow core.setOutput("alerts", alerts); From 4f033de71ebd5f01cf339946e1662e6b801effa7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:26:38 -0500 Subject: [PATCH 036/105] Update codeql.yml file --- .github/workflows/codeql.yml | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d18e58181b..f3519f4b00 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -77,46 +77,36 @@ jobs: with: category: "/language:${{matrix.language}}" - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '20' - - # Install @actions/core - - name: Install @actions/core - run: npm install @actions/core - # Fetch Alerts - name: Fetch Alerts id: fetch-alerts uses: actions/github-script@v7 - env: - H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context, token: process.env.H4LA_TOKEN }); + const fetchAlerts = script({ g: github, c: context); + return fetchAlerts # Check Existing Issues - name: Check Existing Issues uses: actions/github-script@v7 id: check-existing-issues - env: - H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); - const alerts = ${{ steps.fetch-alerts.outputs.alerts }}; - const checkIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN, alerts }); + const alerts = ${{ steps.fetch-alerts.outputs.result }}; + const checkExistingIssues = script({ g: github, c: context, alerts); + return checkExistingIssues # Create New Issues - name: Create New Issues uses: actions/github-script@v7 - env: - H4LA_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); - const alertId = ${{ steps.check-existing-issues.outputs.alertId }}; - const newIssues = script({ g: github, c: context, token: process.env.H4LA_TOKEN, alertId }); + const alertIds = ${{ steps.check-existing-issues.outputs.result }}; + const newIssues = script({ g: github, c: context, alertIds); From e548c576e48a830d04bd593114b9f1e66c160dda Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:26:55 -0500 Subject: [PATCH 037/105] Update fetch-alerts.js file --- .../create-codeql-issues/fetch-alerts.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index d6957ef2f1..2a826d2fd2 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,5 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); // Global variables var github; @@ -9,28 +8,31 @@ var context; * Fetches a list of open CodeQL alerts from the GitHub API. * @returns {Promise} A promise that resolves when the alerts are fetched. */ -const fetchAlerts = async ({ g, c, token }) => { +const fetchAlerts = async ({ g, c }) => { // Rename parameters github = g; context = c; // Get a list of open CodeQL alerts - const response = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/code-scanning/alerts?state=active`, { - headers: { - Authorization: `token ${token}` - }, + const fetchAlertsResponse = await github.rest.codeScanning.listAlertsForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + per_page: 100, + page: 1, }); + // Throw error if fetch fails - if (!response.ok) { + if (!fetchAlertsResponse.ok) { throw new Error(`Failed to fetch alerts: ${response.status} - ${response.statusText}`); } // Convert response to JSON const alerts = await response.json(); + console.log('alerts: ', alerts); - // Set output for future scripts in workflow - core.setOutput("alerts", alerts); + return alerts; }; module.exports = fetchAlerts From b73dab9b2fa173648eb89a01b4f3ef7d1f40aa52 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:27:19 -0500 Subject: [PATCH 038/105] Update check-existing-issues.js file --- .../check-existing-issues.js | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 79303787a4..c1dc020be8 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,6 +1,4 @@ const fs = require('fs'); -const core = require('@actions/core'); - // Global variables var github; @@ -10,11 +8,14 @@ var context; * Fetches existing issues for each alert and sets the output for alerts without existing issues. * @returns {Promise} */ -const checkExistingIssues = async ({ g, c, token, alerts }) => { +const checkExistingIssues = async ({ g, c, alerts }) => { // Rename parameters github = g; - context = c; - + context = c; + + // Array to store alertIds without existing issues + let alertIdsWithoutIssues = []; + // Loop through each alert for (const alert of alerts) { const alertId = alert.number; @@ -22,8 +23,8 @@ const checkExistingIssues = async ({ g, c, token, alerts }) => { // Search for existing issues related to the alert const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { headers: { - Authorization: `token ${token}` - } + Authorization: `token ${github}`, + }, }); // Check if the search request was successful @@ -33,13 +34,16 @@ const checkExistingIssues = async ({ g, c, token, alerts }) => { // Convert response to JSON const searchResult = await searchResponse.json(); + console.log('searchResult: ', searchResult); - // If no existing issues are found, set the alertId output and exit the loop + // If no existing issues are found, add the alertId to the array if (searchResult.items.length === 0) { - core.setOutput("alertId", alertId); - break; // Exit the loop after finding the first alert without an existing issue + alertIdsWithoutIssues.push(alertId); } } + + // Return the array of alertIds without existing issues + return alertIdsWithoutIssues; }; module.exports = checkExistingIssues From 8e760fb2baddbe82a4c879fe85d0e75715ce019f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:27:35 -0500 Subject: [PATCH 039/105] Update create-new-issues.js file --- .../create-codeql-issues/create-new-issues.js | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 49fefbb267..3d08c46b90 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -8,44 +8,45 @@ var context; * Creates new GitHub issues for each alert that doesn't have an existing issue. * @returns {Promise} */ -const createNewIssues = async ({ g, c, token, alertId }) => { +const createNewIssues = async ({ g, c, alertIds }) => { // Rename parameters github = g; - context = c; - - // Create the issue title - const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; - - // Read the issue body template file - const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; - let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); - - // Replace placeholders with actual values in the issue body template - issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); - - // Use the modified content as the issue body - const issueBody = issueBodyTemplate; - - // Create a new GitHub issue - const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { - method: 'POST', - headers: { - Authorization: `token ${token}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'] - }) - }); - - /* - if (!createIssueResponse.ok) { - throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); + context = c; + + // Loop through each alertId + for (const alertId of alertIds) { + // Create the issue title + const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + + // Read the issue body template file + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; + let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + + // Replace placeholders with actual values in the issue body template + issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + + // Use the modified content as the issue body + const issueBody = issueBodyTemplate; + + // Create a new GitHub issue + const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { + method: 'POST', + headers: { + Authorization: `token ${token}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + title: issueTitle, + body: issueBody, + labels: ['ready for dev lead'], + }), + }); + + if (!createIssueResponse.ok) { + throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); + } + console.log("issue created"); } - */ }; -module.exports = createNewIssues - +module.exports = createNewIssues; From 6d0537caf2a91e722531c00c51efcd1ed9efe9e8 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:30:43 -0500 Subject: [PATCH 040/105] Replace missing curly braces --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f3519f4b00..39dbc0d64d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -85,7 +85,7 @@ jobs: github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); - const fetchAlerts = script({ g: github, c: context); + const fetchAlerts = script({ g: github, c: context }); return fetchAlerts # Check Existing Issues @@ -97,7 +97,7 @@ jobs: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); const alerts = ${{ steps.fetch-alerts.outputs.result }}; - const checkExistingIssues = script({ g: github, c: context, alerts); + const checkExistingIssues = script({ g: github, c: context, alerts}); return checkExistingIssues # Create New Issues @@ -108,5 +108,5 @@ jobs: script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; - const newIssues = script({ g: github, c: context, alertIds); + const newIssues = script({ g: github, c: context, alertIds}); From b34426b0c43d7e8cbb3bc14ec9cc1dff0488c81c Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:33:33 -0500 Subject: [PATCH 041/105] Replace response with fetchAlertsResponse --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 2a826d2fd2..c8e355581c 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -25,11 +25,11 @@ const fetchAlerts = async ({ g, c }) => { // Throw error if fetch fails if (!fetchAlertsResponse.ok) { - throw new Error(`Failed to fetch alerts: ${response.status} - ${response.statusText}`); + throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); } // Convert response to JSON - const alerts = await response.json(); + const alerts = await fetchAlertsResponse.json(); console.log('alerts: ', alerts); return alerts; From 6138ba7f262e51cfe1463f061100dba069462fd3 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:38:14 -0500 Subject: [PATCH 042/105] Replace listAlertsForRepo with GET request --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index c8e355581c..d41e60766b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -14,15 +14,14 @@ const fetchAlerts = async ({ g, c }) => { context = c; // Get a list of open CodeQL alerts - const fetchAlertsResponse = await github.rest.codeScanning.listAlertsForRepo({ + const fetchAlertsResponse = await github.request('GET /repos/{owner}/{repo}/code-scanning/alerts', { owner: context.repo.owner, repo: context.repo.repo, state: 'open', per_page: 100, - page: 1, + page: 1 }); - // Throw error if fetch fails if (!fetchAlertsResponse.ok) { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); From 5d8546d6a0604ab34e8b4d3d7c2dc0e89c0f92b2 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:45:47 -0500 Subject: [PATCH 043/105] Replace ok with 200 --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index d41e60766b..9e0e4faa8e 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -23,7 +23,7 @@ const fetchAlerts = async ({ g, c }) => { }); // Throw error if fetch fails - if (!fetchAlertsResponse.ok) { + if (fetchAlertsResponse.status !== 200) { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); } From 41a981bd246ee401cfdbf5acd40a8497368c4f84 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:50:07 -0500 Subject: [PATCH 044/105] Add comments and console log for testing --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 9e0e4faa8e..e949df92e1 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -6,7 +6,11 @@ var context; /** * Fetches a list of open CodeQL alerts from the GitHub API. - * @returns {Promise} A promise that resolves when the alerts are fetched. + * @param {Object} params - The parameters for the fetch operation. + * @param {Object} params.g - The GitHub object for making API requests. + * @param {Object} params.c - The context object containing repository information. + * @returns {Promise} A promise that resolves with an array of alerts when the fetch is successful. + * @throws {Error} If the fetch operation fails. */ const fetchAlerts = async ({ g, c }) => { // Rename parameters @@ -22,6 +26,8 @@ const fetchAlerts = async ({ g, c }) => { page: 1 }); + console.log("fetchAlertsResponse: ", fetchAlertsResponse); + // Throw error if fetch fails if (fetchAlertsResponse.status !== 200) { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); From 22e80340a32e1afd2d0aa9a42c4e2899cbeb7bb6 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:53:32 -0500 Subject: [PATCH 045/105] Remove .json() --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index e949df92e1..426060b793 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -33,11 +33,7 @@ const fetchAlerts = async ({ g, c }) => { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); } - // Convert response to JSON - const alerts = await fetchAlertsResponse.json(); - console.log('alerts: ', alerts); - - return alerts; + return fetchAlertsResponse.data }; module.exports = fetchAlerts From 96745c6b6535810ae536ee911803c637d1ede328 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 09:56:13 -0500 Subject: [PATCH 046/105] Replace ok with 200 --- .../create-codeql-issues/check-existing-issues.js | 2 +- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index c1dc020be8..2f688c7501 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -28,7 +28,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { }); // Check if the search request was successful - if (!searchResponse.ok) { + if (searchResponse.status !== 200) { throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); } diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 426060b793..7ff69932b9 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -26,13 +26,12 @@ const fetchAlerts = async ({ g, c }) => { page: 1 }); - console.log("fetchAlertsResponse: ", fetchAlertsResponse); - // Throw error if fetch fails if (fetchAlertsResponse.status !== 200) { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); } + // Return alerts return fetchAlertsResponse.data }; From 472d26f2547c517308512f89e81b8bd7862b1130 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 10:00:07 -0500 Subject: [PATCH 047/105] Update comments and POST request syntax --- .../create-codeql-issues/check-existing-issues.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 2f688c7501..182ae5d55a 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -6,7 +6,11 @@ var context; /** * Fetches existing issues for each alert and sets the output for alerts without existing issues. - * @returns {Promise} + * @param {Object} options - The options object. + * @param {string} options.g - The GitHub access token. + * @param {Object} options.c - The context object. + * @param {Array} options.alerts - The array of alerts to check. + * @returns {Promise>} An array of alert IDs without existing issues. */ const checkExistingIssues = async ({ g, c, alerts }) => { // Rename parameters @@ -21,10 +25,10 @@ const checkExistingIssues = async ({ g, c, alerts }) => { const alertId = alert.number; // Search for existing issues related to the alert - const searchResponse = await fetch(`https://api.github.com/search/issues?q=repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, { - headers: { - Authorization: `token ${github}`, - }, + const searchResponse = await github.request('POST /search/issues', { + owner: context.repo.owner, + repo: context.repo.repo, + q: `repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, }); // Check if the search request was successful From aa085762057b48094f6e5f368526277a3aa1cee7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 10:06:24 -0500 Subject: [PATCH 048/105] Replace ok with 200 on create-new-issues.js and change POST to GET on check-existing-issues.js --- .../create-codeql-issues/check-existing-issues.js | 6 ++---- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 182ae5d55a..ab8e9e7d95 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -25,10 +25,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { const alertId = alert.number; // Search for existing issues related to the alert - const searchResponse = await github.request('POST /search/issues', { - owner: context.repo.owner, - repo: context.repo.repo, - q: `repo:${context.repo.owner}/${context.repo.repo}+state:open+${encodeURIComponent(`"${alertId}"`)}+in:title`, + const searchResponse = await github.request('GET /search/issues', { + q: `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`, }); // Check if the search request was successful diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 3d08c46b90..9ae3185486 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -42,7 +42,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { }), }); - if (!createIssueResponse.ok) { + if (createIssueResponse.status !== 200) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } console.log("issue created"); From 5c925ab8a1f88e84e2fb4b0552adb7a1d4f9aed0 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 10:08:51 -0500 Subject: [PATCH 049/105] Replace .json() with .data --- .../create-codeql-issues/check-existing-issues.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index ab8e9e7d95..4ac42eec5a 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -34,9 +34,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); } - // Convert response to JSON - const searchResult = await searchResponse.json(); - console.log('searchResult: ', searchResult); + // Assign response data to variable for access + const searchResult = searchResponse.data // If no existing issues are found, add the alertId to the array if (searchResult.items.length === 0) { From 421513ff7ad25852dc7896f5cea86e4df339e78e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 10:26:01 -0500 Subject: [PATCH 050/105] Update POST request syntax --- .../create-codeql-issues/create-new-issues.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 9ae3185486..5f7eddd61d 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -6,6 +6,10 @@ var context; /** * Creates new GitHub issues for each alert that doesn't have an existing issue. + * @param {Object} options - The options object. + * @param {string} options.g - The GitHub access token. + * @param {Object} options.c - The context object. + * @param {Array} options.alertIds - The array of alert IDs to create issues for. * @returns {Promise} */ const createNewIssues = async ({ g, c, alertIds }) => { @@ -29,23 +33,21 @@ const createNewIssues = async ({ g, c, alertIds }) => { const issueBody = issueBodyTemplate; // Create a new GitHub issue - const createIssueResponse = await fetch(`https://api.github.com/repos/${context.repo.owner}/${context.repo.repo}/issues`, { - method: 'POST', + const createIssueResponse = await github.request('POST /repos/{owner}/{repo}/issues', { + owner: context.repo.owner, + repo: context.repo.repo, headers: { - Authorization: `token ${token}`, 'Content-Type': 'application/json', }, - body: JSON.stringify({ - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'], - }), + title: issueTitle, + body: issueBody, + labels: ['ready for dev lead'], }); if (createIssueResponse.status !== 200) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } - console.log("issue created"); + console.log('issue created'); } }; From 64658110cb238dac3dafa763292cc4f6fe0e555e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 10:31:13 -0500 Subject: [PATCH 051/105] Update comments and change secrets --- .github/workflows/codeql.yml | 6 +++--- .../create-codeql-issues/check-existing-issues.js | 1 + .../trigger-issue/create-codeql-issues/create-new-issues.js | 1 + .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 39dbc0d64d..fdb5ddc8a1 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,7 +82,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.H4LA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context }); @@ -93,7 +93,7 @@ jobs: uses: actions/github-script@v7 id: check-existing-issues with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.H4LA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); const alerts = ${{ steps.fetch-alerts.outputs.result }}; @@ -104,7 +104,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.H4LA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 4ac42eec5a..167038baed 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -11,6 +11,7 @@ var context; * @param {Object} options.c - The context object. * @param {Array} options.alerts - The array of alerts to check. * @returns {Promise>} An array of alert IDs without existing issues. + * @throws {Error} If the GET request fails. */ const checkExistingIssues = async ({ g, c, alerts }) => { // Rename parameters diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 5f7eddd61d..a3d6babc97 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -11,6 +11,7 @@ var context; * @param {Object} options.c - The context object. * @param {Array} options.alertIds - The array of alert IDs to create issues for. * @returns {Promise} + * @throws {Error} If the POST request fails. */ const createNewIssues = async ({ g, c, alertIds }) => { // Rename parameters diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 7ff69932b9..3657d7a910 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -10,7 +10,7 @@ var context; * @param {Object} params.g - The GitHub object for making API requests. * @param {Object} params.c - The context object containing repository information. * @returns {Promise} A promise that resolves with an array of alerts when the fetch is successful. - * @throws {Error} If the fetch operation fails. + * @throws {Error} If the GET request fails. */ const fetchAlerts = async ({ g, c }) => { // Rename parameters From 42bc5f223254afdc3e47ab34ed78c1f72b2766a4 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:20:16 -0500 Subject: [PATCH 052/105] Revert secret name --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index fdb5ddc8a1..39dbc0d64d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,7 +82,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 with: - github-token: ${{ secrets.H4LA_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context }); @@ -93,7 +93,7 @@ jobs: uses: actions/github-script@v7 id: check-existing-issues with: - github-token: ${{ secrets.H4LA_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); const alerts = ${{ steps.fetch-alerts.outputs.result }}; @@ -104,7 +104,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.H4LA_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From 7769774586b9de25320f927ae7826b9cfb9d274d Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:20:53 -0500 Subject: [PATCH 053/105] Add comments --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 1 + .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index a3d6babc97..b31b219070 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -45,6 +45,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); + // Throw error if POST request fails if (createIssueResponse.status !== 200) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 3657d7a910..ce43b44925 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -26,7 +26,7 @@ const fetchAlerts = async ({ g, c }) => { page: 1 }); - // Throw error if fetch fails + // Throw error if GET request fails if (fetchAlertsResponse.status !== 200) { throw new Error(`Failed to fetch alerts: ${fetchAlertsResponse.status} - ${fetchAlertsResponse.statusText}`); } From c1e7fbfb87bb8e08408c75ed32b71521026858a7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:21:22 -0500 Subject: [PATCH 054/105] Batch API requests to avoid hitting rate limit --- .../check-existing-issues.js | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 167038baed..6c753b9e8a 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -18,33 +18,43 @@ const checkExistingIssues = async ({ g, c, alerts }) => { github = g; context = c; - // Array to store alertIds without existing issues + // Initialize empty array to store alertIds let alertIdsWithoutIssues = []; - // Loop through each alert - for (const alert of alerts) { - const alertId = alert.number; - - // Search for existing issues related to the alert - const searchResponse = await github.request('GET /search/issues', { - q: `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`, - }); - - // Check if the search request was successful + // Batch alerts into groups of 10 for each request to avoid rate limit + const batchedAlertIds = alerts.reduce((acc, alert, index) => { + const batchIndex = Math.floor(index / 10); + acc[batchIndex] = acc[batchIndex] || []; + acc[batchIndex].push(alert.number); + // Returns array of arrays + return acc; + }, []); + + // Loop through each batch of alerts + for (const tenAlertIds of batchedAlertIds) { + // Creates one query for multiple IDs + const q = tenAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); + + // Query GitHub API in batches + const searchResponse = await github.request('GET /search/issues', { q }); + console.log('searchResponse: ', searchResponse); + + // Throw error if GET request fails if (searchResponse.status !== 200) { throw new Error(`Failed to search for issues: ${searchResponse.status} - ${searchResponse.statusText}`); } - // Assign response data to variable for access - const searchResult = searchResponse.data + // Store the response data in a variable for easy access + const searchResult = searchResponse.data; + console.log('searchResult: ', searchResult); - // If no existing issues are found, add the alertId to the array - if (searchResult.items.length === 0) { - alertIdsWithoutIssues.push(alertId); - } + // Push alertIds that do not exist in searchResult to alertIdsWithoutIssues array + alertIdsWithoutIssues.push(...alertIds.filter(alertId => !searchResult.items.some(item => item.id === alertId))); } - // Return the array of alertIds without existing issues + console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); + + // Return flat array of alertIds that do not have issues return alertIdsWithoutIssues; }; From 90a1e6a921aa3c03559039305894834388359be1 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:30:01 -0500 Subject: [PATCH 055/105] Add comments --- .../create-codeql-issues/check-existing-issues.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 6c753b9e8a..d148c09110 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -23,8 +23,14 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Batch alerts into groups of 10 for each request to avoid rate limit const batchedAlertIds = alerts.reduce((acc, alert, index) => { + // For indexes 0 to 9, batchIndex == 0 + // For indexes 10 to 19, batchIndex == 1 + // For indexes 20 to 29, batchIndex == 2 + // Etc. const batchIndex = Math.floor(index / 10); + // if acc[batchIndex] == undefined, a new array is created before pushing the alert number acc[batchIndex] = acc[batchIndex] || []; + // Push alert.number to inner array acc[batchIndex].push(alert.number); // Returns array of arrays return acc; @@ -32,7 +38,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Loop through each batch of alerts for (const tenAlertIds of batchedAlertIds) { - // Creates one query for multiple IDs + // Creates one query for multiple alertIds const q = tenAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); // Query GitHub API in batches From 1f5c71c8c1b44f1c773d0ae063b51e510054e93f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:35:33 -0500 Subject: [PATCH 056/105] Adjust alertIdsWithoutIssues.push logic --- .../create-codeql-issues/check-existing-issues.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index d148c09110..39faaac8d2 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -54,9 +54,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { const searchResult = searchResponse.data; console.log('searchResult: ', searchResult); - // Push alertIds that do not exist in searchResult to alertIdsWithoutIssues array - alertIdsWithoutIssues.push(...alertIds.filter(alertId => !searchResult.items.some(item => item.id === alertId))); - } + // Push alertIds that do not have existing issues in searchResult to output array + alertIdsWithoutIssues.push(...tenAlertIds.filter(alertId => !searchResult.items.some(item => item.title.includes(alertId)))); console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); From bbdd32846b6c04c53952b9d4c9674276d91c15fa Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 11:37:50 -0500 Subject: [PATCH 057/105] Add console logs --- .../create-codeql-issues/check-existing-issues.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 39faaac8d2..f492676091 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -41,6 +41,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Creates one query for multiple alertIds const q = tenAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); + console.log("q: ", q) + // Query GitHub API in batches const searchResponse = await github.request('GET /search/issues', { q }); console.log('searchResponse: ', searchResponse); @@ -56,9 +58,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Push alertIds that do not have existing issues in searchResult to output array alertIdsWithoutIssues.push(...tenAlertIds.filter(alertId => !searchResult.items.some(item => item.title.includes(alertId)))); - + }; console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); - // Return flat array of alertIds that do not have issues return alertIdsWithoutIssues; }; From a59defbef66ad4e77d2c0a59e091968a57d6c5eb Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:03:40 -0500 Subject: [PATCH 058/105] Reduce batches from 10 to 5 due to GitHub limit --- .../create-codeql-issues/check-existing-issues.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index f492676091..cfefa8e28b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -23,11 +23,11 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Batch alerts into groups of 10 for each request to avoid rate limit const batchedAlertIds = alerts.reduce((acc, alert, index) => { - // For indexes 0 to 9, batchIndex == 0 - // For indexes 10 to 19, batchIndex == 1 - // For indexes 20 to 29, batchIndex == 2 + // For indexes 0 to 4, batchIndex == 0 + // For indexes 5 to 9, batchIndex == 1 + // For indexes 10 to 14, batchIndex == 2 // Etc. - const batchIndex = Math.floor(index / 10); + const batchIndex = Math.floor(index / 5); // if acc[batchIndex] == undefined, a new array is created before pushing the alert number acc[batchIndex] = acc[batchIndex] || []; // Push alert.number to inner array @@ -37,9 +37,9 @@ const checkExistingIssues = async ({ g, c, alerts }) => { }, []); // Loop through each batch of alerts - for (const tenAlertIds of batchedAlertIds) { + for (const fiveAlertIds of batchedAlertIds) { // Creates one query for multiple alertIds - const q = tenAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); + const q = fiveAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); console.log("q: ", q) @@ -57,7 +57,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { console.log('searchResult: ', searchResult); // Push alertIds that do not have existing issues in searchResult to output array - alertIdsWithoutIssues.push(...tenAlertIds.filter(alertId => !searchResult.items.some(item => item.title.includes(alertId)))); + alertIdsWithoutIssues.push(...fiveAlertIds.filter(alertId => !searchResult.items.some(item => item.title.includes(alertId)))); }; console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); // Return flat array of alertIds that do not have issues From 2c4d5ace948f6a65ebc0b5a35fc135376a6236e8 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:07:58 -0500 Subject: [PATCH 059/105] Adjust createIssueResponse query --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index b31b219070..6f620c67c3 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -34,9 +34,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { const issueBody = issueBodyTemplate; // Create a new GitHub issue - const createIssueResponse = await github.request('POST /repos/{owner}/{repo}/issues', { - owner: context.repo.owner, - repo: context.repo.repo, + const createIssueResponse = await github.request('POST /repos/{context.repo.owner}/{context.repo.repo}/issues', { headers: { 'Content-Type': 'application/json', }, From 09009b6cebbfe3f7d1537ff6f0e6bdfee2551dfb Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:11:04 -0500 Subject: [PATCH 060/105] Add comment --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 1 + 1 file changed, 1 insertion(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index cfefa8e28b..b8abcfd4fd 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -22,6 +22,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { let alertIdsWithoutIssues = []; // Batch alerts into groups of 10 for each request to avoid rate limit + // Limit for /search/issues endpoint is 30 requests const batchedAlertIds = alerts.reduce((acc, alert, index) => { // For indexes 0 to 4, batchIndex == 0 // For indexes 5 to 9, batchIndex == 1 From edca295ec98264bdc834388034cc0e2cf8725cb3 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:13:07 -0500 Subject: [PATCH 061/105] Add template literals to query url and add comment for testing --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 6f620c67c3..6fc658d478 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -34,7 +34,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { const issueBody = issueBodyTemplate; // Create a new GitHub issue - const createIssueResponse = await github.request('POST /repos/{context.repo.owner}/{context.repo.repo}/issues', { + const createIssueResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { headers: { 'Content-Type': 'application/json', }, @@ -43,6 +43,8 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); + console.log('createIssueResponse:', createIssueResponse); + // Throw error if POST request fails if (createIssueResponse.status !== 200) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); From 38b243931f9e805a186fd638d9dc6babd3352519 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:19:36 -0500 Subject: [PATCH 062/105] Change 200 to 201 --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 6fc658d478..a521b66956 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -46,7 +46,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { console.log('createIssueResponse:', createIssueResponse); // Throw error if POST request fails - if (createIssueResponse.status !== 200) { + if (createIssueResponse.status !== 201) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } console.log('issue created'); From f48be3ea385890ec4acf2f5ed59e44ed623c072b Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:55:42 -0500 Subject: [PATCH 063/105] Update comment --- .../create-codeql-issues/check-existing-issues.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index b8abcfd4fd..df905e06bb 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -21,8 +21,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Initialize empty array to store alertIds let alertIdsWithoutIssues = []; - // Batch alerts into groups of 10 for each request to avoid rate limit - // Limit for /search/issues endpoint is 30 requests + // Batch alerts into groups of 5 for each request to avoid rate limit const batchedAlertIds = alerts.reduce((acc, alert, index) => { // For indexes 0 to 4, batchIndex == 0 // For indexes 5 to 9, batchIndex == 1 From da760a93dbdfb825a5a7f129cbbb711fe9c6bf60 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 12:56:00 -0500 Subject: [PATCH 064/105] Batch issue creation requests to avoid rate limit --- .../create-codeql-issues/create-new-issues.js | 77 +++++++++++-------- 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index a521b66956..11e15fb5c3 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -1,8 +1,8 @@ const fs = require('fs'); // Global variables -var github; -var context; +let github; +let context; /** * Creates new GitHub issues for each alert that doesn't have an existing issue. @@ -18,39 +18,54 @@ const createNewIssues = async ({ g, c, alertIds }) => { github = g; context = c; - // Loop through each alertId - for (const alertId of alertIds) { - // Create the issue title - const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + // Batch alerts into groups of 5 for each request to avoid rate limit + const batchedAlertIds = alertIds.reduce((acc, alertId, index) => { + // For indexes 0 to 4, batchIndex == 0 + // For indexes 5 to 9, batchIndex == 1 + // For indexes 10 to 14, batchIndex == 2 + // Etc. + const batchIndex = Math.floor(index / 5); + // if acc[batchIndex] == undefined, a new array is created before pushing the alert number + acc[batchIndex] = acc[batchIndex] || []; + // Push alert.number to inner array + acc[batchIndex].push(alertId); + // Returns array of arrays + return acc; + }, []); - // Read the issue body template file - const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; - let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + // Create batch request payload + const batchRequests = batchedAlertIds.map(alertIdsBatch => ({ + method: 'POST', + url: `/repos/${context.repo.owner}/${context.repo.repo}/issues/batch`, + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + alerts: alertIdsBatch.map(alertId => ({ + title: `Resolve CodeQL query #${alertId} - generated by GHA`, + body: fs.readFileSync('github-actions/trigger-issue/create-codeql-issues/issue-body.md', 'utf8').replace(/\${alertId}/g, alertId), + labels: ['ready for dev lead'], + })), + }), + })); - // Replace placeholders with actual values in the issue body template - issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + // Send batch request + const batchResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/batch`, { + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + requests: batchRequests, + }), + }); - // Use the modified content as the issue body - const issueBody = issueBodyTemplate; - - // Create a new GitHub issue - const createIssueResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { - headers: { - 'Content-Type': 'application/json', - }, - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'], - }); - - console.log('createIssueResponse:', createIssueResponse); - - // Throw error if POST request fails - if (createIssueResponse.status !== 201) { - throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); + // Throw error if POST request fails + batchResponse.data.forEach((response, index) => { + if (response.status !== 201) { + throw new Error(`Failed to create issue for alert ${alertIds[index]}: ${response.status} - ${response.statusText}`); } - console.log('issue created'); - } + console.log('Issue created for alert', alertIds[index]); + }); }; module.exports = createNewIssues; From a586f95e3d0d20b9b3ce2695988c759c19d3ac44 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 13:07:21 -0500 Subject: [PATCH 065/105] Adjust batching of new issue requests --- .../create-codeql-issues/create-new-issues.js | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 11e15fb5c3..ed4c8e6260 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -18,54 +18,54 @@ const createNewIssues = async ({ g, c, alertIds }) => { github = g; context = c; - // Batch alerts into groups of 5 for each request to avoid rate limit - const batchedAlertIds = alertIds.reduce((acc, alertId, index) => { - // For indexes 0 to 4, batchIndex == 0 - // For indexes 5 to 9, batchIndex == 1 - // For indexes 10 to 14, batchIndex == 2 - // Etc. - const batchIndex = Math.floor(index / 5); - // if acc[batchIndex] == undefined, a new array is created before pushing the alert number - acc[batchIndex] = acc[batchIndex] || []; - // Push alert.number to inner array - acc[batchIndex].push(alertId); - // Returns array of arrays - return acc; - }, []); + // Batch alertIds into groups of 10 for each request + const batchSize = 10; + const batches = []; + for (let i = 0; i < alertIds.length; i += batchSize) { + batches.push(alertIds.slice(i, i + batchSize)); + } - // Create batch request payload - const batchRequests = batchedAlertIds.map(alertIdsBatch => ({ - method: 'POST', - url: `/repos/${context.repo.owner}/${context.repo.repo}/issues/batch`, - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - alerts: alertIdsBatch.map(alertId => ({ - title: `Resolve CodeQL query #${alertId} - generated by GHA`, - body: fs.readFileSync('github-actions/trigger-issue/create-codeql-issues/issue-body.md', 'utf8').replace(/\${alertId}/g, alertId), + // Loop through each batch of alertIds + for (const batch of batches) { + // Create the issues array for the batch + const issues = batch.map(alertId => { + // Create the issue title + const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + + // Read the issue body template file + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; + let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + + // Replace placeholders with actual values in the issue body template + issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + + // Use the modified content as the issue body + const issueBody = issueBodyTemplate; + + return { + title: issueTitle, + body: issueBody, labels: ['ready for dev lead'], - })), - }), - })); + }; + }); + + // Create a new GitHub issue for the batch + const createIssuesResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { + headers: { + 'Content-Type': 'application/json', + }, + method: 'POST', + body: JSON.stringify(issues), + }); - // Send batch request - const batchResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/batch`, { - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - requests: batchRequests, - }), - }); + console.log('createIssuesResponse:', createIssuesResponse); - // Throw error if POST request fails - batchResponse.data.forEach((response, index) => { - if (response.status !== 201) { - throw new Error(`Failed to create issue for alert ${alertIds[index]}: ${response.status} - ${response.statusText}`); + // Throw error if POST request fails (201 not created) + if (createIssuesResponse.status !== 201) { + throw new Error(`Failed to create issues for batch: ${createIssuesResponse.status} - ${createIssuesResponse.statusText}`); } - console.log('Issue created for alert', alertIds[index]); - }); + console.log('issues created'); + } }; module.exports = createNewIssues; From ea352cf18cab973d8a4a59958abec697028ea59a Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 13:09:14 -0500 Subject: [PATCH 066/105] Revert changes --- .../create-codeql-issues/create-new-issues.js | 59 +++++++------------ 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index ed4c8e6260..608d82a15f 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -1,8 +1,8 @@ const fs = require('fs'); // Global variables -let github; -let context; +var github; +var context; /** * Creates new GitHub issues for each alert that doesn't have an existing issue. @@ -18,53 +18,38 @@ const createNewIssues = async ({ g, c, alertIds }) => { github = g; context = c; - // Batch alertIds into groups of 10 for each request - const batchSize = 10; - const batches = []; - for (let i = 0; i < alertIds.length; i += batchSize) { - batches.push(alertIds.slice(i, i + batchSize)); - } - - // Loop through each batch of alertIds - for (const batch of batches) { - // Create the issues array for the batch - const issues = batch.map(alertId => { - // Create the issue title - const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + // Loop through each alertId + for (const alertId of alertIds) { + // Create the issue title + const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; - // Read the issue body template file - const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; - let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); + // Read the issue body template file + const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; + let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); - // Replace placeholders with actual values in the issue body template - issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); + // Replace placeholders with actual values in the issue body template + issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); - // Use the modified content as the issue body - const issueBody = issueBodyTemplate; - - return { - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'], - }; - }); + // Use the modified content as the issue body + const issueBody = issueBodyTemplate; - // Create a new GitHub issue for the batch - const createIssuesResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { + // Create a new GitHub issue + const createIssueResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { headers: { 'Content-Type': 'application/json', }, - method: 'POST', - body: JSON.stringify(issues), + title: issueTitle, + body: issueBody, + labels: ['ready for dev lead'], }); - console.log('createIssuesResponse:', createIssuesResponse); + console.log('createIssueResponse:', createIssueResponse); // Throw error if POST request fails (201 not created) - if (createIssuesResponse.status !== 201) { - throw new Error(`Failed to create issues for batch: ${createIssuesResponse.status} - ${createIssuesResponse.statusText}`); + if (createIssueResponse.status !== 201) { + throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } - console.log('issues created'); + console.log('issue created'); } }; From 5ea64a6f7340f3194e47aa5c3d577307b27a9206 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 14:25:29 -0500 Subject: [PATCH 067/105] Remove comment --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 1 - 1 file changed, 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 608d82a15f..630d2f4765 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -49,7 +49,6 @@ const createNewIssues = async ({ g, c, alertIds }) => { if (createIssueResponse.status !== 201) { throw new Error(`Failed to create issue for alert ${alertId}: ${createIssueResponse.status} - ${createIssueResponse.statusText}`); } - console.log('issue created'); } }; From bb480885417f679b5a417c1356244ddc39b2c423 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 14:51:33 -0500 Subject: [PATCH 068/105] Move console log --- .../create-codeql-issues/check-existing-issues.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index df905e06bb..79ffa2109e 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -41,11 +41,8 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Creates one query for multiple alertIds const q = fiveAlertIds.map(alertId => `repo:${context.repo.owner}/${context.repo.repo}+state:open+"${alertId}"+in:title`).join('+OR+'); - console.log("q: ", q) - // Query GitHub API in batches const searchResponse = await github.request('GET /search/issues', { q }); - console.log('searchResponse: ', searchResponse); // Throw error if GET request fails if (searchResponse.status !== 200) { @@ -54,13 +51,13 @@ const checkExistingIssues = async ({ g, c, alerts }) => { // Store the response data in a variable for easy access const searchResult = searchResponse.data; - console.log('searchResult: ', searchResult); // Push alertIds that do not have existing issues in searchResult to output array alertIdsWithoutIssues.push(...fiveAlertIds.filter(alertId => !searchResult.items.some(item => item.title.includes(alertId)))); }; - console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); + // Return flat array of alertIds that do not have issues + console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); return alertIdsWithoutIssues; }; From 61c5884fbe45a6a363f0f6707aa53a6fce42154b Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 14:55:38 -0500 Subject: [PATCH 069/105] Update console log --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 630d2f4765..8305345c85 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -43,7 +43,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); - console.log('createIssueResponse:', createIssueResponse); + console.log('Issues Created:', createIssueResponse.data.title); // Throw error if POST request fails (201 not created) if (createIssueResponse.status !== 201) { From 79bd852e104500478bd528e655f3d87f8cc89120 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 14:56:47 -0500 Subject: [PATCH 070/105] Update console log --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 8305345c85..53859f511e 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -43,7 +43,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); - console.log('Issues Created:', createIssueResponse.data.title); + console.log('Issue Created:', createIssueResponse.data.title); // Throw error if POST request fails (201 not created) if (createIssueResponse.status !== 201) { From 6c417c7eda8f5ea6e43856e1cd03a7473d99cda2 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 14:58:06 -0500 Subject: [PATCH 071/105] Update console log --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 53859f511e..5f77e6bde5 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -43,7 +43,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); - console.log('Issue Created:', createIssueResponse.data.title); + console.log('Issue Created:', createIssueResponse.data.title, createIssueResponse.data.html_url); // Throw error if POST request fails (201 not created) if (createIssueResponse.status !== 201) { From f97ad3301a5633fc2c86a97fd79d22e096a94f83 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sat, 30 Mar 2024 15:54:17 -0500 Subject: [PATCH 072/105] Replaced test branch with gh-pages --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 39dbc0d64d..0c8472bf41 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "create-new-codeql-issues-5059" ] + branches: [ 'gh-pages' ] pull_request: # The branches below must be a subset of the branches above - branches: [ "create-new-codeql-issues-5059" ] + branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' From 790c4eeff5481b64c1d7556da3bf5e066bdb9318 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Tue, 2 Apr 2024 09:56:50 -0500 Subject: [PATCH 073/105] Update console logs and comments --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 2 +- .../trigger-issue/create-codeql-issues/create-new-issues.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index 79ffa2109e..fde5d8788b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -57,7 +57,7 @@ const checkExistingIssues = async ({ g, c, alerts }) => { }; // Return flat array of alertIds that do not have issues - console.log('alertIdsWithoutIssues: ', alertIdsWithoutIssues); + console.log('alertIds without issues: ', alertIdsWithoutIssues); return alertIdsWithoutIssues; }; diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 5f77e6bde5..b8587c9024 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -43,6 +43,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { labels: ['ready for dev lead'], }); + // Log issue titles and links in GHA workflow console.log('Issue Created:', createIssueResponse.data.title, createIssueResponse.data.html_url); // Throw error if POST request fails (201 not created) From 7fefb6bacdec18d6470d931ee83facf432b68e27 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 12:23:51 -0500 Subject: [PATCH 074/105] Removed fs and updated issueTitle --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index b8587c9024..79a693f83b 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -1,5 +1,3 @@ -const fs = require('fs'); - // Global variables var github; var context; @@ -21,7 +19,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { // Loop through each alertId for (const alertId of alertIds) { // Create the issue title - const issueTitle = `Resolve CodeQL query #${alertId} - generated by GHA`; + const issueTitle = `Resolve CodeQL Alert #${alertId} - Generated by GHA`; // Read the issue body template file const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; From 16e4f1b2d419f510b6d8daf364b9c738b8fab2f7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 12:23:59 -0500 Subject: [PATCH 075/105] Removed fs --- .../trigger-issue/create-codeql-issues/check-existing-issues.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js index fde5d8788b..d3e18f8547 100644 --- a/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js @@ -1,5 +1,3 @@ -const fs = require('fs'); - // Global variables var github; var context; From f56f591c02569f01a647acf6e8e11dc15a8a6af7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 12:29:06 -0500 Subject: [PATCH 076/105] Add fs back in --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 79a693f83b..cee31b7180 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -1,3 +1,5 @@ +const fs = require('fs'); + // Global variables var github; var context; From 50d17cbdc043d1c2951fe4da8da87e5f8af2ce87 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 12:29:15 -0500 Subject: [PATCH 077/105] Remove fs --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index ce43b44925..94c119d0f3 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,5 +1,3 @@ -const fs = require('fs'); - // Global variables var github; var context; From 63f4a95e7fa9b82ea60a3e081220b1b55fcd8c44 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 14:52:17 -0500 Subject: [PATCH 078/105] Add HACKFORLA_ADMIN_TOKEN in fetch-alerts secret --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0c8472bf41..92a05fba85 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,7 +82,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context }); From ca49d34e27906787c76d8a7af9a596ebeab3048a Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Wed, 3 Apr 2024 17:30:57 -0500 Subject: [PATCH 079/105] Revert secret back to HACKFORLA_BOT_PA_TOKEN --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 92a05fba85..0c8472bf41 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,7 +82,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context }); From 7961ff2c2376f5807455dabd6ed7c92aabbe077f Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 4 Apr 2024 17:00:10 -0500 Subject: [PATCH 080/105] Swap bot token for GITHUB_TOKEN --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0c8472bf41..6cd10a7700 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -82,7 +82,7 @@ jobs: id: fetch-alerts uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js'); const fetchAlerts = script({ g: github, c: context }); @@ -93,7 +93,7 @@ jobs: uses: actions/github-script@v7 id: check-existing-issues with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/check-existing-issues.js'); const alerts = ${{ steps.fetch-alerts.outputs.result }}; @@ -104,7 +104,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From be8de71937c283b210244f1e9b625fcd87dc5905 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 4 Apr 2024 17:03:28 -0500 Subject: [PATCH 081/105] Replace GITHUB_TOKEN with HACKFORLA_BOT_PA_TOKEN on Create New Issues step --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 6cd10a7700..c27ecbbccf 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -104,7 +104,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From bcc7673604c56a1f31f69d1e69d09184e2096d3d Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Thu, 4 Apr 2024 17:10:51 -0500 Subject: [PATCH 082/105] Revert token on Create New Issues --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c27ecbbccf..6cd10a7700 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -104,7 +104,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From 9dd363a0816b4efd323a5d33815de8593e45ec49 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Fri, 5 Apr 2024 20:11:28 -0500 Subject: [PATCH 083/105] Add How to manage CodeQL alerts to issue template --- github-actions/trigger-issue/create-codeql-issues/issue-body.md | 1 + 1 file changed, 1 insertion(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/issue-body.md b/github-actions/trigger-issue/create-codeql-issues/issue-body.md index 7c2d5e2113..06e4b12a52 100644 --- a/github-actions/trigger-issue/create-codeql-issues/issue-body.md +++ b/github-actions/trigger-issue/create-codeql-issues/issue-body.md @@ -21,5 +21,6 @@ We need to resolve the new alert [(${alertId})](https://github.com/hackforla/web - [HfLA website: CodeQL scan alert audits - issue 5005](https://docs.google.com/spreadsheets/d/1B3R-fI8OW0LcYuwZICQZ2fB8sjlE3VsfyGIXoReNBIs/edit#gid=193401043) - [Code scanning results page](https://github.com/hackforla/website/security/code-scanning) - [CodeQL query help for JavaScript](https://codeql.github.com/codeql-query-help/javascript/) +- [How to manage CodeQL alerts](https://github.com/hackforla/website/issues/6463#issuecomment-2002573270 ) This issue was automatically generated from the codeql.yml workflow \ No newline at end of file From a38a50b75a54d6f3a5c983c664cfda1e51717f30 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 7 Apr 2024 17:04:57 -0500 Subject: [PATCH 084/105] Add workflow_dispatch for manual retries --- .github/workflows/codeql.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 6cd10a7700..b53486fe81 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -19,6 +19,7 @@ on: branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' + workflow_dispatch: jobs: analyze: @@ -104,7 +105,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From 8b5a055acdfd6e71f76749861d0550668f683dfc Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 7 Apr 2024 17:05:07 -0500 Subject: [PATCH 085/105] Update put request to use create function --- .../create-codeql-issues/create-new-issues.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index cee31b7180..91ea917d0c 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -21,7 +21,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { // Loop through each alertId for (const alertId of alertIds) { // Create the issue title - const issueTitle = `Resolve CodeQL Alert #${alertId} - Generated by GHA`; + const title = `Resolve CodeQL Alert #${alertId} - Generated by GHA`; // Read the issue body template file const issueBodyTemplatePath = 'github-actions/trigger-issue/create-codeql-issues/issue-body.md'; @@ -31,17 +31,16 @@ const createNewIssues = async ({ g, c, alertIds }) => { issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); // Use the modified content as the issue body - const issueBody = issueBodyTemplate; + const body = issueBodyTemplate; // Create a new GitHub issue - const createIssueResponse = await github.request(`POST /repos/${context.repo.owner}/${context.repo.repo}/issues`, { - headers: { - 'Content-Type': 'application/json', - }, - title: issueTitle, - body: issueBody, - labels: ['ready for dev lead'], - }); + const createIssueResponse = await github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title, + body, + labels: ['ready for dev lead'] + }); // Log issue titles and links in GHA workflow console.log('Issue Created:', createIssueResponse.data.title, createIssueResponse.data.html_url); From a80a14b258d22153fd50c7fb66f5afdb6979b884 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 7 Apr 2024 17:09:53 -0500 Subject: [PATCH 086/105] Refactor body variable --- .../trigger-issue/create-codeql-issues/create-new-issues.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js index 91ea917d0c..a6ab6681fc 100644 --- a/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js +++ b/github-actions/trigger-issue/create-codeql-issues/create-new-issues.js @@ -28,10 +28,7 @@ const createNewIssues = async ({ g, c, alertIds }) => { let issueBodyTemplate = fs.readFileSync(issueBodyTemplatePath, 'utf8'); // Replace placeholders with actual values in the issue body template - issueBodyTemplate = issueBodyTemplate.replace(/\${alertId}/g, alertId); - - // Use the modified content as the issue body - const body = issueBodyTemplate; + const body = issueBodyTemplate.replace(/\${alertId}/g, alertId); // Create a new GitHub issue const createIssueResponse = await github.rest.issues.create({ From d2c9aad70756160e1fde28819b4a44d2a7e47293 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 7 Apr 2024 17:13:09 -0500 Subject: [PATCH 087/105] Change token --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b53486fe81..0160f45ab8 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -105,7 +105,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_BOT_PA_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From dd7589712ee077c877e96204bb760e8f6d391872 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 13:12:17 -0500 Subject: [PATCH 088/105] Changed GITHUB_TOKEN to HACKFORLA_ADMIN_TOKEN --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0160f45ab8..f5b577f88c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -105,7 +105,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From f63c6329e0753e31a854def910a4a41e6b64f1fb Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 13:22:14 -0500 Subject: [PATCH 089/105] Add issues: write to permissions --- .github/workflows/codeql.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f5b577f88c..c0292dbeb4 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -30,6 +30,7 @@ jobs: actions: read contents: read security-events: write + issues: write strategy: fail-fast: false @@ -105,7 +106,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From f80fe351c7c06ebdbf6c36ced1698237c666b4db Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 13:32:55 -0500 Subject: [PATCH 090/105] Change permissions to write-all --- .github/workflows/codeql.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c0292dbeb4..64f72fa297 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -26,11 +26,7 @@ jobs: name: Analyze runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} - permissions: - actions: read - contents: read - security-events: write - issues: write + permissions: write-all strategy: fail-fast: false From 3b3ddf38ad1944cba6f4e79a6168432139dde14c Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 13:37:03 -0500 Subject: [PATCH 091/105] Move permissions up above jobs --- .github/workflows/codeql.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 64f72fa297..680229d231 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,12 +21,17 @@ on: - cron: '30 5 * * 5' workflow_dispatch: +permissions: + actions: read + contents: read + security-events: write + issues: write + jobs: analyze: name: Analyze runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} - permissions: write-all strategy: fail-fast: false From e2d53e1fd577ff5a918ab0cc2a6685ce423fef72 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 14:39:21 -0500 Subject: [PATCH 092/105] Move permissions back to original location --- .github/workflows/codeql.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 680229d231..c0292dbeb4 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,17 +21,16 @@ on: - cron: '30 5 * * 5' workflow_dispatch: -permissions: - actions: read - contents: read - security-events: write - issues: write - jobs: analyze: name: Analyze runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + issues: write strategy: fail-fast: false From 3819013e0d7cc679ae1f6365670e89e659f185af Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 14:55:17 -0500 Subject: [PATCH 093/105] Updated branch to test --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c0292dbeb4..b847910b5c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-50' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-50' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From e8a1a565120b8e711d439cf1c5d49eef38b54880 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 15:06:40 -0500 Subject: [PATCH 094/105] Change token and branch --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b847910b5c..27ac6325cf 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'create-new-codeql-issues-50' ] + branches: [ 'create-new-codeql-issues-5059' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'create-new-codeql-issues-50' ] + branches: [ 'create-new-codeql-issues-5059' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: @@ -106,7 +106,7 @@ jobs: - name: Create New Issues uses: actions/github-script@v7 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} script: | const script = require('./github-actions/trigger-issue/create-codeql-issues/create-new-issues.js'); const alertIds = ${{ steps.check-existing-issues.outputs.result }}; From 36f871d7aac91f709f5119ed43fec4fb34f62024 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 15:11:13 -0500 Subject: [PATCH 095/105] Change branch back to gh-pages --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 27ac6325cf..53e6ab1657 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 5eb1742d00af6d6c5350a91a05316edbd7237f60 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 15:13:56 -0500 Subject: [PATCH 096/105] Change branch to test --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 53e6ab1657..27ac6325cf 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From cff82b9cdf6109213aeef893e8667eab9f74f4b7 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 15:16:51 -0500 Subject: [PATCH 097/105] Change branch back to gh-pages --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 27ac6325cf..53e6ab1657 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 68b2de0cf67188314667c725b564aa5cdd33930e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 16:52:13 -0500 Subject: [PATCH 098/105] Add if statement to new yml steps --- .github/workflows/codeql.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 53e6ab1657..b44fbbed67 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -81,6 +81,7 @@ jobs: # Fetch Alerts - name: Fetch Alerts + if: github.event_name != 'pull_request' id: fetch-alerts uses: actions/github-script@v7 with: @@ -92,6 +93,7 @@ jobs: # Check Existing Issues - name: Check Existing Issues + if: github.event_name != 'pull_request' uses: actions/github-script@v7 id: check-existing-issues with: @@ -104,6 +106,7 @@ jobs: # Create New Issues - name: Create New Issues + if: github.event_name != 'pull_request' uses: actions/github-script@v7 with: github-token: ${{ secrets.HACKFORLA_ADMIN_TOKEN }} From 7efebe1e2d82bb080ae118cedbaec90add56367e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 16:56:47 -0500 Subject: [PATCH 099/105] Change branch for testing --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b44fbbed67..79e139d68f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 10a00ce2d4d079a552bcbc6c896ed3403e6888c6 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Sun, 14 Apr 2024 17:11:11 -0500 Subject: [PATCH 100/105] Change branch back to gh-pages --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 79e139d68f..b44fbbed67 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 4a753ff868d8140f2fcb7eb85f704cee75791425 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Mon, 15 Apr 2024 17:35:25 -0500 Subject: [PATCH 101/105] Add create-new-issues id and reorder id and if conditions to be consistent --- .github/workflows/codeql.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b44fbbed67..851f4b675f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -81,8 +81,8 @@ jobs: # Fetch Alerts - name: Fetch Alerts - if: github.event_name != 'pull_request' id: fetch-alerts + if: github.event_name != 'pull_request' uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -93,9 +93,9 @@ jobs: # Check Existing Issues - name: Check Existing Issues + id: check-existing-issues if: github.event_name != 'pull_request' uses: actions/github-script@v7 - id: check-existing-issues with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -106,6 +106,7 @@ jobs: # Create New Issues - name: Create New Issues + id: create-new-issues if: github.event_name != 'pull_request' uses: actions/github-script@v7 with: From e88faceefce591bc394a5e062b4244e6108f866e Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Mon, 15 Apr 2024 17:47:51 -0500 Subject: [PATCH 102/105] Change branch to test --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 851f4b675f..ae7f7b685d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'gh-pages' ] + branches: [ 'create-new-codeql-issues-5059' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 23d3cb538f41faf2c433b05f9fc7d00bb97cc575 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Mon, 15 Apr 2024 17:50:57 -0500 Subject: [PATCH 103/105] Added unused variable to see if CodeQL picks it up --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 94c119d0f3..0799e39d1f 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,6 +1,7 @@ // Global variables var github; var context; +const test = "test" // introducing unused variable to see if CodeQL picks it up /** * Fetches a list of open CodeQL alerts from the GitHub API. From 342fdb413e6a57458292b49e5b6d744374271438 Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Mon, 15 Apr 2024 17:52:24 -0500 Subject: [PATCH 104/105] Changed branch to gh-pages --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ae7f7b685d..851f4b675f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] pull_request: # The branches below must be a subset of the branches above - branches: [ 'create-new-codeql-issues-5059' ] + branches: [ 'gh-pages' ] schedule: - cron: '30 5 * * 5' workflow_dispatch: From 4e892adf8f7126b60bc78be7e60621c93d40ccaf Mon Sep 17 00:00:00 2001 From: Gayle Martin Date: Mon, 15 Apr 2024 17:58:46 -0500 Subject: [PATCH 105/105] Removed unused variable --- .../trigger-issue/create-codeql-issues/fetch-alerts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js index 0799e39d1f..94c119d0f3 100644 --- a/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js +++ b/github-actions/trigger-issue/create-codeql-issues/fetch-alerts.js @@ -1,7 +1,6 @@ // Global variables var github; var context; -const test = "test" // introducing unused variable to see if CodeQL picks it up /** * Fetches a list of open CodeQL alerts from the GitHub API.