我正在开发抓紧!C++项目,它管理具有复杂依赖关系集的许多包(见下图)。
因此,在运行软件包B之前,我需要包A的构建才能完成。我想至少半自动地完成构建过程,为此我需要知道,通过编程,包A已经完成了构建。然后,我可以验证构建是否有效(我知道如何做),如果是这样的话,我可以发送包B的源代码并启动该构建。
我找到了关于启动器API的页面,并下载了他们提供的用于访问服务器的python脚本。但是,我不太擅长python,也不太确定我需要使用什么样的API调用。我找到了这一大页,我假设所有的调用都是这样,但我无法找到一个简单的例子,说明如何获得特定项目的当前构建状态。也许是getBuildQueueSizes?但是,查看launchpadlib Python项目文件,我在代码中找不到任何这样的名称。所以我不太确定那是怎么回事。
你会有至少能做到这一点的示例代码与我们共享吗?或者是在Launchpad.net网站上有一个例子的地方?
在这一点上,我的剧本连接..。接下来我该怎么办?
# See API here
# https://launchpad.net/+apidoc/devel.html
from launchpadlib.launchpad import Launchpad
from os.path import expanduser
home = expanduser('~')
cachedir = home + '/.launchpadlib/cache/'
launchpad = Launchpad.login_anonymously('snapcpp', 'production', cachedir, version='devel')如果可能的话,只要一个URI就好了。从这里和那里可以看到,只需向URI发出一个HTTP就可以得到一个GET,并提供所有必要的信息。我看不出那个URI是什么。我试了几次从我在文档中看到的(用超重的例子.)):
https://api.launchpad.net/devel/snapcpp?ws.op=getBuildRecords&source_name=libtld这个命令告诉我,getBuildRecords不是命令。然而,在大多数情况下,我得到了400或404。项目URL工作,但是JSON中显示的所有链接都没有帮助:
https://api.launchpad.net/devel/snapcpp通过更多的测试,我发现我可以用以下方法搜索一些构建:
https://api.launchpad.net/devel/ubuntu/bionic?ws.op=getBuildRecords&source_name=lib但是,如果我尝试使用我的项目名称作为source_name=...参数(a.k.a )。"libtld“或"snapcpp"),则返回空列表。最后一个URL也只适用于/ubuntu?...或架构/ubuntu/bionic/amd64?...。但这没什么用。
我想这可能是一个窃听器所以我报告了洗衣板。

发布于 2021-06-06 11:59:04
launchpadlib是底层Launchpad API上的一个相对较薄的层,实际操作是在启动板中实现的。因此,通过查看launchpadlib的S源代码,您通常不会发现任何提及个别API方法的地方。
这里的问题是,您询问的是关于/snapcpp的Launchpad问题(就Launchpad而言,该项目与您的PPA没有正式的关联),或者是关于/ubuntu/bionic ( Ubuntu系列,它只告诉您官方操作系统中的构建),而不是您的PPA。正确的URL是:
https://api.launchpad.net/devel/~snapcpp/+archive/ubuntu/ppa?ws.op=getBuildRecords&source_name=libtld或者在launchpadlib-based代码中,如下所示:
archive = launchpad.load('/~snapcpp/+archive/ubuntu/ppa')
for build in archive.getBuildRecords(source_name='libtld'):
# do something with each build in turnhttps://askubuntu.com/questions/1338731
复制相似问题