I try to use REST API v2 to set a single specific fixVersion to an issue.
I used the example from here: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-issueidorkey-put
>>> url = 'https://company.atlassian.net/rest/api/2/issue/ISSUE-123'
>>> auth = ('user@company.com', 'Token')
>>>
>>> headers = {
... "Accept": "application/json",
... "Content-Type": "application/json"
... }
>>>
Initial state:
>>> fix_versions = requests.get(url, auth=auth, headers=headers).json()['fields']['fixVersions']
>>> print([fv['name'] for fv in fix_versions])
['Future', '3.1_hotfix', '3.2']
>>>
Use set to update fixVersions; nothing happens:
>>> payload = json.dumps({'update': {'fixVersions': [{'set': [{'name': 'Future'}]}]}})
>>> requests.put(url, auth=auth, headers=headers, data=payload)
<Response [204]>
>>>
>>> fix_versions = requests.get(url, auth=auth, headers=headers).json()['fields']['fixVersions']
>>> print([fv['name'] for fv in fix_versions])
['Future', '3.1_hotfix', '3.2']
>>>
Remove another fixVersion; nothing happens:
>>> payload = json.dumps({'update': {'fixVersions': [{'remove': {'name': '3.1_hotfix'}}]}})
>>> requests.put(url, auth=auth, headers=headers, data=payload)
<Response [204]>
>>>
>>> fix_versions = requests.get(url, auth=auth, headers=headers).json()['fields']['fixVersions']
>>> print([fv['name'] for fv in fix_versions])
['Future', '3.1_hotfix', '3.2']
>>>
Set the fixVersion using 'fields' instead of 'update'; fixVersion is removed instead of set:
>>> payload = json.dumps({'fields': {'fixVersions': [{'set': [{'name': 'Future'}]}]}})
>>> requests.put(url, auth=auth, headers=headers, data=payload)
<Response [204]>
>>>
>>> fix_versions = requests.get(url, auth=auth, headers=headers).json()['fields']['fixVersions']
>>> print([fv['name'] for fv in fix_versions])
['3.1_hotfix', '3.2']
What am I doing wrong?