We couldn’t deliver this payload: timed out|GitHub webhook에서 오류

2875 단어 GitHubGit

해결한 방법(내 곳에서는)



당겨진 프로덕션 환경에서 자동으로 변경된 파일
되돌려 풀고 다시 치유했습니다.

상황



몇 개월 만에 업데이트 한 사이트에서 오류가 발생했습니다.

오류 메시지



이것은 GitHub의 webhook 로그 화면에서 확인하고 있습니다.

error.log

Request
We couldn’t deliver this payload: timed out

Payload
We can’t highlight this payload because it’s too large


화면에서는 이런 식으로 표시됩니다.



환경



여기서 환경을 정리해 둡니다.
관리하는 프로젝트는 WordPress에서 wp-content 디렉토리별로 관리하고 있습니다.
여기서 포인트인 것은 WordPress는 플러그인이라고 하는 프로그램 부품을 짜넣어 사용합니다만
플러그인이 자동으로 파일을 추가하거나 변경할 수 있습니다.
(현시점 최신의 WP를 사용하고 있으면 플러그인의 자동 갱신 제어의 체크가 있습니다)

원인



프로덕션에 ssh 로그인하고 git status를 두드려 보면
변경된 파일, 추가된 파일이 계속 늘어서 있습니다.
즉 add 전의 변경된 파일이 있어 pull 를 실행할 수 없는 상태였습니다.
플러그인이 마음대로 편집했군요.
편리한 일도 있습니다만 이렇게 말한 원인을 낳는 일도 있습니다.

수정 작업



아래에서도 겹쳐서 쓰고 있습니다.

작업하기 전에 백업 필수입니다.

프로덕션에서 자동으로 변해 버린 파일의 변경을 없었다고 합니다.

git.sh

$ git checkout .


이제 편집, 삭제 된 파일을 취소했습니다.
추가된 파일이 사라지지 않았습니다.
이것들도 다음의 명령으로 지워 갑니다.

여기서 하나 주의점!

★★★★★   git clean을 실행하기 전에는 백업 필수입니다!  ★★★★★

이유로는 한번 삭제해 버리면 되돌릴 수 없는 파일이 나오기 때문입니다.
구체적으로 정리합시다.

.gitignore에서 관리되지 않는 디렉토리가 있다고 가정합니다.
그들이 git clean을 실행하는 디렉토리에 있으면 함께 삭제됩니다.
이 관리되지 않는 디렉토리는 git 명령으로 되돌릴 수 있습니까?

돌아갈 수 없어요. git 관리에서 제거한 디렉토리이기 때문에
그러므로 실수로 git clean을 실행해 버린 경우는 백업 파일로부터 되돌릴 수밖에 없습니다.

걱정이라면 귀찮아도 디렉토리 하나하나 확인하면서 삭제한다는 것도 있다고 생각합니다.

이를 바탕으로 다음 명령을 살펴 보겠습니다.

gitclean.sh

//1つ1つ丁寧に削除するパターン
$ git rm -r [削除したいディレクトリ]

//nオプションで削除されるファイルを確認できます。
$ git clean -n

//カレントディレクトリのファイルを削除
//管理対象外のファイルも削除されます!!!
$ git clean -f

//カレントディレクトリにさらにディレクトリがありそれも含めて削除
//管理対象外のファイルも削除されます!!!
$ git clean -df



확인



현재 헤드의 상태를 확인합니다.

git.sh

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean


마스터 브랜치는 깨끗해졌습니다.

이제 GitHub의 webhook 경유 자동 pull이 통과하게 되었습니다.

후리카리



관리 체제를 재검토해 볼까.
추천 관리 방법이 있으면 알려주세요.

좋은 웹페이지 즐겨찾기