removed build folder

This commit is contained in:
Andrea Lamparelli 2023-01-04 14:51:52 +01:00
parent bdbcd7e90c
commit 1298641c7c
14 changed files with 0 additions and 1346 deletions

View file

@ -1,115 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_service_factory_1 = __importDefault(require("../../service/logger/logger-service-factory"));
const simple_git_1 = __importDefault(require("simple-git"));
const fs_1 = __importDefault(require("fs"));
/**
* Command line git commands executor service
*/
class GitCLIService {
constructor(auth, author) {
this.logger = logger_service_factory_1.default.getLogger();
this.auth = auth;
this.author = author;
}
/**
* Return a pre-configured SimpleGit instance able to execute commands from current
* directory or the provided one
* @param cwd [optional] current working directory
* @returns {SimpleGit}
*/
git(cwd) {
const gitConfig = { ...(cwd ? { baseDir: cwd } : {}) };
return (0, simple_git_1.default)(gitConfig).addConfig("user.name", this.author).addConfig("user.email", "noreply@github.com");
}
/**
* Update the provided remote URL by adding the auth token if not empty
* @param remoteURL remote link, e.g., https://github.com/lampajr/backporting-example.git
*/
remoteWithAuth(remoteURL) {
if (this.auth && this.author) {
return remoteURL.replace("://", `://${this.author}:${this.auth}@`);
}
// return remote as it is
return remoteURL;
}
/**
* Return the git version
* @returns {Promise<string | undefined>}
*/
async version(cwd) {
const rawOutput = await this.git(cwd).raw("version");
const match = rawOutput.match(/(\d+\.\d+(\.\d+)?)/);
return match ? match[1] : undefined;
}
/**
* Clone a git repository
* @param from url or path from which the repository should be cloned from
* @param to location at which the repository should be cloned at
* @param branch branch which should be cloned
*/
async clone(from, to, branch) {
this.logger.info(`Cloning repository ${from} to ${to}.`);
if (!fs_1.default.existsSync(to)) {
await (0, simple_git_1.default)().clone(this.remoteWithAuth(from), to, ["--quiet", "--shallow-submodules", "--no-tags", "--branch", branch]);
}
else {
this.logger.warn(`Folder ${to} already exist. Won't clone`);
}
}
/**
* Create a new branch starting from the current one and checkout in it
* @param cwd repository in which createBranch should be performed
* @param newBranch new branch name
*/
async createLocalBranch(cwd, newBranch) {
this.logger.info(`Creating branch ${newBranch}.`);
await this.git(cwd).checkoutLocalBranch(newBranch);
}
/**
* Add a new remote to the current repository
* @param cwd repository in which addRemote should be performed
* @param remote remote git link
* @param remoteName [optional] name of the remote, by default 'fork' is used
*/
async addRemote(cwd, remote, remoteName = "fork") {
this.logger.info(`Adding new remote ${remote}.`);
await this.git(cwd).addRemote(remoteName, this.remoteWithAuth(remote));
}
/**
* Git fetch from a particular branch
* @param cwd repository in which fetch should be performed
* @param branch fetch from the given branch
* @param remote [optional] the remote to fetch, by default origin
*/
async fetch(cwd, branch, remote = "origin") {
await this.git(cwd).fetch(remote, branch, ["--quiet"]);
}
/**
* Get cherry-pick a specific sha
* @param cwd repository in which the sha should be cherry picked to
* @param sha commit sha
*/
async cherryPick(cwd, sha) {
this.logger.info(`Cherry picking ${sha}.`);
await this.git(cwd).raw(["cherry-pick", "-m", "1", "--strategy=recursive", "--strategy-option=theirs", sha]);
}
/**
* Push a branch to a remote
* @param cwd repository in which the push should be performed
* @param branch branch to be pushed
* @param remote [optional] remote to which the branch should be pushed to, by default 'origin'
*/
async push(cwd, branch, remote = "origin", force = false) {
this.logger.info(`Pushing ${branch} to ${remote}.`);
const options = ["--quiet"];
if (force) {
options.push("--force-with-lease");
}
await this.git(cwd).push(remote, branch, options);
}
}
exports.default = GitCLIService;

View file

@ -1,39 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const git_types_1 = require("../../service/git/git.types");
const github_service_1 = __importDefault(require("../../service/git/github/github-service"));
const logger_service_factory_1 = __importDefault(require("../../service/logger/logger-service-factory"));
/**
* Singleton git service factory class
*/
class GitServiceFactory {
static getService() {
if (!GitServiceFactory.instance) {
throw new Error("You must call `init` method first!");
}
return GitServiceFactory.instance;
}
/**
* Initialize the singleton git management service
* @param type git management service type
* @param auth authentication, like github token
*/
static init(type, auth) {
if (GitServiceFactory.instance) {
GitServiceFactory.logger.warn("Git service already initialized!");
return;
}
switch (type) {
case git_types_1.GitServiceType.GITHUB:
GitServiceFactory.instance = new github_service_1.default(auth);
break;
default:
throw new Error(`Invalid git service type received: ${type}`);
}
}
}
exports.default = GitServiceFactory;
GitServiceFactory.logger = logger_service_factory_1.default.getLogger();

