0
0

Githubのレポジトリに出現したDeploymentsの履歴を消す

Last updated at Posted at 2023-12-26

背景

プロジェクトのデプロイ先としてGithub Pagesを選んだところ、mainブランチにpushするたび以下のように履歴が残るようになってしまいました。

image.png

詳細を表示するとこんな感じ
image.png

デプロイに失敗したものも表示され続けるのは嫌だなぁと思い、調べ始めて丸2日…。
手こずりまくりながらようやく削除に成功しました。

かなり時間を無駄にしたので(単なる知識不足)、同じ状況にいる方の手助けになればと思っています。

使用環境

  • Windows 11
  • コマンドプロンプト(もしくは Windows PowerShell)

Github CLI

まずghコマンドを使えるようにしましょう。
Windowsキー + Rを押して、出てきた画面にcmdと入力します。

新しく開いた画面が「コマンドプロンプト」と呼ばれるものです。
Windowsの場合は以下のコマンドでインストールできます。

winget install gh

コピーペーストしてEnterを押してください。
エラーが何も出なければインストール成功です。

Githubにログイン

次にghコマンドを使ってGithubにログインします。

gh auth login

これを入力すると色々と質問が出てきます。
基本的にはEnterを押し続ければ大丈夫です。

途中でGithubにアクセスを求められ、コマンドプロンプトに表示されているワンタイムコードが必要になるので、ブラウザ上で入力してください。

Deployments:一覧取得

ここでようやく削除する準備が整いました!

まずはDeploymentsの要素を一覧表示しましょう。

gh api repos/OWNER/REPO_NAME/deployments

大文字のOWNERREPO_NAME部分は消して、自身で書き換える必要があります。
OWNERはGithubのアカウント名、REPO_NAMEは自分でつけたリポジトリの名前です。

ここでずらっと色々json形式のデータが出力されたと思います。
とりあえず一番上に戻ってみましょう。

[
    {
        "url": ・・・,
        "id": ・・・,
        "node_id": ・・・,
        ・
        ・
        ・

のようにデータが並んでいると思います。
このid部分(10桁?)をコピーします。

下の方に行くと他のidも出てくるので間違えないように注意してください。

Deployments:削除

次に、POSTを使ってデプロイのステータスを変更します。

gh api -X POST -F state=inactive repos/OWNER/REPO_NAME/deployments/DEPLOYMENT_ID/statuses

OWNER,REPO_NAMEは先ほどと同様に、
DEPLOYMENT_IDは一覧取得でコピーしたidを入れてください。

実行するとまたjson形式のデータが出てくると思います。
それはそのまま放置してDeleteしていきましょう。

gh api -X DELETE repos/OWNER/REPO_NAME/deployments/DEPLOYMENT_ID

これも書き換え部分は先ほどと同様です。

実行して何も表示されなければ成功です!Github上で確認してみてください。

最後に

ここまでお読みいただきありがとうございました。
色々試しながらやっていたので、もしかしたら上記の方法で実行しても引っかかってしまうところがあるかもしれません。
ですが少しでも問題解決のお役に立てれば嬉しいです。

余談

idをコピーする前に、どこかテキストボックス内でWindowsキー+Vを押して、コピー履歴の保存が有効になっているか確認することをおすすめします。

30個くらいコピー履歴を保存してくれるので、ひたすらidをコピーしまくって、DeleteするときにWindows+Vでidを探し出しペーストすることができます。
コマンドプロンプト上での行ったり来たりがなくなるので少し便利。

(私のレポジトリには10個以上履歴があったので、どっちにせよ眩暈がしてきていましたが)

一括削除も探したのですが、他のコマンドをインストールする必要があったりして結局面倒になってやめました。
辛抱強く頑張りましょう。

(pushするたびにこの作業やるの面倒だなぁ…)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0