easycode

[Git] git secret 폴더에 파일 추가하기 본문

Git

[Git] git secret 폴더에 파일 추가하기

ez() 2023. 9. 11. 23:32

민감정보가 든 파일을 .gitignore에 등록해 두면 git엔 올라가지 않는다. 그럼 git action에서 빌드될 때 오류가 뜬다. 이유는 해당 파일이 깃에 없기 때문! 그렇다고 .gitignore에 등록해 둔 파일을 해제할 수도 없고, 어떻게 하면 될까?

바로 GitHub secret 폴더에 등록해주면 된다. 따라서 오늘은 git secret 폴더에 해당 파일을 추가하는 방법을 알아보자.

 

 

1. secret 폴더에 추가할 (.gitignore에 등록한) 파일을 BASE64로 인코딩하기

먼저 터미널(cmd) 창을 열고, 프로젝트 폴더 위치로 가서 아래 명령어를 입력한다.

base64 -i [파일 경로] -o 파일명.txt

파일 경로는 "저장소 루트"이다!            예 ) src/main/resources/gcs-secret.json

 

2. 해당 폴더에 생성된 파일명.txt 파일을 열어 안에 있는 텍스트를 모두 복사한다.

 

3. github에서 프로젝트 repository에서 setting을 클릭

 

4. security - secrets and variables - Actions로 이동

 

5. New repository secret 클릭

 

6. Name엔 설정 파일에서 사용할 이름을, Secret엔 아까 Base64로 인코딩해서 복사해 뒀던 텍스트를 붙여 넣기 후, Add secret

 

예 ) 

Name : PROPERTIES

Secret : 2번에서 복사했던 텍스트 붙여넣기

 

7. git action에 올라가는 브랜치의 .github/workflows 폴더로 이동

나는 develop 브랜치여서 develop 브랜치에 있는 .github/workflows 폴더로 이동해 줬다.

 

8. main.yml 파일 수정

여기가 가장 중요하다!!!!

아까 base64로 인코딩해줬던 걸 다시 디코딩해줘야 한다.

코드를 작성하는 위치는 

jobs:
 build:
  runs-on:
   steps:

아래의 - uses: ~ 아랫줄에 아래 코드를 작성한다.

 

 - name: Decode Secret Files
        run: |
          echo "${{ secrets.시크릿Name }}" | base64 --decode > [시크릿 폴더에 올릴 원본 파일명]
          mv [시크릿 폴더에 올릴 원본 파일명] ./파일이 있는 폴더

 

예시 )

 - name: Decode Secret Files
        run: |
          echo "${{ secrets.PROPERTIES }}" | base64 --decode > application-apikey.properties
          mv application-apikey.properties ./src/main/resources/

 

작성 후 해당 파일을 적용해 주면 완료!

나 같은 경우엔 github 홈페이지에서 바로 코드를 수정했으나, 만약 해당 브랜치에서 진행했다면 commit, push로 반영해 주면 된다.