Open sani-d opened 3 weeks ago
import groovy.json.JsonBuilder
def issueKey = issue.key def summary = issue.fields.summary def riskRating = issue.fields.customfield_11139?.value def technicalDomain = issue.fields.customfield_11143?.value def businessDomain = issue.fields.customfield_11142?.value def disclosureSource = issue.fields.customfield_11161?.value def environment = issue.fields.customfield_11813?.value def webhookUrl = 'https://hooks.slack.com/services/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'
def msg = [ text: """New Vulnerability ticket with Proposed Risk Acceptance status https://tideaccount.atlassian.net/browse/${issueKey} | ${summary} > ${issueKey} Risk Rating is: ${riskRating} Technical Domain: ${technicalDomain} Business Domain: ${businessDomain} Disclosure Source: ${disclosureSource} Risk Environment: ${environment} """ ]
def postBody = new JsonBuilder(msg).toString()
def status = issue.fields.status.name logger.info(status) def toStatusArray = ["Proposed Risk Acceptance"]
if (changelog && changelog.items) { for (item in changelog.items) { logger.info(item.field) if (item.field == "status") { if (toStatusArray.contains(item.toString) && status == "Proposed Risk Acceptance") { def response = post(webhookUrl) .header('Content-Type', 'application/json') .body(postBody) .asString()
if (response.status != 200) {
println("Failed to send Slack notification: ${response.status} - ${response.body}")
}
}
}
}
} else { logger.warn("Changelog is not populated or items are missing.") }
import groovy.json.JsonBuilder
def issueKey = issue.key def summary = issue.fields.summary def riskRating = issue.fields.customfield_11139?.value def technicalDomain = issue.fields.customfield_11143?.value def businessDomain = issue.fields.customfield_11142?.value def disclosureSource = issue.fields.customfield_11161?.value def environment = issue.fields.customfield_11813?.value def webhookUrl = 'https://hooks.slack.com/services/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'
def msg = [ text: """New Vulnerability ticket with Proposed Risk Acceptance status https://tideaccount.atlassian.net/browse/${issueKey} | ${summary} > ${issuekey} Risk Rating is: ${riskRating} Technical Domain: ${technicalDomain} Business Domain: ${businessDomain} Disclosure Source: ${disclosureSource} Risk Environment: ${environment} """ ]
def postBody = new JsonBuilder(msg).toString()
def status = issue.fields.status.name logger.info(status) def toStatusArray = ["Proposed Risk Acceptance"]
// Assuming changelog is correctly populated elsewhere in your script for (item in changelog.items) { logger.info(item.field) if (item.field == "status") { if (toStatusArray.contains(item.toString) && status == "Proposed Risk Acceptance") { def response = post(webhookUrl) .header('Content-Type', 'application/json') .body(postBody) .asString()
}