View file

@ -1,2 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

View file

@ -1,7 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitServiceType = void 0;
var GitServiceType;
(function (GitServiceType) {
GitServiceType["GITHUB"] = "github";
})(GitServiceType = exports.GitServiceType || (exports.GitServiceType = {}));

View file

@ -1,29 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class GitHubMapper {
mapPullRequest(pr) {
return {
author: pr.user.login,
url: pr.url,
htmlUrl: pr.html_url,
title: pr.title,
body: pr.body ?? "",
state: pr.state,
merged: pr.merged ?? false,
mergedBy: pr.merged_by?.login,
reviewers: pr.requested_reviewers.filter(r => "login" in r).map((r => r?.login)),
sourceRepo: {
owner: pr.head.repo.full_name.split("/")[0],
project: pr.head.repo.full_name.split("/")[1],
cloneUrl: pr.head.repo.clone_url
},
targetRepo: {
owner: pr.base.repo.full_name.split("/")[0],
project: pr.base.repo.full_name.split("/")[1],
cloneUrl: pr.base.repo.clone_url
},
commits: [pr.merge_commit_sha]
};
}
}
exports.default = GitHubMapper;

View file

@ -1,69 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const github_mapper_1 = __importDefault(require("../../../service/git/github/github-mapper"));
const octokit_factory_1 = __importDefault(require("../../../service/git/github/octokit-factory"));
const logger_service_factory_1 = __importDefault(require("../../../service/logger/logger-service-factory"));
class GitHubService {
constructor(token) {
this.logger = logger_service_factory_1.default.getLogger();
this.octokit = octokit_factory_1.default.getOctokit(token);
this.mapper = new github_mapper_1.default();
}
// READ
async getPullRequest(owner, repo, prNumber) {
this.logger.info(`Getting pull request ${owner}/${repo}/${prNumber}.`);
const { data } = await this.octokit.rest.pulls.get({
owner: owner,
repo: repo,
pull_number: prNumber
});
return this.mapper.mapPullRequest(data);
}
async getPullRequestFromUrl(prUrl) {
const { owner, project } = this.getRepositoryFromPrUrl(prUrl);
return this.getPullRequest(owner, project, parseInt(prUrl.substring(prUrl.lastIndexOf("/") + 1, prUrl.length)));
}
// WRITE
async createPullRequest(backport) {
this.logger.info(`Creating pull request ${backport.head} -> ${backport.base}.`);
this.logger.info(`${JSON.stringify(backport, null, 2)}`);
const { data } = await this.octokit.pulls.create({
owner: backport.owner,
repo: backport.repo,
head: backport.head,
base: backport.base,
title: backport.title,
body: backport.body
});
if (backport.reviewers.length > 0) {
try {
await this.octokit.pulls.requestReviewers({
owner: backport.owner,
repo: backport.repo,
pull_number: data.number,
reviewers: backport.reviewers
});
}
catch (error) {
this.logger.error(`Error requesting reviewers: ${error}`);
}
}
}
// UTILS
/**
* Extract repository owner and project from the pull request url
* @param prUrl pull request url
* @returns {{owner: string, project: string}}
*/
getRepositoryFromPrUrl(prUrl) {
const elems = prUrl.split("/");
return {
owner: elems[elems.length - 4],
project: elems[elems.length - 3]
};
}
}
exports.default = GitHubService;

View file

@ -1,24 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_service_factory_1 = __importDefault(require("../../../service/logger/logger-service-factory"));
const rest_1 = require("@octokit/rest");
/**
* Singleton factory class for {Octokit} instance
*/
class OctokitFactory {
static getOctokit(token) {
if (!OctokitFactory.octokit) {
OctokitFactory.logger.info("Creating octokit instance.");
OctokitFactory.octokit = new rest_1.Octokit({
auth: token,
userAgent: "lampajr/backporting"
});
}
return OctokitFactory.octokit;
}
}
exports.default = OctokitFactory;
OctokitFactory.logger = logger_service_factory_1.default.getLogger();

View file

@ -1,27 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __importDefault(require("../../service/logger/logger"));
class ConsoleLoggerService {
constructor() {
this.logger = new logger_1.default();
}
trace(message) {
this.logger.log("[TRACE]", message);
}
debug(message) {
this.logger.log("[DEBUG]", message);
}
info(message) {
this.logger.log("[INFO]", message);
}
warn(message) {
this.logger.log("[WARN]", message);
}
error(message) {
this.logger.log("[ERROR]", message);
}
}
exports.default = ConsoleLoggerService;

