Skip to main content
Example scripts
arrow icon
To homepage
Bitbucket
Data centre icon
Data Center

Find unique Timezones for the Participants of a Pull Request

Tags
Created 1 year ago, Updated 3 month(s) ago
App in script
ScriptRunner For Bitbucket
ScriptRunner For Bitbucket
by Adaptavist
Compatibility
compatibility bullet
Bitbucket (6.0 - 7.17)
compatibility bullet
ScriptRunner For Bitbucket (7.10.0)
Language |
groovy
import com.atlassian.bitbucket.pull.PullRequestService
import com.atlassian.bitbucket.repository.Repository
import com.onresolve.scriptrunner.parameters.annotation.RepositoryPicker
import com.atlassian.bitbucket.user.ApplicationUser
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.bitbucket.timezone.UserTimeZoneSupplier
import com.onresolve.scriptrunner.parameters.annotation.ShortTextInput

@RepositoryPicker(label = 'Repository', description = 'Select a repository')
Repository repository

@ShortTextInput(label = "Pull Request id", description = "Enter the id of the pull request")
String pullRequestId

def pullRequestService = ComponentLocator.getComponent(PullRequestService)

def pullRequest = pullRequestService.getById(repository.id, pullRequestId.toLong())

def participants = pullRequest.reviewers*.user
participants << pullRequest.author.user

def userTimeZoneSupplier = ComponentLocator.getComponent(UserTimeZoneSupplier)
def timeZones = participants.collect { participant ->
    userTimeZoneSupplier.getTimeZone(participant as ApplicationUser)
}

def actualTimeZones = timeZones.unique()
Having an issue with this script?
Report it here