使用 JIRA API 更新用户头像
实现方式:使用python-jira
依赖安装:pip install jira pillow查阅源码:
从python代码中可以看出,上传头像的相关方法为:- create_temp_user_avatar 这个返回一系列裁剪属性
- confirm_user_avatar 这个返回头像id
- set_user_avatar 无返回
其中上一个方法的输出,会作为下一个方法的参数
遇到的问题:头像上传被裁剪,导致头像不完整
这个应该是遇到的最大的问题,通过(过程是曲折的)得知,头像大小为48*48时,可以跳过裁剪,于是在调整了头像的宽和高为48后再进行上传,此种方式经验证头像上传后保持完整(内心欢喜)
提示:头像上传不是幂等的,会生成临时头像以做选择,不建议批量更换头像频繁执行,我这里执行了一次
python代码demo如下:
# coding:utf-8import osfrom jira import JIRAfrom PIL import Image# get jira serverauth_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 croppri_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_avatarcreate_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_avatarauth_jira.set_user_avatar(username, avatar_id)
参考文档: