如何查询 GitHub Packages 以确定包是否已存在?如果该包已经存在,我想阻止 CI/CD 尝试发布 Maven 包。
我正在尝试一个看起来像这样的查询:
curl -X POST -H "Authorization: bearer <some token>" -H "Accept: application/vnd.github.packages-preview+json" -d <my query> https://api.github.com/graphql
<my query>
看起来像:
query {
organization(login: "myorg") {
registryPackagesForQuery(packageType: MAVEN, first: 100) {
edges {
node {
name
id
}
}
}
}
}
我要退回我的包裹:
{
"data": {
"organization": {
"registryPackagesForQuery": {
"edges": [
{
"node": {
"name": "com.example.myorg",
"id": "<some id>"
}
}
]
}
}
}
}
但是,有一个query
参数(类型String
) for registryPackagesForQuery
,但我不知道该查询格式的外观。任何添加值的尝试似乎都不会返回任何数据。
查询的正确格式是什么,如果我想检查是否存在特定版本的包,此查询有何不同?
基本查询文档在这里:https ://developer.github.com/v4/query/ 。
组织:https ://developer.github.com/v4/object/organization/
RegistryPackageConnection:https ://developer.github.com/v4/object/registrypackageconnection
RegistryPackage:https ://developer.github.com/v4/object/registrypackage/