Bhavya-org / Scripts

0 stars 0 forks source link

2024-06-05 09:05:51.843 ERROR - No such property: issue for class: Script1 on line 1 2024-06-05 09:05:51.856 ERROR - Class: com.adaptavist.sr.cloud.events.ScheduledScriptExecution, Config: null #23

Open sani-d opened 3 weeks ago

sani-d commented 3 weeks ago

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

issues.each { issue ->
    def issueKey = issue.key
    sendSlackMessage(issueKey)
}

} else { println("Failed to search for issues. Status: ${searchResult.status}") }

Bhavya-ss commented 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}") }