diff --git a/dist/cli/index.js b/dist/cli/index.js index 5785934..23e7127 100755 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -181,8 +181,8 @@ class PullRequestConfigsParser extends configs_parser_1.default { targetRepo: originalPullRequest.targetRepo, sourceRepo: originalPullRequest.targetRepo, branchName: args.bpBranchName, - nCommits: 0, - commits: [] // TODO needed? + // nCommits: 0, // not needed, but required by the + // commits: [] // not needed }; } } @@ -342,8 +342,7 @@ class GitServiceFactory { * @param type git management service type * @param auth authentication, like github token */ - // TODO rename to getOrCreate - static init(type, auth) { + static getOrCreate(type, auth) { if (GitServiceFactory.instance) { GitServiceFactory.logger.warn("Git service already initialized!"); return; @@ -664,7 +663,6 @@ class Runner { * Entry point invoked by the command line or gha */ async run() { - this.logger.info("Starting process."); try { await this.execute(); this.logger.info("Process succeeded!"); @@ -686,7 +684,7 @@ class Runner { this.logger.warn("Dry run enabled!"); } // 2. init git service - git_service_factory_1.default.init(this.inferRemoteGitService(args.pullRequest), args.auth); + git_service_factory_1.default.getOrCreate(this.inferRemoteGitService(args.pullRequest), args.auth); const gitApi = git_service_factory_1.default.getService(); // 3. parse configs const configs = await new pr_configs_parser_1.default().parseAndValidate(args); diff --git a/dist/gha/index.js b/dist/gha/index.js index e200d08..dce6400 100755 --- a/dist/gha/index.js +++ b/dist/gha/index.js @@ -175,8 +175,8 @@ class PullRequestConfigsParser extends configs_parser_1.default { targetRepo: originalPullRequest.targetRepo, sourceRepo: originalPullRequest.targetRepo, branchName: args.bpBranchName, - nCommits: 0, - commits: [] // TODO needed? + // nCommits: 0, // not needed, but required by the + // commits: [] // not needed }; } } @@ -336,8 +336,7 @@ class GitServiceFactory { * @param type git management service type * @param auth authentication, like github token */ - // TODO rename to getOrCreate - static init(type, auth) { + static getOrCreate(type, auth) { if (GitServiceFactory.instance) { GitServiceFactory.logger.warn("Git service already initialized!"); return; @@ -658,7 +657,6 @@ class Runner { * Entry point invoked by the command line or gha */ async run() { - this.logger.info("Starting process."); try { await this.execute(); this.logger.info("Process succeeded!"); @@ -680,7 +678,7 @@ class Runner { this.logger.warn("Dry run enabled!"); } // 2. init git service - git_service_factory_1.default.init(this.inferRemoteGitService(args.pullRequest), args.auth); + git_service_factory_1.default.getOrCreate(this.inferRemoteGitService(args.pullRequest), args.auth); const gitApi = git_service_factory_1.default.getService(); // 3. parse configs const configs = await new pr_configs_parser_1.default().parseAndValidate(args); diff --git a/src/service/configs/pullrequest/pr-configs-parser.ts b/src/service/configs/pullrequest/pr-configs-parser.ts index 4cba755..715433d 100644 --- a/src/service/configs/pullrequest/pr-configs-parser.ts +++ b/src/service/configs/pullrequest/pr-configs-parser.ts @@ -65,8 +65,8 @@ export default class PullRequestConfigsParser extends ConfigsParser { targetRepo: originalPullRequest.targetRepo, sourceRepo: originalPullRequest.targetRepo, branchName: args.bpBranchName, - nCommits: 0, // TODO: needed? - commits: [] // TODO needed? + // nCommits: 0, // not needed, but required by the + // commits: [] // not needed }; } } \ No newline at end of file diff --git a/src/service/git/git-service-factory.ts b/src/service/git/git-service-factory.ts index 6cda575..d5076b3 100644 --- a/src/service/git/git-service-factory.ts +++ b/src/service/git/git-service-factory.ts @@ -25,8 +25,7 @@ export default class GitServiceFactory { * @param type git management service type * @param auth authentication, like github token */ - // TODO rename to getOrCreate - public static init(type: GitServiceType, auth: string): void { + public static getOrCreate(type: GitServiceType, auth: string): void { if (GitServiceFactory.instance) { GitServiceFactory.logger.warn("Git service already initialized!"); diff --git a/src/service/git/git.types.ts b/src/service/git/git.types.ts index 05db4a0..85eac12 100644 --- a/src/service/git/git.types.ts +++ b/src/service/git/git.types.ts @@ -12,8 +12,8 @@ export interface GitPullRequest { assignees: string[], targetRepo: GitRepository, sourceRepo: GitRepository, - nCommits: number, // number of commits in the pr - commits: string[], // merge commit or last one + nCommits?: number, // number of commits in the pr + commits?: string[], // merge commit or last one branchName?: string, } diff --git a/src/service/runner/runner.ts b/src/service/runner/runner.ts index c604093..c0ef979 100644 --- a/src/service/runner/runner.ts +++ b/src/service/runner/runner.ts @@ -42,8 +42,6 @@ export default class Runner { * Entry point invoked by the command line or gha */ async run(): Promise { - this.logger.info("Starting process."); - try { await this.execute(); @@ -71,7 +69,7 @@ export default class Runner { } // 2. init git service - GitServiceFactory.init(this.inferRemoteGitService(args.pullRequest), args.auth); + GitServiceFactory.getOrCreate(this.inferRemoteGitService(args.pullRequest), args.auth); const gitApi: GitService = GitServiceFactory.getService(); // 3. parse configs @@ -86,7 +84,7 @@ export default class Runner { await git.clone(configs.originalPullRequest.targetRepo.cloneUrl, configs.folder, configs.targetBranch); // 5. create new branch from target one and checkout - const backportBranch = backportPR.branchName ?? `bp-${configs.targetBranch}-${originalPR.commits.join("-")}`; + const backportBranch = backportPR.branchName ?? `bp-${configs.targetBranch}-${originalPR.commits!.join("-")}`; await git.createLocalBranch(configs.folder, backportBranch); // 6. fetch pull request remote if source owner != target owner or pull request still open @@ -96,7 +94,7 @@ export default class Runner { } // 7. apply all changes to the new branch - for (const sha of originalPR.commits) { + for (const sha of originalPR.commits!) { await git.cherryPick(configs.folder, sha); } diff --git a/test/service/configs/pullrequest/pr-configs-parser.test.ts b/test/service/configs/pullrequest/pr-configs-parser.test.ts index 52dab30..fe5cd7e 100644 --- a/test/service/configs/pullrequest/pr-configs-parser.test.ts +++ b/test/service/configs/pullrequest/pr-configs-parser.test.ts @@ -15,7 +15,7 @@ describe("pull request config parser", () => { let parser: PullRequestConfigsParser; beforeAll(() => { - GitServiceFactory.init(GitServiceType.GITHUB, "whatever"); + GitServiceFactory.getOrCreate(GitServiceType.GITHUB, "whatever"); }); beforeEach(() => { @@ -95,8 +95,6 @@ describe("pull request config parser", () => { cloneUrl: "https://github.com/owner/reponame.git" }, bpBranchName: undefined, - nCommits: 0, - commits: [] }); }); @@ -289,8 +287,6 @@ describe("pull request config parser", () => { cloneUrl: "https://github.com/owner/reponame.git" }, bpBranchName: undefined, - nCommits: 0, - commits: [] }); }); @@ -365,8 +361,6 @@ describe("pull request config parser", () => { cloneUrl: "https://github.com/owner/reponame.git" }, bpBranchName: undefined, - nCommits: 0, - commits: [] }); }); @@ -441,8 +435,6 @@ describe("pull request config parser", () => { cloneUrl: "https://github.com/owner/reponame.git" }, bpBranchName: undefined, - nCommits: 0, - commits: [] }); }); }); \ No newline at end of file diff --git a/test/service/git/github/github-service.test.ts b/test/service/git/github/github-service.test.ts index addcd80..70c5263 100644 --- a/test/service/git/github/github-service.test.ts +++ b/test/service/git/github/github-service.test.ts @@ -10,7 +10,7 @@ describe("github service", () => { beforeAll(() => { // init git service - GitServiceFactory.init(GitServiceType.GITHUB, "whatever"); + GitServiceFactory.getOrCreate(GitServiceType.GITHUB, "whatever"); }); beforeEach(() => { @@ -33,7 +33,7 @@ describe("github service", () => { cloneUrl: "https://github.com/owner/reponame.git" }); expect(res.title).toBe("PR Title"); - expect(res.commits.length).toBe(1); + expect(res.commits!.length).toBe(1); expect(res.commits).toEqual(["28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc"]); });