如何自动关闭 GitLab 中的陈旧问题?
How can I automatically close stale issues in GitLab?
是否有开箱即用的功能来自动关闭在特定时间段内没有任何 activity 的问题,例如4 周?
如果没有,针对我所在小组的问题实施此方法的最佳方式是什么?
我不熟悉此类选项,但您可以查看问题列表并按创建或更新排序。
它本身不存在,但您可以准备一个脚本 运行 到 cronjob 或类似工具中,这样您就可以定期清除这些问题。该脚本可以使用 GitLab Issue API,并检查问题日期以确定是否关闭特定问题。 API 具有您使用所描述的逻辑制作此脚本所需的所有工具。
此解决方案使用 python-gitlab
包。它获取所有组问题,为那些不活跃的问题添加评论并关闭它们。
唯一的先决条件是
- 获取
PRIVATE_TOKEN
并将其添加到您的环境中
- 找出您的组 ID 并将其添加到下方
import datetime
import os
import gitlab
stale_before = datetime.date.today() - datetime.timedelta(days=28)
gl = gitlab.Gitlab(
url="https://gitlab.example.com", private_token=os.environ["PRIVATE_TOKEN"]
)
group = gl.groups.get(123) # your group ID
issues = group.issues.list(all=True, state="opened")
for issue in issues:
updated_at = datetime.datetime.fromisoformat(issue.updated_at).date()
if updated_at < stale_before:
print(f"Closing issue #{issue.iid} (last activity on {updated_at}).")
issue.notes.create({"body": "Closing for inactivity."})
issue.state_event = "close"
issue.save()
是否有开箱即用的功能来自动关闭在特定时间段内没有任何 activity 的问题,例如4 周?
如果没有,针对我所在小组的问题实施此方法的最佳方式是什么?
我不熟悉此类选项,但您可以查看问题列表并按创建或更新排序。
它本身不存在,但您可以准备一个脚本 运行 到 cronjob 或类似工具中,这样您就可以定期清除这些问题。该脚本可以使用 GitLab Issue API,并检查问题日期以确定是否关闭特定问题。 API 具有您使用所描述的逻辑制作此脚本所需的所有工具。
此解决方案使用 python-gitlab
包。它获取所有组问题,为那些不活跃的问题添加评论并关闭它们。
唯一的先决条件是
- 获取
PRIVATE_TOKEN
并将其添加到您的环境中 - 找出您的组 ID 并将其添加到下方
import datetime
import os
import gitlab
stale_before = datetime.date.today() - datetime.timedelta(days=28)
gl = gitlab.Gitlab(
url="https://gitlab.example.com", private_token=os.environ["PRIVATE_TOKEN"]
)
group = gl.groups.get(123) # your group ID
issues = group.issues.list(all=True, state="opened")
for issue in issues:
updated_at = datetime.datetime.fromisoformat(issue.updated_at).date()
if updated_at < stale_before:
print(f"Closing issue #{issue.iid} (last activity on {updated_at}).")
issue.notes.create({"body": "Closing for inactivity."})
issue.state_event = "close"
issue.save()