如何使用python gitlab模块重新打开已关闭的GitLab项目issue
核心原因
GitLab REST API 本身不支持直接修改state字段来变更issue状态,python-gitlab库也遵循该接口设计,所以你直接给editable_issue.state赋值不会生效。你提到的state_event是属性而非方法,你之前当成方法调用才会出现识别不到的问题。
正确操作方式
修改issue状态时,给state_event赋值对应的操作值后调用save()即可,支持的取值为:
- 重新打开issue赋值为
'reopen' - 关闭issue赋值为
'close'
对应代码示例:
# 单独重新打开已关闭的issue editable_issue.state_event = 'reopen' editable_issue.save()
如果需要同时修改其他字段,和之前的操作逻辑一致,组合赋值后调用一次save()即可:
editable_issue.state_event = 'reopen' editable_issue.labels.append('重新打开') editable_issue.description = '该issue已被批量重新打开' editable_issue.save()
补充说明
你之前尝试修改的state、closed_at都属于GitLab的只读字段,由系统自动维护,用户通过API无法直接修改。你调用save()没有报错是因为python-gitlab在提交请求时会自动过滤掉API不支持修改的字段,所以无效的字段修改不会生效但也不会抛出错误。
内容的提问来源于stack exchange,提问作者oneindelijk
相关产品推荐
相关产品推荐

