git 저장소에 서브모듈이 포함된 경우 root 디렉토리에 .gitmodules 파일이 생성되어 있다. https 방식의 인증을 사용하는 머신에서 서브모듈을 설정하는 경우에 다음과 같이 서브모듈의 원격 저장소 주소도 https 프로토콜을 이용하도록 설정된다.

다만, 최근 github의 인증 보안이 강화되면서 https 방식의 credential을 이용해서는 jenkins에서 private 저장소에 대한 접근이 어렵다. 따라서 이 경우에는, jenkins에서 사용하던 https 방식의 github credential을 ssh 방식으로 전환해야 한다.
Jenkins의 github credential 설정을 바꾸는 것은 어렵지 않은 일이지만, 서브모듈이 포함된 프로젝트가 배포 파이프라인에 포함된 경우에는 권한 오류 문제가 발생할 수 있음을 기억해야 한다.
권한 문제로 서브모듈을 가져오지 못하는 경우에는 .gitmodules 파일에 기록된 서브모듈들의 원격 저장소 url을 ssh 프로토콜을 이용하도록 다음과 같이 수정해야 한다.
[submodule "submodule_name"] path = submodule_path_in_root_directory url = git@github.com:username/repository-name.git
답글 남기기