web-dev-qa-db-ja.com

githubパッケージレジストリからパッケージを削除/削除/解除/解除する方法

質問:GitHub Packageレジストリからパッケージを「消える」にするにはどうすればよいですか。

背景:

  • Gradle Publishタスクの能力は、公開されないパッケージのリリースをもたらしました。

これまでのところ:

  • GitHub Web Appの「削除」オプションが見つかりませんでした。
  • GithubのGraphQL APIを介して削除しようとしましたが、このコマンドのパッケージIDが必要です。
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ACCESS_TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"PACKAGE_ID==\"}) { success }}"}' \
https://api.github.com/graphql
 _
  • 私はGitHub Webアプリ上の完全なPackageVersionIDを見つけませんでした。
  • パッケージIDのAPIに照会しようとしましたが、有効なクエリを作成できませんでした。
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ACCESS_TOKEN" \
-d "query {
  organization(login: "ORGANIZATION_ACCOUNT") {
    registryPackages {
      edges {
        node {
          name
          id
        }
      }
    }
  }
}" \
https://api.github.com/graphql

# The API returns:
{
  "message": "Problems parsing JSON",
  "documentation_url": "https://developer.github.com/v4"
}
 _
  • GraphQL API Explorerを使用しようとしましたが、自動的に設定されたトークンは十分な権限を見逃しています。
# See query above - the API returns via the Explorer:
{
  "errors": [
    {
      "type": "INSUFFICIENT_SCOPES",
      "locations": [
        {
          "line": 6,
          "column": 11
        }
      ],
      "message": "Your token has not been granted the required scopes to execute this query. The 'name' field requires one of the following scopes: ['read:packages'], but your token has only been granted the: ['read:gpg_key', 'read:org', 'read:public_key', 'read:repo_hook', 'repo', 'user'] scopes. Please modify your token's scopes at: https://github.com/settings/tokens."
    },
    {
      "type": "INSUFFICIENT_SCOPES",
      "locations": [
        {
          "line": 7,
          "column": 11
        }
      ],
      "message": "Your token has not been granted the required scopes to execute this query. The 'id' field requires one of the following scopes: ['read:packages'], but your token has only been granted the: ['read:gpg_key', 'read:org', 'read:public_key', 'read:repo_hook', 'repo', 'user'] scopes. Please modify your token's scopes at: https://github.com/settings/tokens."
    }
  ]
}
 _
  • 別のアクセストークンを設定するためにExplorer Web Appのオプションが見つかりませんでした。

希望の解決策

  • これを行うよりも簡単な方法があるかどうかを知りたいのですが、そうでない場合は、パッケージを解決しないようにパッケージをリンク解除する必要があります。

UPDATE1:a公開リポジトリに公開されているパッケージについてです。

9
hb0

テスト(プライベートパッケージ)の間、私は同じバージョンを複数回公開して削除しました。どういうわけか停止していて、UIの「管理の管理」をクリックすると、代わりに「パッケージ設定」に変更されたポイントまで。以前に提供されたGraphQLは役に立ちませんでしたが、 GraphQL Explorer のバージョンを次のように識別できました。

query {
  repository(owner: "<org>", name: "<repo>") {
    packages(first: 10) {
      edges {
        node {
          latestVersion {
            id
            version
          }
        }
      }
    }
  }
}

 _

これは、次のようなノードの同期リストをわずかに戻しました。

{
  "data": {
    "repository": {
      "packages": {
        "edges": [
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": null
            }
          },
          {
            "node": {
              "latestVersion": {
                "id": "MDE0OlBhY2thZ2VWZXJzaW9uNTYxMjQyOQ=="
                "version": "0.1.0"
              }
            }
          }
        ]
      }
    }
  }
}
 _

これにより、私はそれらを1つずつ削除することができました:

curl -X POST https://api.github.com/graphql \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer $TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDE0OlBhY2thZ2VWZXJzaW9uNTYxMjQyOQ==\"}) { success }}"}'
 _
0
Anton Yurchenko