bugsnag-notification-plugins
Version:
Notification plugins (chat and issue tracking integrations) for Bugsnag.
30 lines (24 loc) • 1.03 kB
text/coffeescript
NotificationPlugin = require "../../notification-plugin"
class GitLabIssue extends NotificationPlugin
@receiveEvent: (config, event, callback) =>
return if event?.trigger?.type == "reopened"
# Build the ticket
payload =
title: @title(event)
description: @markdownBody(event)
# Regex removes surrounding whitespace around commas while retaining inner whitespace
# and then creates an array of the strings
labels: (config?.labels || "bugsnag").trim().split(/\s*,\s*/).compact(true)
# Send the request
@request
.post("#{config.gitlab_url}/api/v3/projects/#{encodeURIComponent(config.project_id)}/issues")
.set("User-Agent", "Bugsnag")
.set("PRIVATE-TOKEN", config.private_token)
.send(payload)
.on("error", callback)
.end (res) ->
return callback(res.error) if res.error
callback null,
id: res.body.id
url: "#{config.gitlab_url}/#{config.project_id}/issues/#{res.body.id}"
module.exports = GitLabIssue