mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-12 08:05:44 +00:00
fix(cli): handle extra headers in zip call
This commit is contained in:
+12
-1
@@ -2,6 +2,7 @@
|
||||
import { colors, GlobalUserInfo, log, setClient, UserService } from "./deps.ts";
|
||||
import { loginInteractive, tryGetLoginInfo } from "./login.ts";
|
||||
import { GlobalOptions } from "./types.ts";
|
||||
import { getHeaders } from "./utils.ts";
|
||||
import {
|
||||
addWorkspace,
|
||||
getActiveWorkspace,
|
||||
@@ -104,8 +105,18 @@ export async function tryResolveVersion(
|
||||
const workspaceRes = await tryResolveWorkspace(opts);
|
||||
if (workspaceRes.isError) return undefined;
|
||||
|
||||
const requestHeaders: HeadersInit = new Headers();
|
||||
|
||||
const extraHeaders = getHeaders();
|
||||
if (extraHeaders) {
|
||||
for (const [key, value] of Object.entries(extraHeaders)) {
|
||||
requestHeaders.set(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch(
|
||||
new URL(new URL(workspaceRes.value.remote).origin + "/api/version")
|
||||
new URL(new URL(workspaceRes.value.remote).origin + "/api/version"),
|
||||
{ headers: requestHeaders, method: "GET" }
|
||||
);
|
||||
const version = await response.text();
|
||||
try {
|
||||
|
||||
+4
-9
@@ -22,6 +22,7 @@ import dev from "./dev.ts";
|
||||
import { tryResolveVersion } from "./context.ts";
|
||||
import { GlobalOptions } from "./types.ts";
|
||||
import { OpenAPI } from "./deps.ts";
|
||||
import { getHeaders } from "./utils.ts";
|
||||
|
||||
addEventListener("error", (event) => {
|
||||
if (event.error) {
|
||||
@@ -122,15 +123,9 @@ try {
|
||||
});
|
||||
log.debug("Debug logging enabled. CLI build against " + VERSION);
|
||||
|
||||
const headers = Deno.env.get("HEADERS");
|
||||
if (headers) {
|
||||
const parsedHeaders = Object.fromEntries(
|
||||
headers.split(",").map((h) => h.split(":").map((s) => s.trim()))
|
||||
);
|
||||
log.debug(
|
||||
"Headers from env keys: " + JSON.stringify(Object.keys(parsedHeaders))
|
||||
);
|
||||
OpenAPI.HEADERS = parsedHeaders;
|
||||
const extraHeaders = getHeaders();
|
||||
if (extraHeaders) {
|
||||
OpenAPI.HEADERS = extraHeaders;
|
||||
}
|
||||
await command.parse(Deno.args);
|
||||
} catch (e) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import { GlobalOptions } from "./types.ts";
|
||||
import { colors, Command, JSZip } from "./deps.ts";
|
||||
import { Workspace } from "./workspace.ts";
|
||||
import { getHeaders } from "./utils.ts";
|
||||
|
||||
export async function downloadZip(
|
||||
workspace: Workspace,
|
||||
@@ -15,6 +16,13 @@ export async function downloadZip(
|
||||
requestHeaders.set("Authorization", "Bearer " + workspace.token);
|
||||
requestHeaders.set("Content-Type", "application/octet-stream");
|
||||
|
||||
const extraHeaders = getHeaders();
|
||||
if (extraHeaders) {
|
||||
for (const [key, value] of Object.entries(extraHeaders)) {
|
||||
requestHeaders.set(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
const zipResponse = await fetch(
|
||||
workspace.remote +
|
||||
"api/w/" +
|
||||
|
||||
@@ -74,3 +74,18 @@ export function deepEqual<T>(a: T, b: T): boolean {
|
||||
// true if both NaN, false otherwise
|
||||
return a !== a && b !== b;
|
||||
}
|
||||
|
||||
export function getHeaders(): Record<string, string> | undefined {
|
||||
const headers = Deno.env.get("HEADERS");
|
||||
if (headers) {
|
||||
const parsedHeaders = Object.fromEntries(
|
||||
headers.split(",").map((h) => h.split(":").map((s) => s.trim()))
|
||||
);
|
||||
log.debug(
|
||||
"Headers from env keys: " + JSON.stringify(Object.keys(parsedHeaders))
|
||||
);
|
||||
return parsedHeaders;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user