首页 > 编程问答 >在 Gerrit 的 REST API 中,如何查找补丁集 ID 值?我有 url.../details Json 但在那里找不到它

在 Gerrit 的 REST API 中,如何查找补丁集 ID 值?我有 url.../details Json 但在那里找不到它

时间:2024-07-25 04:47:54浏览次数:14  
标签:python gerrit

我正在使用 request.get 来获取 Json,并想使用最新的补丁集和扩展名 /revisions/(patchSetNumber)/files 再次执行此操作以查找所有修改的文件。我无法弄清楚如何通过请求找到补丁集 ID。

我尝试通过 url/details 扩展进行搜索,但无法找到修订选项卡或补丁集选项卡


是对的,Gerrit REST API 的 /details 端点不提供补丁集 ID。要查找补丁集 ID,需要执行以下操作:

  1. /details 端点获取更改 ID:

如所述,已经拥有包含 /details 信息的 URL。从该 JSON 响应中,可以提取更改 ID,该 ID 位于 "_number" 字段下。

  1. 使用更改 ID 查询 /changes/<CHANGE-ID>/revisions/ 端点:

这将返回该更改的所有修订(补丁集)的列表。每个修订都将具有其自己的 ID(补丁集 ID)和其他元数据。

  1. 识别最新的补丁集:

响应将按时间倒序排列。第一个修订将是最新上传的修订。从该修订中,可以提取 "_number" 字段下的补丁集 ID。

  1. (可选)使用补丁集 ID 获取文件列表:

获取补丁集 ID 后,可以使用 /changes/<CHANGE-ID>/revisions/<PATCHSET-ID>/files/ 端点检索该特定补丁集中已修改的文件列表。

示例代码(使用 Python requests 库):

import requests

# Gerrit 实例的基准 URL
BASE_URL = "https://your-gerrit-instance.com/a"

# 包含 /details 信息的 URL
details_url = f"{BASE_URL}/changes/<CHANGE-NUMBER>/details"

# 从 /details 端点获取 JSON 响应
response = requests.get(details_url)
data = response.json()

# 提取更改 ID
change_id = data["_number"]

# 使用更改 ID 获取修订列表
revisions_url = f"{BASE_URL}/changes/{change_id}/revisions/"
response = requests.get(revisions_url)
revisions_data = response.json()

# 获取最新的补丁集 ID
latest_patchset_id = revisions_data[0]["_number"]

# 使用补丁集 ID 获取文件列表(可选)
files_url = f"{BASE_URL}/changes/{change_id}/revisions/{latest_patchset_id}/files/"
response = requests.get(files_url)
files_data = response.json()

# 打印文件列表
print(files_data)

注意:

  • your-gerrit-instance.com 替换为的 Gerrit 实例的实际 URL。
  • <CHANGE-NUMBER> 替换为实际的更改编号。

通过遵循这些步骤,可以从 Gerrit REST API 中检索补丁集 ID 并使用它来访问其他端点,例如检索特定补丁集中的已修改文件列表。

标签:python,gerrit
From: 78790523

相关文章

  • 如何使用 Python 创建新的 Azure 订阅?
    我正在尝试使用PythonSDK以编程方式创建新的Azure订阅。我发现的对AzurePythonSDK的唯一引用是这个这是我最终得到的结果:importazure.mgmt.billingimportazure.mgmt.subscriptioncreds=AzureCliCredential()client_name='test'defcreat......
  • 用于打印脚本输出的 Python 实用程序
    我可以发誓有一个实用程序可以打印一个python脚本,其输出交织在一起。例如,给定一个脚本:a=2b=3print(a+b)print(a*b)该实用程序将输出a=2b=3print(a+b)#>5print(a*b)#>6有人知道该实用程序的名称吗?我最难找到它。谢谢你!描述的实用程序没有标......
  • a method to make some handy tools with python
    Inmyworkingofcomputer,therearealotofsimplejobsthatarefrequentlyrepeated.Itriedtofindawaytomakethesejobbeenprocessedeasily.Method1:Themethodiswritingascripttodothejob,andexecutingthescriptbyutoolsextensionuto......
  • Python网络爬虫详解:实战豆瓣电影信息采集
    文章目录前言一、爬虫是什么?二、常用库及其作用1.Requests2.BeautifulSoup3.lxml4.Scrapy5.Selenium6.PyQuery7.Pandas8.JSON9.Time三、实现步骤步骤一:环境准备步骤二:数据采集步骤三:数据处理步骤四:数据存储总结前言随着互联网的迅猛发展和数据分析需求的不......
  • python学习之内置函数
    Python拥有许多内置函数,这些函数是Python的一部分,不需要额外导入即可直接使用。这些函数提供了对Python解释器功能的直接访问,涵盖了从数学计算到类型检查、从内存管理到异常处理等各个方面。下面是一些常用的Python内置函数及其简要说明:一、Printprint函数大家都不会......
  • Python中以函数为作用域
    点击查看代码#第一题foriteminrange(10):#不报错,没有函数,所有操作在全局作用域里面执行,item最后赋值为:9,此时item在缩进与全局都可以使用passprint(item)#第二题item=10deffunc():foriteminrange(10):#优先在本地查找,找不到在到全局查找p......
  • 掌握IPython宏:%%macro命令的高效使用指南
    掌握IPython宏:%%macro命令的高效使用指南在编程中,宏是一种允许你定义可重用代码片段的强大工具。IPython,这个增强版的Python交互式环境,提供了一个名为%%macro的魔术命令,允许用户创建宏,从而提高代码的可重用性和效率。本文将详细介绍如何在IPython中使用%%macro命令创建宏,并......
  • 7月24号python:库存管理
    7月24号python:库存管理题目:​ 仓库管理员以数组stock形式记录商品库存表。stock[i]表示商品id,可能存在重复。原库存表按商品id升序排列。现因突发情况需要进行商品紧急调拨,管理员将这批商品id提前依次整理至库存表最后。请你找到并返回库存表中编号的最小的元素以便及......
  • IPython的Bash之舞:%%bash命令全解析
    IPython的Bash之舞:%%bash命令全解析IPython的%%bash魔术命令为JupyterNotebook用户提供了一种在单元格中直接执行Bash脚本的能力。这个特性特别适用于需要在Notebook中运行系统命令或Bash特定功能的场景。本文将详细介绍如何在IPython中使用%%bash命令,并提供实际的代码示......
  • Python数据分析与可视化大作业项目说明(含免费代码)
    题目:对全球和中国互联网用户的数据分析与可视化代码下载链接:https://download.csdn.net/download/s44359487yad/89574688一、项目概述1.1.项目背景:互联网是当今时代最重要和最有影响力的技术之一,它已经深刻地改变了人们的生活、工作、学习等方面。互联网用户数据是反映......