58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /* | ||
|  | This script was originally created to iterate over all open PRs to label and | ||
|  | comment on specific PR errors (i.e. guide related filenmame syntax and | ||
|  | frontmatter). | ||
|  | 
 | ||
|  | Since the first run which covered over 10,000+ PRs, it is curently ran every | ||
|  | couple of days for just the most recent PRs. | ||
|  | 
 | ||
|  | To run the script for a specific range, | ||
|  | run `node sweeper.js range startingPrNumber endingPrNumber` | ||
|  | */ | ||
|  | 
 | ||
|  | const { getPRs, getUserInput, getFiles } = require('../lib/get-prs'); | ||
|  | const { ProcessingLog, rateLimiter } = require('../lib/utils'); | ||
|  | const { labeler } = require('../lib/pr-tasks'); | ||
|  | 
 | ||
|  | const log = new ProcessingLog('sweeper'); | ||
|  | 
 | ||
|  | log.start(); | ||
|  | console.log('Sweeper started...'); | ||
|  | (async () => { | ||
|  |   const { totalPRs, firstPR, lastPR } = await getUserInput(); | ||
|  |   const prPropsToGet = ['number', 'labels', 'user']; | ||
|  |   const { openPRs } = await getPRs(totalPRs, firstPR, lastPR, prPropsToGet); | ||
|  |   let count = 0; | ||
|  |   if (openPRs.length) { | ||
|  |     console.log('Processing PRs...'); | ||
|  |     for (let i = 0; i < openPRs.length; i++) { | ||
|  |       let { | ||
|  |         number, | ||
|  |         labels: currentLabels, | ||
|  |       } = openPRs[i]; | ||
|  |       const prFiles = await getFiles(number); | ||
|  |       count++; | ||
|  | 
 | ||
|  |       const labelsAdded = await labeler( | ||
|  |         number, | ||
|  |         prFiles, | ||
|  |         currentLabels, | ||
|  |       ); | ||
|  |       const labelLogVal = labelsAdded.length ? labelsAdded : 'none added'; | ||
|  | 
 | ||
|  |       log.add(number, { number, labels: labelLogVal }); | ||
|  |       if (count > 4000) { | ||
|  |         await rateLimiter(2350); | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  | })() | ||
|  |   .then(() => { | ||
|  |     log.finish(); | ||
|  |     console.log('Sweeper complete'); | ||
|  |   }) | ||
|  |   .catch(err => { | ||
|  |     log.finish(); | ||
|  |     console.log(err); | ||
|  |   }); |