qfix: connect timeout + service ws info cache (#9622)

1. Fix connect timeout in case of maitenance
2. Introduce workspace info cache for service accounts
3. Fix null in github integration

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev
2025-07-31 15:42:16 +07:00
committed by GitHub
parent 6c6436d06c
commit fb65165f80
4 changed files with 72 additions and 10 deletions
+11 -1
View File
@@ -1753,8 +1753,14 @@ export class GithubWorker implements IntegrationManager {
ctx.info('Connecting to', { workspace })
let client: Client | undefined
let endpoint: string | undefined
let maitenanceState = false
try {
;({ client, endpoint } = await createPlatformClient(workspace.uuid, 30000, async (event: ClientConnectEvent) => {
if (event === ClientConnectEvent.Maintenance) {
await client?.close()
maitenanceState = true
throw new Error('Workspace in maintenance')
}
reconnect(workspace.uuid, event)
}))
ctx.info('connected to github', { workspace: workspace.uuid, endpoint })
@@ -1781,8 +1787,12 @@ export class GithubWorker implements IntegrationManager {
void worker.init()
return worker
} catch (err: any) {
ctx.error('timeout during to connect', { workspace, error: err })
await client?.close()
if (maitenanceState) {
ctx.info('workspace in maintenance, schedule recheck', { workspace: workspace.uuid, endpoint })
return
}
ctx.error('timeout during to connect', { workspace, error: err })
return undefined
}
}