2

如何查询 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/

4

1 回答 1

0

这可能是题外话,但是为此使用 maven 插件不是更简单吗?可能像https://github.com/chonton/exists-maven-plugin一样?

于 2019-11-20T09:34:23.450 回答