Update the license headers throughout the repository to reference Google LLC rather than Google Inc, for the required license headers. PR Close #37205
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @license
 | 
						|
 * Copyright Google LLC All Rights Reserved.
 | 
						|
 *
 | 
						|
 * Use of this source code is governed by an MIT-style license that can be
 | 
						|
 * found in the LICENSE file at https://angular.io/license
 | 
						|
 */
 | 
						|
 | 
						|
const https = require('https');
 | 
						|
const shell = require('shelljs');
 | 
						|
 | 
						|
function httpGet(server, path, headers) {
 | 
						|
  return new Promise((resolve, reject) => {
 | 
						|
    const options = {
 | 
						|
      hostname: server,
 | 
						|
      port: 443,
 | 
						|
      path: path,
 | 
						|
      method: 'GET',
 | 
						|
      headers: {'User-Agent': 'script', ...headers}
 | 
						|
    };
 | 
						|
    https
 | 
						|
        .get(
 | 
						|
            options,
 | 
						|
            (res) => {
 | 
						|
              let json = '';
 | 
						|
              res.on('data', (chunk) => json += chunk.toString());
 | 
						|
              res.on('end', () => resolve(json));
 | 
						|
            })
 | 
						|
        .on('error', (e) => reject(e));
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
let warnNoToken = true;
 | 
						|
 | 
						|
async function githubGet(path) {
 | 
						|
  const token = process.env['TOKEN'];
 | 
						|
  const headers = {};
 | 
						|
  if (token) {
 | 
						|
    headers.Authorization = 'token ' + token;
 | 
						|
  } else if (warnNoToken) {
 | 
						|
    warnNoToken = false;
 | 
						|
    console.warn('############################################################');
 | 
						|
    console.warn('############################################################');
 | 
						|
    console.warn('WARNING: you should set the TOKEN variable to a github token');
 | 
						|
    console.warn('############################################################');
 | 
						|
    console.warn('############################################################');
 | 
						|
  }
 | 
						|
 | 
						|
  return JSON.parse(await httpGet('api.github.com', '/repos/angular/angular/' + path, headers));
 | 
						|
}
 | 
						|
 | 
						|
async function githubPrInfo(prNumber) {
 | 
						|
  const pr = (await githubGet('pulls/' + prNumber));
 | 
						|
  const label = pr.head.label.split(':');
 | 
						|
  const user = label[0];
 | 
						|
  const branch = label[1];
 | 
						|
  return {
 | 
						|
    commits: pr.commits,
 | 
						|
    repository: {
 | 
						|
      user: user,
 | 
						|
      gitUrl: `git@github.com:${user}/angular.git`,
 | 
						|
    },
 | 
						|
    branch: branch
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
function gitHasLocalModifications() {
 | 
						|
  return execNoFatal('git diff-index --quiet HEAD --').code != 0;
 | 
						|
}
 | 
						|
 | 
						|
function execNoFatal(cmd, options) {
 | 
						|
  const fatal = shell.config.fatal;
 | 
						|
  try {
 | 
						|
    shell.config.fatal = false;
 | 
						|
    return shell.exec(cmd, options);
 | 
						|
  } finally {
 | 
						|
    shell.config.fatal = fatal;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function getCurrentBranch() {
 | 
						|
  return shell.exec('git branch', {silent: true})
 | 
						|
      .stdout.toString()
 | 
						|
      .split('\n')                      // Break into lines
 | 
						|
      .map((v) => v.trim())             // trim
 | 
						|
      .filter((b) => b[0] == '*')       // select current branch
 | 
						|
      .map((b) => b.split(' ')[1])[0];  // remove leading `*`
 | 
						|
}
 | 
						|
 | 
						|
exports.httpGet = httpGet;
 | 
						|
exports.githubGet = githubGet;
 | 
						|
exports.githubPrInfo = githubPrInfo;
 | 
						|
exports.gitHasLocalModifications = gitHasLocalModifications;
 | 
						|
exports.execNoFatal = execNoFatal;
 | 
						|
exports.getCurrentBranch = getCurrentBranch;
 |