UNPKG

3.23 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const Github = require("@octokit/rest");
5const octokit = new Github({
6 headers: {
7 accept: 'application/vnd.github.symmetra-preview+json',
8 },
9});
10function authenticate(params) {
11 const { authToken, } = params;
12 return new Promise((resolve, reject) => {
13 if (!authToken) {
14 return reject(new Error('Auth token is required.'));
15 }
16 octokit.authenticate({
17 type: 'token',
18 token: authToken,
19 });
20 return resolve();
21 });
22}
23function getAuthenticatedOctokit(params) {
24 return authenticate(params)
25 .then(() => {
26 return octokit;
27 });
28}
29exports.getAuthenticatedOctokit = getAuthenticatedOctokit;
30function getReposRaw(params) {
31 const { repoQuery, } = params;
32 return authenticate(params)
33 .then(async () => {
34 let response = await octokit.search.repos({
35 q: repoQuery,
36 per_page: 50,
37 });
38 let items = response.data.items;
39 // @ts-ignore
40 while (octokit.hasNextPage(response)) {
41 // @ts-ignore
42 response = await octokit.getNextPage(response);
43 items = items.concat(response.data.items);
44 }
45 return items;
46 });
47}
48exports.getReposRaw = getReposRaw;
49function getRepos(options) {
50 const { filter: repoFilterString, } = options;
51 const lmsRepoRE = new RegExp(repoFilterString);
52 return getReposRaw(options)
53 .then((repos_raw) => {
54 return repos_raw.map(repo => {
55 return {
56 name: repo.name,
57 owner: repo.owner.login,
58 repo: repo.name,
59 full_name: repo.full_name,
60 ssh_url: repo.ssh_url,
61 git_url: repo.git_url,
62 clone_url: repo.clone_url,
63 };
64 })
65 .filter((repo) => {
66 return lmsRepoRE.test(repo.name);
67 });
68 });
69}
70exports.getRepos = getRepos;
71function editRepo(params) {
72 const {
73 // tslint:disable-next-line
74 authToken } = params, passedParams = tslib_1.__rest(params, ["authToken"]);
75 return authenticate(params)
76 .then(() => {
77 return octokit.repos.edit(passedParams);
78 });
79}
80exports.editRepo = editRepo;
81function addRepoToTeam(params) {
82 const {
83 // tslint:disable-next-line
84 authToken } = params, passedParams = tslib_1.__rest(params, ["authToken"]);
85 return authenticate(params)
86 .then(async () => {
87 //@ts-ignore - ignore missing deprecated `id` param
88 return octokit.orgs.addTeamRepo(passedParams);
89 });
90}
91exports.addRepoToTeam = addRepoToTeam;
92function getTeams(params) {
93 const {
94 // tslint:disable-next-line
95 authToken } = params, passedParams = tslib_1.__rest(params, ["authToken"]);
96 const serviceParams = Object.assign({ org: 'RoundtableLearning' }, passedParams);
97 return authenticate(params)
98 .then(async () => {
99 //@ts-ignore - ignore missing deprecated `id` param
100 return octokit.orgs.getTeams(serviceParams);
101 })
102 .then(response => response.data);
103}
104exports.getTeams = getTeams;