Open sani-d opened 3 weeks ago
import groovy.json.JsonOutput
// Function to make REST API GET requests def getRequest(String url) { return get(url) .header('Content-Type', 'application/json') .asObject(Map) }
// Function to send a Slack message def sendSlackMessage(String issueKey, String assigneeUsername) { def webhookUrl = 'https://hooks.slack.com/services/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' def msg = [ text: """${assigneeUsername} https://tideaccount.atlassian.net/${issueKey}""" ] post(webhookUrl) .header('Content-Type', 'application/json') .body(JsonOutput.toJson(msg)) .asString() }
// Step 1: Define the JQL query def jqlQuery = 'project = BI AND status in ("Awaiting Assignment", "In refinement", Refined) AND summary ~ "🚨 Schedule: `" order by created DESC'
// Step 2: Search for issues matching the JQL query def searchUrl = "/rest/api/3/search?jql=${URLEncoder.encode(jqlQuery, 'UTF-8')}" def searchResult = getRequest(searchUrl)
if (searchResult.status == 200 && searchResult.body.containsKey('issues')) { def issues = searchResult.body.issues
issues.each { issue ->
def issueKey = issue.key
def assignee = issue.fields.assignee?.displayName
def assigneeUsername = assignee ? "@${assignee.toLowerCase().replace(' ', '.')}" : ""
sendSlackMessage(issueKey, assigneeUsername)
}
} else { println("Failed to search for issues. Status: ${searchResult.status}") }
def issuekey = issue.key def assignee = issue.fields.assignee?.displayName def assigneeUsername = assignee ? "@${assignee.toLowerCase().replace(" ", ".")}" : "" // Function to make REST API GET requests def getRequest(String url) { return get(url) .header('Content-Type', 'application/json') .asObject(Map) }
// Function to send a Slack message def sendSlackMessage(String issueKey) { def webhookUrl = 'https://hooks.slack.com/services/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' def msg = [ text: """${assigneeUsername} https://tideaccount.atlassian.net/${issueKey}""" ] post(webhookUrl) .header('Content-Type', 'application/json') .body(msg) .asString() }
// Step 1: Define the JQL query def jqlQuery = 'project = BI AND status in ("Awaiting Assignment", "In refinement", Refined) AND summary ~ "🚨 Schedule: `" order by created DESC'
// Step 2: Search for issues matching the JQL query def searchUrl = "/rest/api/3/search?jql=${URLEncoder.encode(jqlQuery, 'UTF-8')}" def searchResult = getRequest(searchUrl)
if (searchResult.status == 200 && searchResult.body.containsKey('issues')) { def issues = searchResult.body.issues
} else { println("Failed to search for issues. Status: ${searchResult.status}") }