diff --git a/apps/web/src/lib/server/events/targets.ts b/apps/web/src/lib/server/events/targets.ts index fd0f371d2..fa5f3982b 100644 --- a/apps/web/src/lib/server/events/targets.ts +++ b/apps/web/src/lib/server/events/targets.ts @@ -317,7 +317,10 @@ async function getIntegrationTargets( const secrets = decryptSecrets<{ accessToken?: string }>(m.secrets) accessToken = secrets.accessToken } catch (error) { - log.error({ err: error, integration_type: m.integrationType }, 'failed to decrypt integration secrets') + log.error( + { err: error, integration_type: m.integrationType }, + 'failed to decrypt integration secrets' + ) continue } } @@ -325,7 +328,7 @@ async function getIntegrationTargets( targets.push({ type: m.integrationType, target: { channelId }, - config: { accessToken, rootUrl: context.portalBaseUrl }, + config: { ...integrationConfig, accessToken, rootUrl: context.portalBaseUrl }, }) } diff --git a/apps/web/src/lib/server/integrations/azure-devops/api.ts b/apps/web/src/lib/server/integrations/azure-devops/api.ts index 7690a84ec..cad288800 100644 --- a/apps/web/src/lib/server/integrations/azure-devops/api.ts +++ b/apps/web/src/lib/server/integrations/azure-devops/api.ts @@ -36,11 +36,12 @@ async function azureDevOpsApi( if (!response.ok) { const status = response.status - if (status === 401) throw Object.assign(new Error('Unauthorized'), { status }) - if (status === 403) throw Object.assign(new Error('Forbidden'), { status }) - if (status === 429) throw Object.assign(new Error('Rate limited'), { status }) - if (status >= 500) throw Object.assign(new Error(`Server error ${status}`), { status }) - throw Object.assign(new Error(`HTTP ${status}`), { status }) + const detail = await response.text().catch(() => '') + if (status === 401) throw Object.assign(new Error('Unauthorized'), { status, detail }) + if (status === 403) throw Object.assign(new Error('Forbidden'), { status, detail }) + if (status === 429) throw Object.assign(new Error('Rate limited'), { status, detail }) + if (status >= 500) throw Object.assign(new Error(`Server error ${status}`), { status, detail }) + throw Object.assign(new Error(`HTTP ${status}: ${detail}`), { status, detail }) } return response