mirror of
https://github.com/JamesIves/github-pages-deploy-action.git
synced 2023-12-15 20:03:39 +08:00
91 lines
3.3 KiB
JavaScript
91 lines
3.3 KiB
JavaScript
"use strict";
|
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
result["default"] = mod;
|
|
return result;
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
// Originally pulled from https://github.com/JasonEtco/actions-toolkit/blob/master/src/github.ts
|
|
const graphql_1 = require("@octokit/graphql");
|
|
const rest_1 = require("@octokit/rest");
|
|
const Context = __importStar(require("./context"));
|
|
const httpClient = __importStar(require("@actions/http-client"));
|
|
// We need this in order to extend Octokit
|
|
rest_1.Octokit.prototype = new rest_1.Octokit();
|
|
exports.context = new Context.Context();
|
|
class GitHub extends rest_1.Octokit {
|
|
constructor(token, opts) {
|
|
super(GitHub.getOctokitOptions(GitHub.disambiguate(token, opts)));
|
|
this.graphql = GitHub.getGraphQL(GitHub.disambiguate(token, opts));
|
|
}
|
|
/**
|
|
* Disambiguates the constructor overload parameters
|
|
*/
|
|
static disambiguate(token, opts) {
|
|
return [
|
|
typeof token === 'string' ? token : '',
|
|
typeof token === 'object' ? token : opts || {}
|
|
];
|
|
}
|
|
static getOctokitOptions(args) {
|
|
const token = args[0];
|
|
const options = Object.assign({}, args[1]); // Shallow clone - don't mutate the object provided by the caller
|
|
// Auth
|
|
const auth = GitHub.getAuthString(token, options);
|
|
if (auth) {
|
|
options.auth = auth;
|
|
}
|
|
// Proxy
|
|
const agent = GitHub.getProxyAgent(options);
|
|
if (agent) {
|
|
// Shallow clone - don't mutate the object provided by the caller
|
|
options.request = options.request ? Object.assign({}, options.request) : {};
|
|
// Set the agent
|
|
options.request.agent = agent;
|
|
}
|
|
return options;
|
|
}
|
|
static getGraphQL(args) {
|
|
const defaults = {};
|
|
const token = args[0];
|
|
const options = args[1];
|
|
// Authorization
|
|
const auth = this.getAuthString(token, options);
|
|
if (auth) {
|
|
defaults.headers = {
|
|
authorization: auth
|
|
};
|
|
}
|
|
// Proxy
|
|
const agent = GitHub.getProxyAgent(options);
|
|
if (agent) {
|
|
defaults.request = { agent };
|
|
}
|
|
return graphql_1.graphql.defaults(defaults);
|
|
}
|
|
static getAuthString(token, options) {
|
|
// Validate args
|
|
if (!token && !options.auth) {
|
|
throw new Error('Parameter token or opts.auth is required');
|
|
}
|
|
else if (token && options.auth) {
|
|
throw new Error('Parameters token and opts.auth may not both be specified');
|
|
}
|
|
return typeof options.auth === 'string' ? options.auth : `token ${token}`;
|
|
}
|
|
static getProxyAgent(options) {
|
|
var _a;
|
|
if (!((_a = options.request) === null || _a === void 0 ? void 0 : _a.agent)) {
|
|
const serverUrl = 'https://api.github.com';
|
|
if (httpClient.getProxyUrl(serverUrl)) {
|
|
const hc = new httpClient.HttpClient();
|
|
return hc.getAgent(serverUrl);
|
|
}
|
|
}
|
|
return undefined;
|
|
}
|
|
}
|
|
exports.GitHub = GitHub;
|
|
//# sourceMappingURL=github.js.map
|