GitHubのマージ済みPullRequestを削除する方法
はじめに
プライベートな個人プロジェクトで焦って不具合修正をしていた際に、間違ってクレデンシャル情報を含むコミット(ローカルでのデバッグに使用してた)のあるPullRequestをマージしてしまった。ブランチやコミットは削除できたが、PullRequestの中にクレデンシャルの情報が残り続けてしまう。
プライベートで個人使用のリポジトリなのでクレデンシャルをリセットして無視してもよいが、今後何があるか分からないしセンシティブな情報がページに残り続けるのはモヤモヤする。しかし、PullRequestのページには削除のための導線がない。諦めかけていたが、なんとか削除が実現できたので残しておく。
結論
GitHubのサポートに連絡することで削除できる。
手順
GitHubSupportページからチケット作成ページに行く。そこで、「所有または管理するリポジトリからデータを削除する」を選択。
次のページで「プルリクエストを削除する」を選択。
次に表示される入力フォームでアカウントと送信元を選択し、削除したい旨を入力しチケットを送信する。送信ボタンを押すとGitHubCopilotが代わりにドキュメントのリンクとともに回答してくれたが、必要な情報は載ってないし自分が必要なのは削除操作なので構わずチケットを送信。
ちなみに自分が送ったのが以下(稚拙な英語はご愛嬌)。
Hello,
I accidentally merged a Pull Request that contained credentials in one of the commits. I have removed these commits from the main branch by force-pushing, but the credentials are still visible in the Pull Request history.
Could you please assist with deleting this Pull Request to prevent the credentials from being exposed?
Here is the URL to the Pull Request: [PullRequestのURL]
Thank you for your help.
Best regards,
[私の名前]
上記のチケットを送信した12分後(早い!)に以下の返信が届くとともに、該当のPullRequestは削除されていた。お手数おかけしました。
Hi [私の名前],
Thank you for reaching out to GitHub Support.
I have deleted the PR for you. I hope this helps!
Regards,
[サポートの方の名前]
GitHub Support
おわり
これでクレデンシャルがPullRequestで残り続ける不安から解消された。一方で、サポートに連絡すればPullRequestが削除できるとはいえ、サポートの方の仕事を増やしてしまうことには間違いない。プライベートで個人のプロジェクトとはいえ、PullRequestのセルフレビューはするよう自戒としたい。
これを読んでいる自分と同じく雑なマージをしてしまった方もご注意されたい。