背景
プロジェクトのデプロイ先としてGithub Pagesを選んだところ、mainブランチにpushするたび以下のように履歴が残るようになってしまいました。
デプロイに失敗したものも表示され続けるのは嫌だなぁと思い、調べ始めて丸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
大文字のOWNER
とREPO_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するたびにこの作業やるの面倒だなぁ…)