51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /* | ||
|  | This script was created to iterate over all open PRs to label. | ||
|  | 
 | ||
|  | 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('add-language-labels'); | ||
|  | 
 | ||
|  | log.start(); | ||
|  | console.log('Curriculum File language labeler 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('Labeler complete'); | ||
|  |   }) | ||
|  |   .catch(err => { | ||
|  |     log.finish(); | ||
|  |     console.log(err); | ||
|  |   }); |