View file

@ -1,18 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const console_logger_service_1 = __importDefault(require("../../service/logger/console-logger-service"));
/**
* Singleton factory class
*/
class LoggerServiceFactory {
static getLogger() {
if (!LoggerServiceFactory.instance) {
LoggerServiceFactory.instance = new console_logger_service_1.default();
}
return LoggerServiceFactory.instance;
}
}
exports.default = LoggerServiceFactory;

View file

@ -1,2 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

View file

@ -1,15 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Common logger class based on the console.log functionality
*/
class Logger {
log(prefix, ...str) {
// eslint-disable-next-line no-console
console.log.apply(console, [prefix, ...str]);
}
emptyLine() {
this.log("", "");
}
}
exports.default = Logger;

View file

@ -1,37 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const git_service_factory_1 = __importDefault(require("../../../../src/service/git/git-service-factory"));
const git_types_1 = require("../../../../src/service/git/git.types");
const moctokit_data_1 = require("../../../support/moctokit/moctokit-data");
const moctokit_support_1 = require("../../../support/moctokit/moctokit-support");
describe("github service", () => {
let gitService;
beforeAll(() => {
// init git service
git_service_factory_1.default.init(git_types_1.GitServiceType.GITHUB, "whatever");
});
beforeEach(() => {
// mock github api calls
(0, moctokit_support_1.setupMoctokit)();
gitService = git_service_factory_1.default.getService();
});
test("get pull request: success", async () => {
const res = await gitService.getPullRequest(moctokit_data_1.targetOwner, moctokit_data_1.repo, moctokit_data_1.mergedPullRequestFixture.number);
expect(res.sourceRepo).toEqual({
owner: "fork",
project: "reponame",
cloneUrl: "https://github.com/fork/reponame.git"
});
expect(res.targetRepo).toEqual({
owner: "owner",
project: "reponame",
cloneUrl: "https://github.com/owner/reponame.git"
});
expect(res.title).toBe("PR Title");
expect(res.commits.length).toBe(1);
expect(res.commits).toEqual(["28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc"]);
});
});

View file

