diff --git a/__tests__/config.test.ts b/__tests__/config.test.ts index 327917c..262521c 100644 --- a/__tests__/config.test.ts +++ b/__tests__/config.test.ts @@ -1,5 +1,6 @@ beforeEach(() => { process.env["GITHUB_REPOSITORY"] = "marocchino/stick-pull-request-comment" + process.env["INPUT_BASE_URL"] = "https://api.github.com" process.env["INPUT_NUMBER"] = "123" process.env["INPUT_APPEND"] = "false" process.env["INPUT_RECREATE"] = "false" @@ -18,6 +19,7 @@ beforeEach(() => { afterEach(() => { jest.resetModules() delete process.env["GITHUB_REPOSITORY"] + delete process.env["INPUT_BASE_URL"] delete process.env["INPUT_OWNER"] delete process.env["INPUT_REPO"] delete process.env["INPUT_HEADER"] @@ -38,10 +40,29 @@ afterEach(() => { delete process.env["INPUT_FOLLOW_SYMBOLIC_LINKS"] }) +test("baseUrl", async () => { + process.env["INPUT_BASE_URL"] = "https://repo.yourcompany.com" + expect(require("../src/config")).toMatchObject({ + baseUrl: "https://repo.yourcompany.com", + pullRequestNumber: expect.any(Number), + repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, + header: "", + append: false, + recreate: false, + deleteOldComment: false, + hideOldComment: false, + hideAndRecreate: false, + hideClassify: "OUTDATED", + hideDetails: false, + githubToken: "some-token", + ignoreEmpty: false + }) +}) test("repo", async () => { process.env["INPUT_OWNER"] = "jin" process.env["INPUT_REPO"] = "other" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "jin", repo: "other"}, header: "", @@ -60,6 +81,7 @@ test("repo", async () => { test("header", async () => { process.env["INPUT_HEADER"] = "header" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "header", @@ -78,6 +100,7 @@ test("header", async () => { test("append", async () => { process.env["INPUT_APPEND"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -96,6 +119,7 @@ test("append", async () => { test("recreate", async () => { process.env["INPUT_RECREATE"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -114,6 +138,7 @@ test("recreate", async () => { test("delete", async () => { process.env["INPUT_DELETE"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -132,6 +157,7 @@ test("delete", async () => { test("hideOldComment", async () => { process.env["INPUT_HIDE"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -150,6 +176,7 @@ test("hideOldComment", async () => { test("hideAndRecreate", async () => { process.env["INPUT_HIDE_AND_RECREATE"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -168,6 +195,7 @@ test("hideAndRecreate", async () => { test("hideClassify", async () => { process.env["INPUT_HIDE_CLASSIFY"] = "OFF_TOPIC" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -186,6 +214,7 @@ test("hideClassify", async () => { test("hideDetails", async () => { process.env["INPUT_HIDE_DETAILS"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -205,6 +234,7 @@ describe("path", () => { test("when exists return content of a file", async () => { process.env["INPUT_PATH"] = "./__tests__/assets/result" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -224,6 +254,7 @@ describe("path", () => { test("glob match files", async () => { process.env["INPUT_PATH"] = "./__tests__/assets/*" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -245,6 +276,7 @@ describe("path", () => { test("when not exists return null string", async () => { process.env["INPUT_PATH"] = "./__tests__/assets/not_exists" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -265,6 +297,7 @@ describe("path", () => { test("message", async () => { process.env["INPUT_MESSAGE"] = "hello there" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", @@ -284,6 +317,7 @@ test("message", async () => { test("ignore_empty", async () => { process.env["INPUT_IGNORE_EMPTY"] = "true" expect(require("../src/config")).toMatchObject({ + baseUrl: "https://api.github.com", pullRequestNumber: expect.any(Number), repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, header: "", diff --git a/action.yml b/action.yml index 6c9d264..96b8abd 100644 --- a/action.yml +++ b/action.yml @@ -11,6 +11,10 @@ github-token: pull-requests-reason: to create or update PR comment inputs: + base_url: + description: "base api url. default to: https://api.github.com" + default: "https://api.github.com" + required: false header: description: "Header to determine if the comment is to be updated, not shown on screen. It can be used when you want to add multiple comments independently at the same time." default: "" diff --git a/src/config.ts b/src/config.ts index 13ee0de..7db26a2 100644 --- a/src/config.ts +++ b/src/config.ts @@ -8,6 +8,7 @@ export const pullRequestNumber = context?.payload?.pull_request?.number || +core.getInput("number", {required: false}) +export const baseUrl = core.getInput("base_url", {required: true}) export const repo = buildRepo() export const header = core.getInput("header", {required: false}) export const append = core.getBooleanInput("append", {required: true}) diff --git a/src/main.ts b/src/main.ts index 3232fce..e580192 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,7 @@ import * as github from "@actions/github" import { append, getBody, + baseUrl, deleteOldComment, githubToken, header, @@ -56,7 +57,7 @@ async function run(): Promise { throw new Error("hide and hide_and_recreate cannot be both set to true") } - const octokit = github.getOctokit(githubToken) + const octokit = github.getOctokit(githubToken, {baseUrl}) const previous = await findPreviousComment( octokit, repo,