Forward API calls from the preview repos (#211)
* Forward API calls from the preview repos * tweak doc * tweak * fix workflow-run forwarding
This commit is contained in:
committed by
pullfrog[bot]
parent
c1f8247077
commit
2b3bd97b86
+4
-1
@@ -4,6 +4,7 @@ import { fetchWorkflowRunInfo, type WorkflowRunInfo } from "./workflowRun.ts";
|
||||
|
||||
interface ResolveRunParams {
|
||||
octokit: OctokitWithPlugins;
|
||||
apiToken: string;
|
||||
}
|
||||
|
||||
export interface ResolveRunResult {
|
||||
@@ -24,7 +25,9 @@ export async function resolveRun(params: ResolveRunParams): Promise<ResolveRunRe
|
||||
}
|
||||
const [owner, repo] = githubRepo.split("/");
|
||||
|
||||
const workflowRunInfo = runId ? await fetchWorkflowRunInfo(runId) : { progressCommentId: null };
|
||||
const workflowRunInfo = runId
|
||||
? await fetchWorkflowRunInfo({ runId, apiToken: params.apiToken })
|
||||
: { progressCommentId: null };
|
||||
|
||||
if (workflowRunInfo.progressCommentId) {
|
||||
log.info(`» using pre-created progress comment: ${workflowRunInfo.progressCommentId}`);
|
||||
|
||||
+10
-2
@@ -2,20 +2,28 @@ export interface WorkflowRunInfo {
|
||||
progressCommentId: string | null;
|
||||
}
|
||||
|
||||
interface FetchWorkflowRunInfoParams {
|
||||
runId: string;
|
||||
apiToken: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch workflow run info from the Pullfrog API.
|
||||
* Returns the pre-created progress comment ID if one exists.
|
||||
*/
|
||||
export async function fetchWorkflowRunInfo(runId: string): Promise<WorkflowRunInfo> {
|
||||
export async function fetchWorkflowRunInfo(params: FetchWorkflowRunInfoParams): Promise<WorkflowRunInfo> {
|
||||
const apiUrl = process.env.API_URL || "https://pullfrog.com";
|
||||
const timeoutMs = 30000;
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
||||
|
||||
try {
|
||||
const response = await fetch(`${apiUrl}/api/workflow-run/${runId}`, {
|
||||
const response = await fetch(`${apiUrl}/api/workflow-run/${params.runId}`, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
// apiToken not strictly required (route only exposes public IDs)
|
||||
// but claims in token enable preview API URL forwarding
|
||||
Authorization: `Bearer ${params.apiToken}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
signal: controller.signal,
|
||||
|
||||
Reference in New Issue
Block a user