Skip to content

Commit

Permalink
add custom Sentry integration
Browse files Browse the repository at this point in the history
This avoids probots Sentry integration
  • Loading branch information
bobvanderlinden committed Sep 23, 2018
1 parent 5533698 commit 2613c0b
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 39 deletions.
32 changes: 8 additions & 24 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Expand Up @@ -25,6 +25,7 @@
},
"dependencies": {
"@mojotech/json-type-validation": "^2.0.0",
"bunyan-sentry-stream": "^1.2.1",
"debug": "^4.0.0",
"probot": "^7.1.0",
"probot-config": "^0.2.0",
Expand Down
4 changes: 4 additions & 0 deletions src/global.d.ts
@@ -1,3 +1,7 @@
declare module 'probot-config' {
export default function getConfig<TContext, TConfig> (context: TContext, fileName: String, defaultConfig: TConfig): Promise<TConfig>
}

declare module 'bunyan-sentry-stream' {
export default function sentryStream (raven: any)
}
39 changes: 24 additions & 15 deletions src/index.ts
Expand Up @@ -3,21 +3,7 @@ import { loadConfig } from './config'
import { HandlerContext } from './models'
import Raven from 'raven'
import { RepositoryWorkers } from './repository-workers'

if (process.env.NODE_ENV === 'production') {
Raven.config(process.env.SENTRY_DSN, {
captureUnhandledRejections: true,
tags: {
version: process.env.HEROKU_RELEASE_VERSION as string
},
release: process.env.SOURCE_VERSION,
environment: process.env.NODE_ENV || 'development',
autoBreadcrumbs: {
'console': true,
'http': true
}
}).install()
}
import sentryStream from 'bunyan-sentry-stream'

async function getHandlerContext (options: {app: Application, context: Context}): Promise<HandlerContext> {
const config = await loadConfig(options.context)
Expand All @@ -43,8 +29,31 @@ async function useHandlerContext (options: {app: Application, context: Context},
})
}

function setupSentry (app: Application) {
if (process.env.NODE_ENV !== 'production') {
Raven.disableConsoleAlerts()
}
Raven.config(process.env.SENTRY_DSN2, {
captureUnhandledRejections: true,
tags: {
version: process.env.HEROKU_RELEASE_VERSION as string
},
release: process.env.SOURCE_VERSION,
environment: process.env.NODE_ENV || 'development',
autoBreadcrumbs: {
'console': true,
'http': true
}
}).install()

app.log.target.addStream(sentryStream(Raven))
}

export = (app: Application) => {
setupSentry(app)

const repositoryWorkers = new RepositoryWorkers()

app.on([
'pull_request.opened',
'pull_request.edited',
Expand Down
4 changes: 4 additions & 0 deletions test/mock.ts
Expand Up @@ -173,6 +173,10 @@ export function createLogger (baseLogger: BaseLogger): LoggerWithTarget {
logger.fatal = logger
logger.target = logger
logger.child = (opts) => logger

const loggerAsAny: any = logger
loggerAsAny.addStream = () => undefined

return logger
}

Expand Down

0 comments on commit 2613c0b

Please sign in to comment.