한동안 private으로 작업하던 repository를 public으로 전환하였다. 평소에 메일이 와도 제대로 알림이 오지 않던 gmail이거늘 openAI에서 보낸 메일의 알림이 칼같이 왔다.
내용은 얼추 api key가 노출되었다는 것이다. 해당 repository에 이전에 잠깐 chatgpt를 활용할까 하다가 해당 기능이 있는 파일을 삭제한 적이 있다. 하지만 삭제가 되었고, gitignore도 있겠다. 별 대수롭지 않게 넘겼다.
하지만..
github에서도 해당 경고 메일이 날아왔다. 그제서야 무언가 확실히 잘못되었구나..! 란 생각이 번쩍 들었다.
메일에 해당 버튼을 누르면 코드의 어떤 부분이 문제인지 볼 수가 있다.
history에 예전에 실수로 config가 아닌 파일에 api key를 담아서 commit 했던 것이 남아있어 문제가 발생한 것이었다...
사람의 뇌는 불리한 기억을 보정하고 미화한다고 하던데 이걸 기억 못하고 있다니.. 추가 경고 메일이 날아오기 전에 바로 해결하기로 하였다.
저 내용의 commit을 하고 그 이후로도 수십번의 commit이 이루어졌기 때문에 박스 오른쪽 하단에 Follow these steps를 참고하였다.
참고로 왼쪽 코드가 적힌 박스에서 SEE ON GITHUB를 클릭하면 저 코드가 반영된 commit id를 확인할 수 있다.
우선 로컬에 현재 작업이 다 된 파일들을 따로 백업을 해두고 진행하였다.
확인한 commit id를 통해서
$git reset --hard [commit id]
를 입력하면 해당 commit id이후 commit들이 반영되기 전 상태로 되돌린다.
이후
$git commit --amend
를 입력하면
commit 내역을 수정할 수가 있다.
여기서 i를 누르면 끼워넣기 상태가 되는데, 필자는 이 상태에서 실수로 api key가 포함된 파일을 add했던 내역을 지웠다.
esc를 누르고 :wq를 누르면 원래의 bash창으로 돌아갈 수가 있다.
개인 프로젝트이기 때문에
$git push -f
명령어를 이용하였다. 다른 팀원과 함께하는 프로젝트라면 주의해야 할 필요가 있다. 백업해놨던 파일들을 옮겨 마무리를 하였다.
결과는..
해결 완료!