@ -1,899 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.notMergedPullRequestFixture = exports.mergedPullRequestFixture = exports.notFoundPullRequestNumber = exports.repo = exports.sourceOwner = exports.targetOwner = void 0;
exports.targetOwner = "owner";
exports.sourceOwner = "fork";
exports.repo = "reponame";
exports.notFoundPullRequestNumber = 1;
exports.mergedPullRequestFixture = {
"url": "https://api.github.com/repos/owner/reponame/pulls/2368",
"id": 1137188271,
"node_id": "PR_kwDOABTq6s5DyB2v",
"html_url": "https://github.com/owner/reponame/pull/2368",
"diff_url": "https://github.com/owner/reponame/pull/2368.diff",
"patch_url": "https://github.com/owner/reponame/pull/2368.patch",
"issue_url": "https://api.github.com/repos/owner/reponame/issues/2368",
"number": 2368,
"state": "closed",
"locked": false,
"title": "PR Title",
"user": {
"login": "gh-user",
"id": 11995863,
"node_id": "MDQ6VXNlcjExOTk1ODYz",
"avatar_url": "https://avatars.githubusercontent.com/u/11995863?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/gh-user",
"html_url": "https://github.com/gh-user",
"followers_url": "https://api.github.com/users/gh-user/followers",
"following_url": "https://api.github.com/users/gh-user/following{/other_user}",
"gists_url": "https://api.github.com/users/gh-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gh-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gh-user/subscriptions",
"organizations_url": "https://api.github.com/users/gh-user/orgs",
"repos_url": "https://api.github.com/users/gh-user/repos",
"events_url": "https://api.github.com/users/gh-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/gh-user/received_events",
"type": "User",
"site_admin": false
},
"body": "Please review and merge",
"created_at": "2022-11-28T08:43:09Z",
"updated_at": "2022-11-28T10:11:53Z",
"closed_at": "2022-11-28T10:11:52Z",
"merged_at": "2022-11-28T10:11:52Z",
"merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
"assignee": null,
"assignees": [],
"requested_reviewers": [
{
"login": "requested-gh-user",
"id": 1422582,
"node_id": "MDQ6VXNlcjE0MjI1ODI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1422582?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/requested-gh-user",
"html_url": "https://github.com/requested-gh-user",
"followers_url": "https://api.github.com/users/requested-gh-user/followers",
"following_url": "https://api.github.com/users/requested-gh-user/following{/other_user}",
"gists_url": "https://api.github.com/users/requested-gh-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/requested-gh-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/requested-gh-user/subscriptions",
"organizations_url": "https://api.github.com/users/requested-gh-user/orgs",
"repos_url": "https://api.github.com/users/requested-gh-user/repos",
"events_url": "https://api.github.com/users/requested-gh-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/requested-gh-user/received_events",
"type": "User",
"site_admin": false
},
{
"login": "gh-user",
"id": 1422582,
"node_id": "MDQ6VXNlcjE0MjI1ODI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1422582?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/gh-user",
"html_url": "https://github.com/gh-user",
"followers_url": "https://api.github.com/users/gh-user/followers",
"following_url": "https://api.github.com/users/gh-user/following{/other_user}",
"gists_url": "https://api.github.com/users/gh-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gh-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gh-user/subscriptions",
"organizations_url": "https://api.github.com/users/gh-user/orgs",
"repos_url": "https://api.github.com/users/gh-user/repos",
"events_url": "https://api.github.com/users/gh-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/gh-user/received_events",
"type": "User",
"site_admin": false
}
],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/owner/reponame/pulls/2368/commits",
"review_comments_url": "https://api.github.com/repos/owner/reponame/pulls/2368/comments",
"review_comment_url": "https://api.github.com/repos/owner/reponame/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/owner/reponame/issues/2368/comments",
"statuses_url": "https://api.github.com/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
"head": {
"label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
"ref": "bump-8.31.x-drools-8.31.0.Final",
"sha": "91748965051fae1330ad58d15cf694e103267c87",
"user": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 1370858,
"node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
"name": "reponame",
"full_name": "fork/reponame",
"private": false,
"owner": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/fork/reponame",
"description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
"fork": false,
"url": "https://api.github.com/repos/fork/reponame",
"forks_url": "https://api.github.com/repos/fork/reponame/forks",
"keys_url": "https://api.github.com/repos/fork/reponame/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/fork/reponame/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/fork/reponame/teams",
"hooks_url": "https://api.github.com/repos/fork/reponame/hooks",
"issue_events_url": "https://api.github.com/repos/fork/reponame/issues/events{/number}",
"events_url": "https://api.github.com/repos/fork/reponame/events",
"assignees_url": "https://api.github.com/repos/fork/reponame/assignees{/user}",
"branches_url": "https://api.github.com/repos/fork/reponame/branches{/branch}",
"tags_url": "https://api.github.com/repos/fork/reponame/tags",
"blobs_url": "https://api.github.com/repos/fork/reponame/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/fork/reponame/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/fork/reponame/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/fork/reponame/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/fork/reponame/statuses/{sha}",
"languages_url": "https://api.github.com/repos/fork/reponame/languages",
"stargazers_url": "https://api.github.com/repos/fork/reponame/stargazers",
"contributors_url": "https://api.github.com/repos/fork/reponame/contributors",
"subscribers_url": "https://api.github.com/repos/fork/reponame/subscribers",
"subscription_url": "https://api.github.com/repos/fork/reponame/subscription",
"commits_url": "https://api.github.com/repos/fork/reponame/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/fork/reponame/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/fork/reponame/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/fork/reponame/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/fork/reponame/contents/{+path}",
"compare_url": "https://api.github.com/repos/fork/reponame/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/fork/reponame/merges",
"archive_url": "https://api.github.com/repos/fork/reponame/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/fork/reponame/downloads",
"issues_url": "https://api.github.com/repos/fork/reponame/issues{/number}",
"pulls_url": "https://api.github.com/repos/fork/reponame/pulls{/number}",
"milestones_url": "https://api.github.com/repos/fork/reponame/milestones{/number}",
"notifications_url": "https://api.github.com/repos/fork/reponame/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/fork/reponame/labels{/name}",
"releases_url": "https://api.github.com/repos/fork/reponame/releases{/id}",
"deployments_url": "https://api.github.com/repos/fork/reponame/deployments",
"created_at": "2011-02-15T19:38:23Z",
"updated_at": "2022-11-28T05:01:47Z",
"pushed_at": "2022-11-28T10:50:51Z",
"git_url": "git://github.com/fork/reponame.git",
"ssh_url": "git@github.com:fork/reponame.git",
"clone_url": "https://github.com/fork/reponame.git",
"svn_url": "https://github.com/fork/reponame",
"homepage": "https://www.reponame.org",
"size": 238339,
"stargazers_count": 2811,
"watchers_count": 2811,
"language": "Java",
"has_issues": false,
"has_projects": false,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 878,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 30,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"artificial-intelligence",
"branch-and-bound",
"constraint-programming",
"constraint-satisfaction-problem",
"constraint-solver",
"constraints",
"employee-rostering",
"java",
"local-search",
"mathematical-optimization",
"metaheuristics",
"optimization",
"rostering",
"scheduling",
"simulated-annealing",
"solver",
"tabu-search",
"traveling-salesman",
"traveling-salesman-problem",
"vehicle-routing-problem"
],
"visibility": "public",
"forks": 878,
"open_issues": 30,
"watchers": 2811,
"default_branch": "main"
}
},
"base": {
"label": "kiegroup:8.31.x",
"ref": "8.31.x",
"sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
"user": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 1370858,
"node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
"name": "reponame",
"full_name": "owner/reponame",
"private": false,
"owner": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/owner/reponame",
"description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
"fork": false,
"url": "https://api.github.com/repos/owner/reponame",
"forks_url": "https://api.github.com/repos/owner/reponame/forks",
"keys_url": "https://api.github.com/repos/owner/reponame/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/owner/reponame/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/owner/reponame/teams",
"hooks_url": "https://api.github.com/repos/owner/reponame/hooks",
"issue_events_url": "https://api.github.com/repos/owner/reponame/issues/events{/number}",
"events_url": "https://api.github.com/repos/owner/reponame/events",
"assignees_url": "https://api.github.com/repos/owner/reponame/assignees{/user}",
"branches_url": "https://api.github.com/repos/owner/reponame/branches{/branch}",
"tags_url": "https://api.github.com/repos/owner/reponame/tags",
"blobs_url": "https://api.github.com/repos/owner/reponame/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/owner/reponame/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/owner/reponame/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/owner/reponame/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/owner/reponame/statuses/{sha}",
"languages_url": "https://api.github.com/repos/owner/reponame/languages",
"stargazers_url": "https://api.github.com/repos/owner/reponame/stargazers",
"contributors_url": "https://api.github.com/repos/owner/reponame/contributors",
"subscribers_url": "https://api.github.com/repos/owner/reponame/subscribers",
"subscription_url": "https://api.github.com/repos/owner/reponame/subscription",
"commits_url": "https://api.github.com/repos/owner/reponame/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/owner/reponame/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/owner/reponame/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/owner/reponame/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/owner/reponame/contents/{+path}",
"compare_url": "https://api.github.com/repos/owner/reponame/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/owner/reponame/merges",
"archive_url": "https://api.github.com/repos/owner/reponame/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/owner/reponame/downloads",
"issues_url": "https://api.github.com/repos/owner/reponame/issues{/number}",
"pulls_url": "https://api.github.com/repos/owner/reponame/pulls{/number}",
"milestones_url": "https://api.github.com/repos/owner/reponame/milestones{/number}",
"notifications_url": "https://api.github.com/repos/owner/reponame/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/owner/reponame/labels{/name}",
"releases_url": "https://api.github.com/repos/owner/reponame/releases{/id}",
"deployments_url": "https://api.github.com/repos/owner/reponame/deployments",
"created_at": "2011-02-15T19:38:23Z",
"updated_at": "2022-11-28T05:01:47Z",
"pushed_at": "2022-11-28T10:50:51Z",
"git_url": "git://github.com/owner/reponame.git",
"ssh_url": "git@github.com:owner/reponame.git",
"clone_url": "https://github.com/owner/reponame.git",
"svn_url": "https://github.com/owner/reponame",
"homepage": "https://www.reponame.org",
"size": 238339,
"stargazers_count": 2811,
"watchers_count": 2811,
"language": "Java",
"has_issues": false,
"has_projects": false,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 878,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 30,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"artificial-intelligence",
"branch-and-bound",
"constraint-programming",
"constraint-satisfaction-problem",
"constraint-solver",
"constraints",
"employee-rostering",
"java",
"local-search",
"mathematical-optimization",
"metaheuristics",
"optimization",
"rostering",
"scheduling",
"simulated-annealing",
"solver",
"tabu-search",
"traveling-salesman",
"traveling-salesman-problem",
"vehicle-routing-problem"
],
"visibility": "public",
"forks": 878,
"open_issues": 30,
"watchers": 2811,
"default_branch": "main"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/owner/reponame/pulls/2368"
},
"html": {
"href": "https://github.com/owner/reponame/pull/2368"
},
"issue": {
"href": "https://api.github.com/repos/owner/reponame/issues/2368"
},
"comments": {
"href": "https://api.github.com/repos/owner/reponame/issues/2368/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/owner/reponame/pulls/2368/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/owner/reponame/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/owner/reponame/pulls/2368/commits"
},
"statuses": {
"href": "https://api.github.com/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
}
},
"author_association": "CONTRIBUTOR",
"auto_merge": null,
"active_lock_reason": null,
"merged": true,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": {
"login": "that-s-a-user",
"id": 17157711,
"node_id": "MDQ6VXNlcjE3MTU3NzEx",
"avatar_url": "https://avatars.githubusercontent.com/u/17157711?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/that-s-a-user",
"html_url": "https://github.com/that-s-a-user",
"followers_url": "https://api.github.com/users/that-s-a-user/followers",
"following_url": "https://api.github.com/users/that-s-a-user/following{/other_user}",
"gists_url": "https://api.github.com/users/that-s-a-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/that-s-a-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/that-s-a-user/subscriptions",
"organizations_url": "https://api.github.com/users/that-s-a-user/orgs",
"repos_url": "https://api.github.com/users/that-s-a-user/repos",
"events_url": "https://api.github.com/users/that-s-a-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/that-s-a-user/received_events",
"type": "User",
"site_admin": false
},
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 2,
"additions": 2,
"deletions": 2,
"changed_files": 2
};
exports.notMergedPullRequestFixture = {
"url": "https://api.github.com/repos/owner/reponame/pulls/4444",
"id": 1137188271,
"node_id": "PR_kwDOABTq6s5DyB2v",
"html_url": "https://github.com/owner/reponame/pull/4444",
"diff_url": "https://github.com/owner/reponame/pull/4444.diff",
"patch_url": "https://github.com/owner/reponame/pull/4444.patch",
"issue_url": "https://api.github.com/repos/owner/reponame/issues/4444",
"number": 4444,
"state": "closed",
"locked": false,
"title": "PR Title",
"user": {
"login": "gh-user",
"id": 11995863,
"node_id": "MDQ6VXNlcjExOTk1ODYz",
"avatar_url": "https://avatars.githubusercontent.com/u/11995863?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/gh-user",
"html_url": "https://github.com/gh-user",
"followers_url": "https://api.github.com/users/gh-user/followers",
"following_url": "https://api.github.com/users/gh-user/following{/other_user}",
"gists_url": "https://api.github.com/users/gh-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gh-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gh-user/subscriptions",
"organizations_url": "https://api.github.com/users/gh-user/orgs",
"repos_url": "https://api.github.com/users/gh-user/repos",
"events_url": "https://api.github.com/users/gh-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/gh-user/received_events",
"type": "User",
"site_admin": false
},
"body": "Please review and merge",
"created_at": "2022-11-28T08:43:09Z",
"updated_at": "2022-11-28T10:11:53Z",
"closed_at": "2022-11-28T10:11:52Z",
"merged_at": "2022-11-28T10:11:52Z",
"merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
"assignee": null,
"assignees": [],
"requested_reviewers": [
{
"login": "gh-user",
"id": 1422582,
"node_id": "MDQ6VXNlcjE0MjI1ODI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1422582?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/gh-user",
"html_url": "https://github.com/gh-user",
"followers_url": "https://api.github.com/users/gh-user/followers",
"following_url": "https://api.github.com/users/gh-user/following{/other_user}",
"gists_url": "https://api.github.com/users/gh-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gh-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gh-user/subscriptions",
"organizations_url": "https://api.github.com/users/gh-user/orgs",
"repos_url": "https://api.github.com/users/gh-user/repos",
"events_url": "https://api.github.com/users/gh-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/gh-user/received_events",
"type": "User",
"site_admin": false
}
],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/owner/reponame/pulls/4444/commits",
"review_comments_url": "https://api.github.com/repos/owner/reponame/pulls/4444/comments",
"review_comment_url": "https://api.github.com/repos/owner/reponame/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/owner/reponame/issues/4444/comments",
"statuses_url": "https://api.github.com/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
"head": {
"label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
"ref": "bump-8.31.x-drools-8.31.0.Final",
"sha": "91748965051fae1330ad58d15cf694e103267c87",
"user": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 1370858,
"node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
"name": "reponame",
"full_name": "fork/reponame",
"private": false,
"owner": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/fork/reponame",
"description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
"fork": false,
"url": "https://api.github.com/repos/fork/reponame",
"forks_url": "https://api.github.com/repos/fork/reponame/forks",
"keys_url": "https://api.github.com/repos/fork/reponame/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/fork/reponame/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/fork/reponame/teams",
"hooks_url": "https://api.github.com/repos/fork/reponame/hooks",
"issue_events_url": "https://api.github.com/repos/fork/reponame/issues/events{/number}",
"events_url": "https://api.github.com/repos/fork/reponame/events",
"assignees_url": "https://api.github.com/repos/fork/reponame/assignees{/user}",
"branches_url": "https://api.github.com/repos/fork/reponame/branches{/branch}",
"tags_url": "https://api.github.com/repos/fork/reponame/tags",
"blobs_url": "https://api.github.com/repos/fork/reponame/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/fork/reponame/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/fork/reponame/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/fork/reponame/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/fork/reponame/statuses/{sha}",
"languages_url": "https://api.github.com/repos/fork/reponame/languages",
"stargazers_url": "https://api.github.com/repos/fork/reponame/stargazers",
"contributors_url": "https://api.github.com/repos/fork/reponame/contributors",
"subscribers_url": "https://api.github.com/repos/fork/reponame/subscribers",
"subscription_url": "https://api.github.com/repos/fork/reponame/subscription",
"commits_url": "https://api.github.com/repos/fork/reponame/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/fork/reponame/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/fork/reponame/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/fork/reponame/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/fork/reponame/contents/{+path}",
"compare_url": "https://api.github.com/repos/fork/reponame/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/fork/reponame/merges",
"archive_url": "https://api.github.com/repos/fork/reponame/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/fork/reponame/downloads",
"issues_url": "https://api.github.com/repos/fork/reponame/issues{/number}",
"pulls_url": "https://api.github.com/repos/fork/reponame/pulls{/number}",
"milestones_url": "https://api.github.com/repos/fork/reponame/milestones{/number}",
"notifications_url": "https://api.github.com/repos/fork/reponame/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/fork/reponame/labels{/name}",
"releases_url": "https://api.github.com/repos/fork/reponame/releases{/id}",
"deployments_url": "https://api.github.com/repos/fork/reponame/deployments",
"created_at": "2011-02-15T19:38:23Z",
"updated_at": "2022-11-28T05:01:47Z",
"pushed_at": "2022-11-28T10:50:51Z",
"git_url": "git://github.com/fork/reponame.git",
"ssh_url": "git@github.com:fork/reponame.git",
"clone_url": "https://github.com/fork/reponame.git",
"svn_url": "https://github.com/fork/reponame",
"homepage": "https://www.reponame.org",
"size": 238339,
"stargazers_count": 2811,
"watchers_count": 2811,
"language": "Java",
"has_issues": false,
"has_projects": false,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 878,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 30,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"artificial-intelligence",
"branch-and-bound",
"constraint-programming",
"constraint-satisfaction-problem",
"constraint-solver",
"constraints",
"employee-rostering",
"java",
"local-search",
"mathematical-optimization",
"metaheuristics",
"optimization",
"rostering",
"scheduling",
"simulated-annealing",
"solver",
"tabu-search",
"traveling-salesman",
"traveling-salesman-problem",
"vehicle-routing-problem"
],
"visibility": "public",
"forks": 878,
"open_issues": 30,
"watchers": 2811,
"default_branch": "main"
}
},
"base": {
"label": "kiegroup:8.31.x",
"ref": "8.31.x",
"sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
"user": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 1370858,
"node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
"name": "reponame",
"full_name": "owner/reponame",
"private": false,
"owner": {
"login": "kiegroup",
"id": 517980,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
"avatar_url": "https://avatars.githubusercontent.com/u/517980?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kiegroup",
"html_url": "https://github.com/kiegroup",
"followers_url": "https://api.github.com/users/kiegroup/followers",
"following_url": "https://api.github.com/users/kiegroup/following{/other_user}",
"gists_url": "https://api.github.com/users/kiegroup/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kiegroup/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kiegroup/subscriptions",
"organizations_url": "https://api.github.com/users/kiegroup/orgs",
"repos_url": "https://api.github.com/users/kiegroup/repos",
"events_url": "https://api.github.com/users/kiegroup/events{/privacy}",
"received_events_url": "https://api.github.com/users/kiegroup/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/owner/reponame",
"description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
"fork": false,
"url": "https://api.github.com/repos/owner/reponame",
"forks_url": "https://api.github.com/repos/owner/reponame/forks",
"keys_url": "https://api.github.com/repos/owner/reponame/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/owner/reponame/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/owner/reponame/teams",
"hooks_url": "https://api.github.com/repos/owner/reponame/hooks",
"issue_events_url": "https://api.github.com/repos/owner/reponame/issues/events{/number}",
"events_url": "https://api.github.com/repos/owner/reponame/events",
"assignees_url": "https://api.github.com/repos/owner/reponame/assignees{/user}",
"branches_url": "https://api.github.com/repos/owner/reponame/branches{/branch}",
"tags_url": "https://api.github.com/repos/owner/reponame/tags",
"blobs_url": "https://api.github.com/repos/owner/reponame/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/owner/reponame/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/owner/reponame/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/owner/reponame/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/owner/reponame/statuses/{sha}",
"languages_url": "https://api.github.com/repos/owner/reponame/languages",
"stargazers_url": "https://api.github.com/repos/owner/reponame/stargazers",
"contributors_url": "https://api.github.com/repos/owner/reponame/contributors",
"subscribers_url": "https://api.github.com/repos/owner/reponame/subscribers",
"subscription_url": "https://api.github.com/repos/owner/reponame/subscription",
"commits_url": "https://api.github.com/repos/owner/reponame/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/owner/reponame/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/owner/reponame/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/owner/reponame/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/owner/reponame/contents/{+path}",
"compare_url": "https://api.github.com/repos/owner/reponame/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/owner/reponame/merges",
"archive_url": "https://api.github.com/repos/owner/reponame/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/owner/reponame/downloads",
"issues_url": "https://api.github.com/repos/owner/reponame/issues{/number}",
"pulls_url": "https://api.github.com/repos/owner/reponame/pulls{/number}",
"milestones_url": "https://api.github.com/repos/owner/reponame/milestones{/number}",
"notifications_url": "https://api.github.com/repos/owner/reponame/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/owner/reponame/labels{/name}",
"releases_url": "https://api.github.com/repos/owner/reponame/releases{/id}",
"deployments_url": "https://api.github.com/repos/owner/reponame/deployments",
"created_at": "2011-02-15T19:38:23Z",
"updated_at": "2022-11-28T05:01:47Z",
"pushed_at": "2022-11-28T10:50:51Z",
"git_url": "git://github.com/owner/reponame.git",
"ssh_url": "git@github.com:owner/reponame.git",
"clone_url": "https://github.com/owner/reponame.git",
"svn_url": "https://github.com/owner/reponame",
"homepage": "https://www.reponame.org",
"size": 238339,
"stargazers_count": 2811,
"watchers_count": 2811,
"language": "Java",
"has_issues": false,
"has_projects": false,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 878,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 30,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"artificial-intelligence",
"branch-and-bound",
"constraint-programming",
"constraint-satisfaction-problem",
"constraint-solver",
"constraints",
"employee-rostering",
"java",
"local-search",
"mathematical-optimization",
"metaheuristics",
"optimization",
"rostering",
"scheduling",
"simulated-annealing",
"solver",
"tabu-search",
"traveling-salesman",
"traveling-salesman-problem",
"vehicle-routing-problem"
],
"visibility": "public",
"forks": 878,
"open_issues": 30,
"watchers": 2811,
"default_branch": "main"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/owner/reponame/pulls/4444"
},
"html": {
"href": "https://github.com/owner/reponame/pull/4444"
},
"issue": {
"href": "https://api.github.com/repos/owner/reponame/issues/4444"
},
"comments": {
"href": "https://api.github.com/repos/owner/reponame/issues/4444/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/owner/reponame/pulls/4444/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/owner/reponame/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/owner/reponame/pulls/4444/commits"
},
"statuses": {
"href": "https://api.github.com/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
}
},
"author_association": "CONTRIBUTOR",
"auto_merge": null,
"active_lock_reason": null,
"merged": null,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": {
"login": "that-s-a-user",
"id": 17157711,
"node_id": "MDQ6VXNlcjE3MTU3NzEx",
"avatar_url": "https://avatars.githubusercontent.com/u/17157711?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/that-s-a-user",
"html_url": "https://github.com/that-s-a-user",
"followers_url": "https://api.github.com/users/that-s-a-user/followers",
"following_url": "https://api.github.com/users/that-s-a-user/following{/other_user}",
"gists_url": "https://api.github.com/users/that-s-a-user/gists{/gist_id}",
"starred_url": "https://api.github.com/users/that-s-a-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/that-s-a-user/subscriptions",
"organizations_url": "https://api.github.com/users/that-s-a-user/orgs",
"repos_url": "https://api.github.com/users/that-s-a-user/repos",
"events_url": "https://api.github.com/users/that-s-a-user/events{/privacy}",
"received_events_url": "https://api.github.com/users/that-s-a-user/received_events",
"type": "User",
"site_admin": false
},
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 2,
"additions": 2,
"deletions": 2,
"changed_files": 2
};

