使用 JIRA API 更新用户头像
实现方式:使用python-jira 依赖安装:pip install jira pillow
查阅源码:
从python代码中可以看出,上传头像的相关方法为:
其中上一个方法的输出,会作为下一个方法的参数
遇到的问题:头像上传被裁剪,导致头像不完整
这个应该是遇到的最大的问题,通过查阅资料(过程是曲折的)得知,头像大小为48*48时,可以跳过裁剪,于是在调整了头像的宽和高为48后再进行上传,此种方式经验证头像上传后保持完整(内心欢喜)
提示:头像上传不是幂等的,会生成临时头像以做选择,不建议批量更换头像频繁执行,我这里执行了一次
python代码demo如下:
# coding:utf-8
import os
from jira import JIRA
from PIL import Image
# get jira server
auth_jira = JIRA(server='http://jira.xxx.com', basic_auth=('jira_admin', 'jira_passwd'))
username = "jira_user"
user_avatar_path = "D:\\jira_user.jpg"
# resize avatar so that can skip crop
pri_image = Image.open(user_avatar_path)
pri_image.resize((48, 48), Image.ANTIALIAS).save(user_avatar_path)
user_avatar_file_object = open(user_avatar_path, "rb")
size = os.path.getsize(user_avatar_path)
# create_temp_user_avatar
create_temp_user_avatar_response = auth_jira.create_temp_user_avatar(user=username,filename=user_avatar_path,contentType="image/jpeg", size=size, avatar_img=user_avatar_file_object)
avatar_id = create_temp_user_avatar_response["id"]
# set_user_avatar
auth_jira.set_user_avatar(username, avatar_id)
参考文档: https://jira.readthedocs.io/en/master/api.html https://docs.atlassian.com/DAC/rest/jira/6.1.html https://community.atlassian.com/t5/Answers-Developer-Questions/Avatar-upload-with-Jira-5-REST-API/qaq-p/475376
(adsbygoogle = window.adsbygoogle || []).push({});