@grept/octokit
Version:
Octokit adapter module for other grt plugins
83 lines • 3.73 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const Octokit = require("@octokit/rest");
const RetryPlugin = require("@octokit/plugin-retry");
const lodash_decorators_1 = require("lodash-decorators");
const inversify_1 = require("inversify");
const octokit_error_1 = require("./octokit.error");
let OctokitService = class OctokitService {
getOctokit(token) {
return new (Octokit.plugin(RetryPlugin))({
auth: token,
retry: {
doNotRetry: [404],
}
});
}
getFileContent(owner, repo, path, token) {
return __awaiter(this, void 0, void 0, function* () {
const octokit = yield this.getOctokit(token);
try {
const response = yield octokit.repos.getContents({
owner,
repo,
path,
});
let buff = Buffer.from(response.data.content, 'base64');
let text = buff.toString('ascii');
return text;
}
catch (e) {
throw new octokit_error_1.OctokitError(e.status);
}
});
}
getPackageJson(owner, repo, token) {
return __awaiter(this, void 0, void 0, function* () {
return JSON.parse(yield this.getFileContent(owner, repo, 'package.json', token));
});
}
getRepos({ org, user, token }) {
return __awaiter(this, void 0, void 0, function* () {
const octokit = yield this.getOctokit(token);
const options = org
? octokit.repos.listForOrg.endpoint.merge({ org })
: octokit.repos.listForUser.endpoint.merge({ username: user });
try {
const repos = yield octokit.paginate(options);
return repos.map(repo => repo.name);
}
catch (e) {
return null;
}
});
}
};
__decorate([
lodash_decorators_1.Memoize(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], OctokitService.prototype, "getOctokit", null);
OctokitService = __decorate([
inversify_1.injectable()
], OctokitService);
exports.OctokitService = OctokitService;
//# sourceMappingURL=octokit.service.js.map