Files
huly-platform/services/github/pod-github/src/index.ts
T
Andrey SobolevandGitHub e20ec51363 UBERF-9724: Fix github functionality on 0.7 (#8554)
* UBERF-9724: Fix github functionality on 0.7

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>

* Fix exception for no social id for system account

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>

---------

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-04-15 17:18:49 +07:00

68 lines
1.8 KiB
TypeScript

//
// Copyright © 2023 Hardcore Engineering Inc.
//
import { Analytics } from '@hcengineering/analytics'
import { SplitLogger, configureAnalytics } from '@hcengineering/analytics-service'
import { MeasureMetricsContext, newMetrics } from '@hcengineering/core'
import { initStatisticsContext, loadBrandingMap } from '@hcengineering/server-core'
import { join } from 'path'
import config from './config'
import { start } from './server'
import { setMetadata } from '@hcengineering/platform'
import serverToken from '@hcengineering/server-token'
// Load and inc startID, to have easy logs.
setMetadata(serverToken.metadata.Secret, config.ServerSecret)
const metricsContext = initStatisticsContext('github', {
factory: () =>
new MeasureMetricsContext(
'github',
{},
{},
newMetrics(),
new SplitLogger('github-service', {
root: join(process.cwd(), 'logs'),
enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true'
})
)
})
configureAnalytics(config.SentryDSN, config)
Analytics.setTag('application', 'github-service')
let doOnClose: () => Promise<void> = async () => {}
void start(metricsContext, loadBrandingMap(config.BrandingPath))
.then((r) => {
doOnClose = r
})
.catch((err) => {
metricsContext.error('Error', { error: err })
})
const onClose = (): void => {
metricsContext.info('Closed')
void doOnClose()
.then((r) => {
process.exit(0)
})
.catch((err) => {
metricsContext.error('Error', { error: err })
})
}
process.on('uncaughtException', (e) => {
metricsContext.error('UncaughtException', { error: e })
})
process.on('unhandledRejection', (reason, promise) => {
metricsContext.error('Unhandled Rejection at:', { promise, reason })
})
process.on('SIGINT', onClose)
process.on('SIGTERM', onClose)
process.on('exit', onClose)