//native
type Gitbook = {
token: string;
};
/**
* Publish an integration
*
*/
export async function main(
auth: Gitbook,
integrationName: string,
body: {
runtime?: "v1" | "v2";
icon?: string;
title: string;
description: string;
summary?: string;
previewImages?: string[];
visibility?: "public" | "private" | "unlisted";
target?: "all" | "site" | "space" | "organization";
scopes:
| "space:views:read"
| "space:content:read"
| "space:content:write"
| "space:metadata:read"
| "space:metadata:write"
| "space:script:inject"
| "space:script:cookies"
| "space:git:sync"
| "space:visitor:auth"
| "site:metadata:read"
| "site:views:read"
| "site:script:inject"
| "site:script:cookies"
| "site:visitor:auth"
| "site:adaptive:read"
| "site:adaptive:write"
| "openapi:read"
| "openapi:write"
| "conversations:ingest"[];
categories?:
| "analytics"
| "collaboration"
| "content"
| "gitsync"
| "marketing"
| "visitor-auth"
| "other"[];
blocks?: {
id: string;
title: string;
description?: string;
icon?: string;
urlUnfurl?: string[];
markdown?: { codeblock: string; body: string };
}[];
contentSources?: {
id: string;
title: string;
description?: string;
icon?: string;
configuration: { componentId: string };
}[];
externalLinks?: { url: string; label: string }[];
configurations?: {
account?:
| { properties: {}; required?: string[] }
| { componentId: string };
space?: { properties: {}; required?: string[] } | { componentId: string };
site?: { properties: {}; required?: string[] } | { componentId: string };
};
script: string;
organization: string;
secrets?: {};
contentSecurityPolicy?:
| string
| {
"base-uri"?: string;
"block-all-mixed-content"?: string;
"child-src"?: string;
"connect-src"?: string;
"default-src"?: string;
"font-src"?: string;
"form-action"?: string;
"frame-ancestors"?: string;
"frame-src"?: string;
"img-src"?: string;
"manifest-src"?: string;
"media-src"?: string;
"navigate-to"?: string;
"object-src"?: string;
"plugin-types"?: string;
"prefetch-src"?: string;
referrer?: string;
"report-to"?: string;
"report-uri"?: string;
"require-sri-for"?: string;
"require-trusted-types-for"?: string;
sandbox?: string;
"script-src"?: string;
"script-src-attr"?: string;
"script-src-elem"?: string;
"style-src"?: string;
"style-src-attr"?: string;
"style-src-elem"?: string;
"trusted-types"?: string;
"upgrade-insecure-requests"?: string;
"worker-src"?: string;
};
},
) {
const url = new URL(`https://api.gitbook.com/v1/integrations/${integrationName}`);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 235 days ago