[OSSA] OPEN SOURCE 기여 - 첫 PR 날리기

Yunny.Log ·2022년 7월 28일
0

OpenSource

목록 보기
1/5
post-thumbnail

1) 내가 선택했던 / 해결하기로 했던 이슈

https://github.com/fosslight/fosslight/issues/545

2) 해당 문제 및 원인 파악

3) fork 한 레포지토리 최신화

  • Fork한 Repository를 최신 버전으로 동기화

1. 우선 Fork한 repository clone

$ git clone 내가 포크한 레포 (내 레포 안에 있는 포크된 레포)
$ git remote -v
origin	내가 포크한 레포 (내 레포 안에 있는 포크된 레포)
origin	내가 포크한 레포 (내 레포 안에 있는 포크된 레포)

2. Base Repository를 지정합니다.

$ git remote add base 원본 레포
$ git remote -v
base	내가 포크한 레포 (내 레포 안에 있는 포크된 레포) (fetch)
base	내가 포크한 레포 (내 레포 안에 있는 포크된 레포) (push)
origin	원본 레포 (fetch)
origin	원본 레포 (push)

base 로 fosslight/fosslight 가 추가된 것을 확인할 수 있습니다.

3. Base Repository(원본 레포)의 최신 소스 가져오기

$ git fetch base
  • 원본 레포

4. 최신 소스를 내 Repository에 Merge 하고 Push하기

$ git checkout develop
$ git merge base/develop // 원본 레포의 브랜치 
$ git push origin develop

4) 문제 해결

  • OBLIGATION 이라는 키 값이 데이터 MAP 구조에 들어있지 않아, OBLIGATION의 기본 코드값인 000 이 계속해서 ret 값을 지정되고 있던 것이었다.

  • 따라서 코드 타입 중 키 값이 obligation 일 때와, 그 외의 일반적인 경우들을 분리했다.

4-1 ) CODE TYPE 이라면 obligation key 값인지 판별

else if(inf[0].equals("Code")) {
			ret = dMap != null ? nvl(CoCodeManager.getCodeString(inf[2], (String)dMap.get(dtlCd[1])), inf[2]) : "";
			if((dtlCd[1]).equals("obligation")){
				ret = generateObligationCodeRetValue(dMap);
			}else{
				ret = generateGeneralCodeRetValue(inf, dtlCd, dMap);
			}

4-2 ) obligation 이면 type 을 반환


	// "Code" key 값이 Obligation 아닌 경우, 결과값 반환 함수
	public String generateGeneralCodeRetValue(String[] inf, String[] dtlCd, Map<String, Object> dMap){
		return dMap != null ?nvl(CoCodeManager.getCodeString(inf[2], (String)dMap.get(dtlCd[1])), inf[2]) : "";
	}

	// "Code" key 값이 Obligation 인 경우, 결과값으로 Obligation Type 반환 함수
	public String generateObligationCodeRetValue(Map<String, Object> dMap){
		return dMap != null ? (String)dMap.get("obligationType"): "";
	}

5) commit - DCO 방식

FOSSLIGHT HUB 의 기여 방식

FOSSLIGHT CONTRIBUTION 방법

DCO 방식이란 ?

자신이 프로젝트의 Owner나 Main Contributor인 경우 https://github.com/apps/dco Github app을 통해서 쉽게 Pull Request에 대해서 DCO를 체크하고 상태를 나타내주어 Contributor가 DCO를 준수할 수 있도록 유도 가능
출처 ㅣ DCO 설명

DCO COMMIT 방식

git commit -m "커밋 메시지 -s

그럼 아래와 같이 내 아이디와 이메일이 COMMIT 내역이 남게 된다.

6) PR 생성

  • 내 브랜치로 푸쉬하면서 pull request 생성!

0개의 댓글

관련 채용 정보