I want to upload an image as an Avatar to an Insight object from my code, ideally using a Rest call.
https://documentation.riada.io/display/ICV50/Insight+with+JIRA+REST-API
lists only a get method to retrieve the Avatar but not to set it.
Now, when I upload it manually I can sniff on the network a call to:
<jira-base-url>/jira/plugins/servlet/com.riadalabs.jira.plugins.insight/avatarupload
I also add the file and as usual the
headers = {'X-Atlassian-Token': 'no-check'}
I end up with the error message:
{
"error": {
"system": "Upload error, are you uploading a valid image?"
}
}
in the response header. I get the same when using eg. Postman to call the endpoint. When I replay the call from the network sniffer it does work with the same file.
Does somebody have a similar issue, and were you able to overcome it? Any hints welcome.
Many thanks in advance.
Christian.
{
"attributes": [
{
"objectTypeAttributeId": <objectTypeAttributeIdOfLabelAttribute>,
"objectAttributeValues": [{"value": "Test Avatar"}]
}
],
"objectTypeId": <objectTypeId>,
"avatarUUID": "<yourUUID>",
"hasAvatar": true
}
Hi Alexander,
this works for me, thanks a lot.
Here is what I sent along with for the first POST request:
import uuid
...
url = "{}".format(
Config.urls()["base_url"]
+ "jira/plugins/servlet/com.riadalabs.jira.plugins.insight/avatarupload"
)
uid = str(uuid.uuid4())
logging.info("Generated UUID %s: ", uid)
data = {"avatarUUID": uid,
"name": "rlabs-insight-object-avatar"}
r_post = send_request(url, None, "post", data=data, filename=filename)
it does not have to be uuid4, any of the options will do.
Best regards,
Christian.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
To upload avatars i use this endpoint now: /rest/insight/1.0/avatar/upload
Example:
#!/bin/bash
# generate uid
uid=$(uuidgen | tr "[:upper:]" "[:lower:]")
# upload picture
curl -v -H "X-Atlassian-Token: 'no-check'" -H "Authorization: Bearer <TOKEN>" -F file=@picture.jpg -F avatarUUID=$uid <BASE_URL>/rest/insight/1.0/avatar/upload
# set picture as avatar on object
curl -v -H "Content-Type: application/json" -H "X-Atlassian-Token: 'no-check'" -H "Authorization: Bearer <TOKEN>" -X PUT --data '{"attributes": [{"objectTypeAttributeId": <objectTypeAttributeIDtoUpdate>,"objectAttributeValues": [{"value": "<VALUE>"}]}],"objectTypeId": 1,"avatarUUID": "'$uid'","hasAvatar": true}' <BASE_URL>/rest/insight/1.0/object/<OBJECT_ID>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.