import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
final String customFieldName = "Single Select List"
final String newValue = "Option C"
final String issueKey = "ATG-1"
def issue = ComponentAccessor.issueManager.getIssueByCurrentKey(issueKey)
assert issue : "Could not find issue with key $issueKey"
def customField = ComponentAccessor.customFieldManager.getCustomFieldObjects(issue).findByName(customFieldName)
assert customField : "Could not find custom field with name $customFieldName"
def availableOptions = ComponentAccessor.optionsManager.getOptions(customField.getRelevantConfig(issue))
def optionToSet = availableOptions.find { it.value == newValue }
assert optionToSet : "Could not find option with value $newValue. Available options are ${availableOptions*.value.join(",")}"
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), optionToSet), new DefaultIssueChangeHolder())
Overview
Content Tools