2024.08.11 프로그래머스 - 오픈소스 기여 - 5
오픈소스 기여하기 - 5
오픈소스를 만들 때 중요한 것
README.md
리드미 파일은 오픈소스 세계에 있어서 필수라고 볼 수 있다.
README 파일을 통해 해당 오픈소스(프로젝트) 에 관심이 있는 사용자가
정보를 얻을 수 있다.
오픈소스를 통해 사용자 자신이 어떤 부분의 이득을 취할 수 있는지,
또는 해당 소스를 보고 사용법을 이해하고, 기여하고자 하는 부분을 찾을 수 있다는 점
개발 프로젝트에 있어
README.md
파일은 시작이자 끝을 담당하는 것 같다.
오픈소스를 만들 때 고려할것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
오픈소스를 만들 때는 Rule 이 생각보다 더 중요하다.
PR 에 대한 규칙을 정의하여 main 브랜치 (master) 에 무분별한 PR이 Merge 되는 것을 방지할 수 있고,
또한 긍정적인 유지보수, 및 의견 교환을 위한 PR Template, Issue Template 과 같은
사용자(기여자) 를 위한 많은 부분이 규칙으로 설정 되어야 한다.
사용은 자유롭지만, 기여자들과 함꼐 만들어 감에 있어서는
어느정도의 규칙을 강제해야 한다.
Github 의 내부 Settings 내의 Rule,
.github 템플릿 폴더 내부에 issue_template.md, pull_request_template.md 파일 제작을 통해
위에서 설명한 규칙을 적용 시킬 수 있다.
PR 검증 자동화
1
.github 폴더 내에 workflow.yml 파일 작성으로 PR 또는 다른 actions가 필요한 부분의 자동화를 진행할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
name: Pull Request Check # 워크플로우 이름
on: # 워크플로우 실행 트리거
pull_request: # pull_request가 실행될 때만
types: [opened, synchronize] # PR이 생성되거나 업데이트될 때
jobs: # 작업 정의
check: # github action이 실행되기 위해 체크하는 단계
runs-on: ubuntu-latest # 우분투 환경
permissions: # 권한 설정
pull-requests: write # PR에 쓰기 권한 설정
steps: # 실제 일어나는 작업 단계
- uses: actions/github-script@v7
with:
script: | # 스크립트 시작
const pull_request = context.payload.pull_request; # pull_request 객체 가져오기
if (pull_request === undefined) { # PR이 없는 경우
console.log("This is not a pull request");
return;
}
const body = pull_request.body; # PR 내부 본문 가져오기
if (!body) {
# PR에 코멘트 추가
await github.rest.issues.createComment({
owner: context.repo.owner, # 저장소 소유자
repo: context.repo.repo, # 저장소 이름
issue_number: pull_request.number, # PR 번호
body: "해당 PR은 가이드 라인을 준수하지 않았습니다. 때문에 PR을 닫도록 하겠습니다. 가이드라인을 준수해서 다시 PR을 요청해주세요." # 코멘트 내용
});
# PR 닫기
await github.rest.pulls.update({ # PR을 닫음
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pull_request.number,
state: "closed" # 상태를 닫힘으로 변경
});
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.