From 292f33e766a46e36647af88310bd9b275782a411 Mon Sep 17 00:00:00 2001 From: marocchino Date: Fri, 21 Apr 2023 11:31:12 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20baseUrl=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `baseUrl`, which could be taken as an input, is required to use a custom GitHub Enterprise URL, for example. --- __tests__/config.test.ts | 34 ++++++++++++++++++++++++++++++++++ action.yml | 4 ++++ src/config.ts | 1 + src/main.ts | 3 ++- 4 files changed, 41 insertions(+), 1 deletion(-) 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,