kaneo (minimalist kanban) fork to experiment adding a tangled integration github.com/usekaneo/kaneo
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 52 lines 1.6 kB view raw
1import { and, eq } from "drizzle-orm"; 2import db from "../../database"; 3import { integrationTable } from "../../database/schema"; 4import { 5 defaultGiteaConfig, 6 type GiteaConfig, 7} from "../../plugins/gitea/config"; 8import { normalizeApiServerUrl } from "../../utils/openapi-spec"; 9 10function maskToken(token: string): string { 11 if (token.length <= 8) { 12 return "••••••••"; 13 } 14 return `${token.slice(0, 4)}••••••${token.slice(-4)}`; 15} 16 17async function getGiteaIntegration(projectId: string) { 18 const integration = await db.query.integrationTable.findFirst({ 19 where: and( 20 eq(integrationTable.projectId, projectId), 21 eq(integrationTable.type, "gitea"), 22 ), 23 }); 24 25 if (!integration) { 26 return null; 27 } 28 29 const config = JSON.parse(integration.config) as GiteaConfig; 30 31 const apiBase = normalizeApiServerUrl( 32 process.env.KANEO_API_URL || "http://localhost:1337", 33 ); 34 35 return { 36 id: integration.id, 37 projectId: integration.projectId, 38 baseUrl: config.baseUrl, 39 repositoryOwner: config.repositoryOwner, 40 repositoryName: config.repositoryName, 41 maskedAccessToken: maskToken(config.accessToken), 42 webhookUrl: `${apiBase.replace(/\/$/, "")}/gitea-integration/webhook/${integration.id}`, 43 webhookSecret: config.webhookSecret ?? "", 44 branchPattern: config.branchPattern || defaultGiteaConfig.branchPattern, 45 commentTaskLinkOnGiteaIssue: config.commentTaskLinkOnGiteaIssue !== false, 46 isActive: integration.isActive, 47 createdAt: integration.createdAt, 48 updatedAt: integration.updatedAt, 49 }; 50} 51 52export default getGiteaIntegration;