使用GitLab Python库判断一个mr是否完全approval

python 复制代码
import gitlab

# GitLab server URL and personal access token
gitlab_url = 'https://gitlab.example.com'
private_token = 'your_personal_access_token'

# ID of the project and merge request
project_id = 1234
merge_request_iid = 5678

# Create GitLab client
gl = gitlab.Gitlab(gitlab_url, private_token)

# Get the project
project = gl.projects.get(project_id)

# Get the merge request
mr = project.mergerequests.get(merge_request_iid)

# Get the approval status of the merge request
all_approved = mr.approval_state.get()

for rule in all_approved.rules:
   if rule.get('approved')==False:
       print("Not all approvals received.")
       break
else:
	print("All approvals received.")

mr.approval_state.get()返回的格式:

bash 复制代码
<class 'gitlab.v4.objects.merge_request_approvals.ProjectMergeRequestApprovalState'> => {
  'approval_rules_overwritten': True,
  'rules': [
    {
      'id': 12345,
      'name': 'All Members',
      'rule_type': 'any_approver',
      'eligible_approvers': [],
      'approvals_required': 1,
      'users': [],
      'groups': [],
      'contains_hidden_groups': False,
      'section': None,
      'source_rule': {
        'approvals_required': 1
      },
      'overridden': False,
      'code_owner': False,
      'approved_by': [
        {
          'id': 121,
          'username': 'xxx',
          ......
        },
        {
          'id': 122,
          'username': 'xxx',
          ......
        }
      ],
      'approved': True
    },

所有rule的approved为True则表明全部approved。

相关推荐
像风一样自由202023 分钟前
2.如何用FastAPI把一个Python算法封装成HTTP服务
python·算法·fastapi
青少儿编程课堂30 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
田里的水稻31 分钟前
FA_CNN卷积神经网络十八---感知机到多层感知机PyTorch
人工智能·pytorch·python
終不似少年遊*1 小时前
【Skill】为中型研发团队制作的敏捷迭代AI副驾Skill
人工智能·python·华为云·agent·ai编程·skill
呆萌的代Ma1 小时前
python使用ThreadPoolExecutor自带队列将多线程变串行执行
python
echome8881 小时前
Python 正则表达式:5 个日常够用的模式
python·正则表达式
吴名氏.1 小时前
Java转AI Agent教程(第二周)超时重试与错误分类
java·人工智能·python·分类·ai agent
青少儿编程课堂1 小时前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛
Eiceblue1 小时前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
Android小码家2 小时前
framework&framework-minus-apex&android.jar的区别
android·python·jar