본문 바로가기
Git

Vulhub 한글화 공동작업 기여하기 (feat. WhiteHat School)

by gungle 2023. 9. 17.

Git은 협업 도구로서의 역할을 넘어서, 다양한 사람들의 지식과 경험을 모아 하나의 프로젝트나 문서를 완성하는 데 사용할 수 있다.

해당 글은 https://github.com/gunh0/kr-vulhub 에 공동작업을 위한 가이드로 작성된 글이다.

 

깃(Git)은 무엇인가?

이 부분에 대해서는 다양한 기술 블로그들과 좋은 글들이 많기 때문에, 구글링을 권장한다.

참고1) Dev: Git의 개념과 기본 명령어 : https://medium.com/hcleedev/dev-git%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4-b264ab4301d4

 

Dev: Git의 개념과 기본 명령어

Git 기본 3부작 첫 번째, Git의 개념과 동작 시스템, 그리고 기본 명령어들에 대해 알아보자.

medium.com

참고2) 제대로 파는 Git & GitHub (무료 파트)
Git과 Github을 프로젝트에 사용하기 위한 필수 기능들을 배웁니다.
https://www.yalco.kr/lectures/git-github/

 

제대로 파는 Git & GitHub (무료 파트)

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

기타 많은 Git, Github 관련 블로그 참고하기

 

Fork 이후 Pull requests

깃의 수많은 기능들이 있지만, 수업에서 진행되는 산출물을 제출하기 위한 일관된 방법을 설명하기 위해 한가지 가이드를 작성하는 것을 목표로 한다.

특정 오픈소스나 공개된 GitHub Repository에 기여하는 한가지 방법으로 반드시 아래 설명하는 절차와 같이 Fork 이후, 진행하지 않아도 되지만,

편의를 위해 각 멘티들은 깃헙 계정이 존재하고, 모든 멘티들이 Fork 이후, Pull requests 를 통해 산출물을 제출하고, 멘토에게 리뷰 받는 식으로 진행한다.

가장 먼저 자신의 계정으로 멘토의 과제 제출 Repository 를 Fork 한다.

이후, 본인의 Repository 에 Fork 해온 Repository 가 생성되는데, 만약 부모 Repository가 되는 (멘토 gunh0 의) kr-vulhub 에 나의 복사본에는 없는 작업물이 올라온다면, Sync fork 버튼을 통해 다시 갱신해올 수 있다.

이후, 나의 계정에 복제해온 Repository 에 작성 규칙에 맞게 작업물을 올린다.

작성 규칙

  • 본인이 분석한 타겟 디렉토리의 이름은 소문자로 정확히 일치 시킨다. (명명 규칙)
    • 똑같은 GitLab 에 대해 분석한 결과물인데, 디렉토리 명을 gitlab 으로 생성하지 않고 GitLab 으로 생성하면 부모 Repository에 Contribute 을 했을 때, 같은 타겟에 대해 두 개의 디렉토리로 나누어지게 된다.
  • 이후, 기존에 존재하는 취약점 혹은 기법 인지 확인하고, 없다면 새로운 카테고리의 디렉토리를 만들고, 있다면 존재하는 디렉토리 명과 일치시킨다. (이때 모든 영문은 소문자, 공백은 - 으로 구별한다)

  • 커밋 규칙은 동명이인을 구별하기 위해 반드시 모든 커밋 앞에 "[이름/아이디]: 메시지" 형태로 남긴다.
    • 예시) git commit -m "[박건호/gunh0]: nginx CVE-2017-7529 분석 코드 및 결과"

이후, 작업물을 깃 원격지에 업로드 (push) 하게 되면, 웹 상에서 Contribute 을 눌렀을 때, 본인의 작업물들을 부모 Repository (gunh0/whitehat-school-vulhub)에 기여할 수 있는 pull request 를 생성할 수 있다.

이후 pull request 를 생성하고, 생성된 pull request 는 멘토의 레포에서 확인 가능하다.

의견을 주고 받고, 수정작업을 거쳐서 최종 gunh0/kr-vulhub 에 본인의 작업물이 반영되게 된다.