1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const axios_1 = require("axios");
|
4 | const base64_1 = require("../internal/util/base64");
|
5 | const logger_1 = require("../internal/util/logger");
|
6 | const GitHubRepoRef_1 = require("../operations/common/GitHubRepoRef");
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | function deepLink(grr, sourceLocation) {
|
14 | return `${grr.scheme}${grr.remoteBase}/${grr.owner}/${grr.repo}/blob/${grr.sha}` +
|
15 | (!!sourceLocation ? `/${sourceLocation.path}` : "") +
|
16 | (!!sourceLocation && !!sourceLocation.lineFrom1 ? `#L${sourceLocation.lineFrom1}` : "");
|
17 | }
|
18 | exports.deepLink = deepLink;
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | function hasFile(token, user, repo, path) {
|
29 |
|
30 | return filePromise(token, user, repo, path)
|
31 | .then(d => true)
|
32 | .catch(err => {
|
33 | logger_1.logger.info("Axios error getting file: Probably not there", err.toString());
|
34 | return false;
|
35 | });
|
36 | }
|
37 | exports.hasFile = hasFile;
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | function fileContent(token, user, repo, path) {
|
47 | return filePromise(token, user, repo, path)
|
48 | .then(d => base64_1.decode(d.data.content))
|
49 | .catch(err => {
|
50 | logger_1.logger.info("Axios error getting file: Probably not there", err.toString());
|
51 | return undefined;
|
52 | });
|
53 | }
|
54 | exports.fileContent = fileContent;
|
55 | function filePromise(token, user, repo, path) {
|
56 | const url = `${GitHubRepoRef_1.GitHubDotComBase}/repos/${user}/${repo}/contents/${path}`;
|
57 | logger_1.logger.debug(`Request to '${url}' to check for file existence]`);
|
58 |
|
59 | return axios_1.default.get(url, authHeaders(token));
|
60 | }
|
61 | function raiseIssue(token, rr, issue) {
|
62 | const grr = GitHubRepoRef_1.isGitHubRepoRef(rr) ? rr : new GitHubRepoRef_1.GitHubRepoRef(rr.owner, rr.repo, rr.sha);
|
63 | const url = `${grr.scheme}${grr.apiBase}/repos/${rr.owner}/${rr.repo}/issues`;
|
64 | logger_1.logger.debug(`Request to '${url}' to raise issue`);
|
65 | return axios_1.default.post(url, issue, authHeaders(token));
|
66 | }
|
67 | exports.raiseIssue = raiseIssue;
|
68 | function addRepoWebhook(token, rr, webhookData) {
|
69 | const url = `${rr.scheme}${rr.apiBase}/repos/${rr.owner}/${rr.repo}/hooks`;
|
70 | logger_1.logger.debug(`Request to '${url}' to create webhook`);
|
71 | return axios_1.default.post(url, webhookData, authHeaders(token));
|
72 | }
|
73 | exports.addRepoWebhook = addRepoWebhook;
|
74 | function createCommitComment(token, rr, comment) {
|
75 | const url = `${rr.scheme}${rr.apiBase}/repos/${rr.owner}/${rr.repo}/commits/${rr.sha}/comments`;
|
76 | logger_1.logger.debug(`Request to '${url}' to create comment`);
|
77 | return axios_1.default.post(url, comment, authHeaders(token));
|
78 | }
|
79 | exports.createCommitComment = createCommitComment;
|
80 | function createRepo(token, rr, description, priv) {
|
81 | const config = authHeaders(token);
|
82 | return axios_1.default.get(`${rr.scheme}${rr.apiBase}/orgs/${rr.owner}`, config)
|
83 | .then(result => {
|
84 |
|
85 | return `${rr.scheme}${rr.apiBase}/orgs/${rr.owner}/repos`;
|
86 | }, err => {
|
87 |
|
88 | return `${rr.scheme}${rr.apiBase}/user/repos`;
|
89 | })
|
90 | .then(url => {
|
91 | const payload = {
|
92 | name: rr.repo,
|
93 | description,
|
94 | private: priv,
|
95 | };
|
96 | logger_1.logger.debug(`Request to '${url}' to create repo`);
|
97 | return axios_1.default.post(url, payload, config);
|
98 | });
|
99 | }
|
100 | exports.createRepo = createRepo;
|
101 | function authHeaders(token) {
|
102 | return token ? {
|
103 | headers: {
|
104 | Authorization: `token ${token}`,
|
105 | },
|
106 | }
|
107 | : {};
|
108 | }
|
109 |
|
\ | No newline at end of file |