View file

@ -1,63 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupMoctokit = void 0;
const logger_service_factory_1 = __importDefault(require("../../../src/service/logger/logger-service-factory"));
const mock_github_1 = require("@kie/mock-github");
const moctokit_data_1 = require("./moctokit-data");
const logger = logger_service_factory_1.default.getLogger();
const setupMoctokit = () => {
logger.debug("Setting up moctokit.");
const mock = new mock_github_1.Moctokit();
// setup the mock requests here
// valid requests
mock.rest.pulls
.get({
owner: moctokit_data_1.targetOwner,
repo: moctokit_data_1.repo,
pull_number: moctokit_data_1.mergedPullRequestFixture.number
})
.reply({
status: 200,
data: moctokit_data_1.mergedPullRequestFixture
});
mock.rest.pulls
.get({
owner: moctokit_data_1.targetOwner,
repo: moctokit_data_1.repo,
pull_number: moctokit_data_1.notMergedPullRequestFixture.number
})
.reply({
status: 200,
data: moctokit_data_1.notMergedPullRequestFixture
});
mock.rest.pulls
.create()
.reply({
status: 201,
data: moctokit_data_1.mergedPullRequestFixture
});
mock.rest.pulls
.requestReviewers()
.reply({
status: 201,
data: moctokit_data_1.mergedPullRequestFixture
});
// invalid requests
mock.rest.pulls
.get({
owner: moctokit_data_1.targetOwner,
repo: moctokit_data_1.repo,
pull_number: moctokit_data_1.notFoundPullRequestNumber
})
.reply({
status: 404,
data: {
message: "Not found"
}
});
return mock;
};
exports.setupMoctokit = setupMoctokit;