diff --git a/getPRs/index.js b/get-prs/index.js similarity index 100% rename from getPRs/index.js rename to get-prs/index.js diff --git a/getPRs/prStats.js b/get-prs/prStats.js similarity index 100% rename from getPRs/prStats.js rename to get-prs/prStats.js diff --git a/labeler.js b/labeler.js index 8eb20393d4..0f67e37fdb 100644 --- a/labeler.js +++ b/labeler.js @@ -1,5 +1,5 @@ const { validLabels } = require('./validation'); -const { addLabels } = require('./prTasks'); +const { addLabels } = require('./pr-tasks'); const { rateLimiter } = require('./utils'); const labeler = async (number, prFiles, currentLabels, guideFolderErrorsComment) => { diff --git a/one-off-scripts/addcommentOnFrontmatterIssues.js b/one-off-scripts/add-comment-on-frontmatter-issues.js similarity index 62% rename from one-off-scripts/addcommentOnFrontmatterIssues.js rename to one-off-scripts/add-comment-on-frontmatter-issues.js index b4eb30f8dc..ae897399a6 100644 --- a/one-off-scripts/addcommentOnFrontmatterIssues.js +++ b/one-off-scripts/add-comment-on-frontmatter-issues.js @@ -2,7 +2,80 @@ This is a one-off script to run on all open PRs to add a comment and "status: needs update" label to any PR with guide articles which have frontmatter issues. -*/ +*//************ log.js **************/ +const path = require('path'); +const fs = require('fs'); + +const { saveToFile } = require('../utils/save-to-file'); + +class Log { + constructor() { + this._timeStamp = null; + this._prsArr = []; + this._indicesObj = {}; + this._logfile = path.resolve(__dirname, `../work-logs/pr-relations.json`); + } + + export() { + const log = { + timeStamp: this._timeStamp, + indices: this._indicesObj, + prs: this._prsArr + }; + saveToFile(this._logfile, JSON.stringify(log)) + } + + add(prNum, props) { + this._prsArr.push(props); + this._indicesObj[prNum] = this._prsArr.length -1; + } + + finish() { + this._timeStamp = new Date(); + this.export(); + } +}; + +module.exports = { Log }; + +/*********** getData.js ***************/ +require('dotenv').config({ path: '../.env' }); +const { owner, repo, octokitConfig, octokitAuth } = require('../constants'); + +const octokit = require('@octokit/rest')(octokitConfig); + +const { getPRs, getUserInput } = require('../get-prs'); +const { rateLimiter, savePrData } = require('../utils'); +const { Log } = require('./log'); + +octokit.authenticate(octokitAuth); + +const log = new Log(); + +(async () => { + const { firstPR, lastPR } = await getUserInput(); + const prPropsToGet = ['number', 'user','files']; + const { openPRs } = await getPRs(firstPR, lastPR, prPropsToGet); + + if (openPRs.length) { + console.log('Getting files...'); + for (let count in openPRs) { + let { number, user: { login: username } } = openPRs[count]; + const { data: prFiles } = await octokit.pullRequests.listFiles({ owner, repo, number }); + const filenames = prFiles.map(({ filename }) => filename); + log.add(number, { number, username, filenames }); + await rateLimiter(+process.env.RATELIMIT_INTERVAL | 1500); + } + } +})() +.then(() => { + log.finish(); + console.log('Script completed'); +}) +.catch(err => { + log.finish(); + console.log(err) +}) require('dotenv').config({ path: '../.env' }); const fetch = require('node-fetch'); @@ -11,11 +84,11 @@ const { owner, repo, octokitConfig, octokitAuth } = require('../constants'); const octokit = require('@octokit/rest')(octokitConfig); -const { getPRs, getUserInput } = require('../getPRs'); -const { addLabels, addComment } = require('../prTasks'); +const { getPRs, getUserInput } = require('../get-prs'); +const { addLabels, addComment } = require('../pr-tasks'); const { rateLimiter, savePrData, ProcessingLog } = require('../utils'); -const { frontmatterCheck } = require('../validation/guideFolderChecks/frontmatterCheck'); -const { createErrorMsg } = require('../validation/guideFolderChecks/createErrorMsg'); +const { frontmatterCheck } = require('../validation/guide-folder-checks/frontmatter-check'); +const { createErrorMsg } = require('../validation/guide-folder-checks/create-error-msg'); const allowedLangDirNames = [ "arabic", diff --git a/one-off-scripts/addTestLocallyLabel.js b/one-off-scripts/add-test-locally-label.js similarity index 94% rename from one-off-scripts/addTestLocallyLabel.js rename to one-off-scripts/add-test-locally-label.js index 0ffb76844e..5cab97089a 100644 --- a/one-off-scripts/addTestLocallyLabel.js +++ b/one-off-scripts/add-test-locally-label.js @@ -9,8 +9,8 @@ const { owner, repo, octokitConfig, octokitAuth } = require('../constants'); const octokit = require('@octokit/rest')(octokitConfig); -const { getPRs, getUserInput } = require('../getPRs'); -const { addLabels } = require('../prTasks'); +const { getPRs, getUserInput } = require('../get-prs'); +const { addLabels } = require('../pr-tasks'); const { rateLimiter, savePrData, ProcessingLog } = require('../utils'); octokit.authenticate(octokitAuth); diff --git a/one-off-scripts/findFailures.js b/one-off-scripts/find-failures.js similarity index 97% rename from one-off-scripts/findFailures.js rename to one-off-scripts/find-failures.js index 566a666a93..8028ab07d2 100644 --- a/one-off-scripts/findFailures.js +++ b/one-off-scripts/find-failures.js @@ -12,7 +12,7 @@ const fetch = require('node-fetch'); const { owner, repo, octokitConfig, octokitAuth } = require('../constants'); const octokit = require('@octokit/rest')(octokitConfig); -const { getPRs, getUserInput } = require('../getPRs'); +const { getPRs, getUserInput } = require('../get-prs'); const { savePrData, ProcessingLog } = require('../utils'); octokit.authenticate(octokitAuth); diff --git a/prTasks/addComment.js b/pr-tasks/add-comment.js similarity index 100% rename from prTasks/addComment.js rename to pr-tasks/add-comment.js diff --git a/prTasks/addLabels.js b/pr-tasks/addLabels.js similarity index 100% rename from prTasks/addLabels.js rename to pr-tasks/addLabels.js diff --git a/prTasks/closeOpen.js b/pr-tasks/close-open.js similarity index 100% rename from prTasks/closeOpen.js rename to pr-tasks/close-open.js diff --git a/pr-tasks/index.js b/pr-tasks/index.js new file mode 100644 index 0000000000..ae01b532c0 --- /dev/null +++ b/pr-tasks/index.js @@ -0,0 +1,5 @@ +const { addComment } = require('./add-comment'); +const { addLabels } = require('./add-labels'); +const { closeOpen } = require('./close-open'); +L +module.exports = { addComment, addLabels, closeOpen }; diff --git a/prTasks/index.js b/prTasks/index.js deleted file mode 100644 index 120dc2fea6..0000000000 --- a/prTasks/index.js +++ /dev/null @@ -1,5 +0,0 @@ -const { addComment } = require('./addComment'); -const { addLabels } = require('./addLabels'); -const { closeOpen } = require('./closeOpen'); - -module.exports = { addComment, addLabels, closeOpen }; diff --git a/sweeper.js b/sweeper.js index f705fbd18d..79688667f0 100644 --- a/sweeper.js +++ b/sweeper.js @@ -2,7 +2,7 @@ const { owner, repo, octokitConfig, octokitAuth } = require('./constants'); const octokit = require('@octokit/rest')(octokitConfig); -const { getPRs, getUserInput } = require('./getPRs'); +const { getPRs, getUserInput } = require('./get-prs'); const { guideFolderChecks } = require('./validation'); const { savePrData, ProcessingLog } = require('./utils'); const { labeler } = require('./labeler'); diff --git a/utils/index.js b/utils/index.js index c46cc4803e..1dd11f26e2 100644 --- a/utils/index.js +++ b/utils/index.js @@ -1,7 +1,7 @@ -const { rateLimiter } = require('./rateLimiter'); -const { savePrData } = require('./savePrData'); -const { saveToFile } = require('./saveToFile'); -const { openJSONFile } = require('./openJSONFile'); -const { ProcessingLog } = require('./processingLog'); +const { rateLimiter } = require('./rate-limiter'); +const { savePrData } = require('./save-pr-data'); +const { saveToFile } = require('./save-to-file'); +const { openJSONFile } = require('./open-json-file'); +const { ProcessingLog } = require('./processing-log'); module.exports = { rateLimiter, savePrData, saveToFile, openJSONFile, ProcessingLog }; diff --git a/utils/openJSONFile.js b/utils/open-json-file.js similarity index 100% rename from utils/openJSONFile.js rename to utils/open-json-file.js diff --git a/utils/processingLog.js b/utils/processing-log.js similarity index 95% rename from utils/processingLog.js rename to utils/processing-log.js index 30af0a805e..ee8bfefb0d 100644 --- a/utils/processingLog.js +++ b/utils/processing-log.js @@ -1,7 +1,7 @@ const path = require('path'); const fs = require('fs'); -const { saveToFile } = require('./saveToFile'); +const { saveToFile } = require('./save-to-file'); class ProcessingLog { constructor() { diff --git a/utils/rateLimiter.js b/utils/rate-limiter.js similarity index 100% rename from utils/rateLimiter.js rename to utils/rate-limiter.js diff --git a/utils/savePrData.js b/utils/save-pr-data.js similarity index 91% rename from utils/savePrData.js rename to utils/save-pr-data.js index 5c7b4531bc..f7fe00231d 100644 --- a/utils/savePrData.js +++ b/utils/save-pr-data.js @@ -1,7 +1,7 @@ const formatDate = require('date-fns/format'); const path = require('path'); -const { saveToFile } = require('./saveToFile'); +const { saveToFile } = require('./save-to-file'); const savePrData = (openPRs, firstPR, lastPR) => { const now = formatDate(new Date(), 'YYYY-MM-DDTHHmmss'); diff --git a/utils/saveToFile.js b/utils/save-to-file.js similarity index 100% rename from utils/saveToFile.js rename to utils/save-to-file.js diff --git a/validation/guideFolderChecks/checkPath.js b/validation/guide-folder-checks/check-path.js similarity index 95% rename from validation/guideFolderChecks/checkPath.js rename to validation/guide-folder-checks/check-path.js index 1ed58b5f8b..e29d3040b6 100644 --- a/validation/guideFolderChecks/checkPath.js +++ b/validation/guide-folder-checks/check-path.js @@ -1,4 +1,4 @@ -const { frontmatterCheck } = require('./frontmatterCheck'); +const { frontmatterCheck } = require('./frontmatter-check'); const allowedLangDirNames = [ "arabic", diff --git a/validation/guideFolderChecks/createErrorMsg.js b/validation/guide-folder-checks/create-error-msg.js similarity index 100% rename from validation/guideFolderChecks/createErrorMsg.js rename to validation/guide-folder-checks/create-error-msg.js diff --git a/validation/guideFolderChecks/frontmatterCheck.js b/validation/guide-folder-checks/frontmatter-check.js similarity index 100% rename from validation/guideFolderChecks/frontmatterCheck.js rename to validation/guide-folder-checks/frontmatter-check.js diff --git a/validation/guideFolderChecks/index.js b/validation/guide-folder-checks/index.js similarity index 85% rename from validation/guideFolderChecks/index.js rename to validation/guide-folder-checks/index.js index ad8b69f237..2669748d9d 100644 --- a/validation/guideFolderChecks/index.js +++ b/validation/guide-folder-checks/index.js @@ -1,9 +1,9 @@ const fetch = require('node-fetch'); -const { addComment } = require('../../prTasks'); +const { addComment } = require('../../pr-tasks'); const { rateLimiter } = require('../../utils'); -const { createErrorMsg } = require('./createErrorMsg'); -const { checkPath } = require('./checkPath'); +const { createErrorMsg } = require('./create-error-msg'); +const { checkPath } = require('./check-path'); /* check for guide folder issues and add applicable comment */ const guideFolderChecks = async (number, prFiles, user) => { diff --git a/validation/index.js b/validation/index.js index 26b0864523..14bfbf1b4c 100644 --- a/validation/index.js +++ b/validation/index.js @@ -1,4 +1,4 @@ -const { validLabels } = require('./validLabels'); -const { guideFolderChecks } = require('./guideFolderChecks'); +const { validLabels } = require('./valid-labels'); +const { guideFolderChecks } = require('./guide-folder-checks'); module.exports = { validLabels, guideFolderChecks }; diff --git a/validation/validLabels.js b/validation/valid-labels.js similarity index 100% rename from validation/validLabels.js rename to validation/valid-labels.js