블로그 확인 중 Github Dependabot을 설정할 수 있는 기능이 있어서 적용.
블로그는 간단해서 의존성을 관리할 필요가… 없지만 블로그는 테스트 용이니까… 이것을 붙여봤다.
자세한 사용법은 링크 타고 설명페이지에서 확인하도록… 저거까지하기엔 많아…
설정 파일
./.github/dependabo.yml 으로 설정 파일을 구성한다. Github Actions랑 같은 위치.
그냥 여기다가 다 넣을 작정인듯.
구성 옵션
package-ecosystem
- 필수 항목!
- 패키지 메니저에 대한 내용을 정의 한다.
- 사용 가능한 패키지 메니저
-bundler
-cargo
-composer
-docker
-elm(??)
-gitsubmodule
-github-actions
-gomode
-gradle
-maven
-mix(??)
-npm
-unget
-pip
-terraform - ecosystem별로 하나의 리스트로 사용하여 작업한다.
drectory
- 필수 항목
- 패키지 설정파일의 위치를 패키지 메니저마다 지정해줘야된다.
- Github Actions는
/로 하면 알아서.github/workflows에 있는 파일을 가져다가 쓴다.
Schedule
interval
- 필수 항목
- 얼마마다 확인할 것인지에 대해서 정의하는 위치.
- 항목은
daily,weekly,monthly가 있다.
-daily는 월~금요일에만 실행한다. (주말은 왜 쉬는거지…?)
-weekly는 기본은 월요일에만 실행한다. 밑에서 설명할day항목으로 변경 가능.
-monthly는 매달 한번 1일에 실행한다.
day
- 주마다 업데이트할 스케출을 적어준다.
- 기본값은
monday 05:00 UTC이다. - 항목
-monday
-tuesday
-wednesday
-thursday
-friday
-saturday
-sunday
timezone
- UTC가 기본인데 이걸 바꾸고 싶으면 작성한다.
- Timezone은 풀네임
Asia/Seoul으로 해준다. 다른 타임존 - (?) 여기다가 한국시간을 박아두면
13:00 KST로 도는건가..음..?
allow
- 기본적으로 모든 의존성을 확안하여 PR을 넣게 되는데, 업데이트 하고 싶은 의존성만 허용할 수 있는 옵션이다.
- 항목
-dependency-name: 명시한 이름을 가진 패키지만 업데이트 한다.*를 이용하여 여러개의 패키지를 지정할 수 있다. (정규식의*사용법과 동일)
-dependency-type: 음.. 타입....음..
| Type | Support ecosystem | Allow updates |
|---|---|---|
direct |
전부 | 명시된 모든 의존성 |
indirect |
bundler, pip, composer, cargo |
하위 의존성까지 전부 |
all |
전부 | 명시된 모든 의존성. bundle, pip, composer, cargo 는 하위 의존성까지 전부 |
production |
bundler, composer, mix, maven, npm, pip |
Product 환경에서 사용하는 패키지만 |
development |
bundler, composer, mix, maven, npm, pip |
Developmen 환경에서 사용하는 패키지만 |
assignees
- Github Dependabot의 PR에 대한 담당자 지정.
- 음…
commit-message
- Github Dependabot이 커밋할때 어떤걸 붙일 건지에 대한 설정
- 항목
-prefix: 앞에 붙일 단어
-prefix-development: 개발 환경용 앞에 붙일 단어
- 지원하는데는 당연히bundler,composer,mix,maven,npm,pip
-include: "scope": 업데이트된 의존성 목록을 점두사 뒤에 넣어준다. - NOTE:
target-branch를 사용해서 특정 브런치를 지정하지 않으면, 보안 업데이트 PR에도 영향을 끼칠 수 있음.
ignore
@dependabot ignore를 이용해서ignore된게 있는지 확인하라고 하는데…
-@dependabot은 어디서… 사용하나…?- 암튼 뭔가를 하기 싫을때 하는거
- 항목
-dependency-name: 의존성 패키지 이름
-versions: 제외할 버전이나 버전 범위를 지정한다. 패키지 메니저마다 사용하는 패턴을 이용해서 작성하자. - NOTE:
target-branch를 사용해서 특정 브런치를 지정하지 않으면, 보안 업데이트 PR에도 영향을 끼칠 수 있음.
labels
- PR시 명시된
label을 붙여 요청하게 된다. - 기본값은
dependencies.
milestone
- 특정 milestone을 지정하여 해당 항목에 넣을 수 있다.
- NOTE:
target-branch를 사용해서 특정 브런치를 지정하지 않으면, 보안 업데이트 PR에도 영향을 끼칠 수 있음.
pull-request-branch-name.separator
- PR마다 브런치를 만드는데, 이때 브런치 이름 구분자 명시용
- 기본은
/
rebase-strategy
- 브런치 충돌났을때, 자동으로 PR을 리베이스하는데 이걸 끄고 싶을때 설정하면됨.
disabled: 충돌 해결은 사용자가.auto: 기본값
reviewers
- PR시 리뷰를 요청할 사람 지정. 팀도 가능함.
- NOTE:
target-branch를 사용해서 특정 브런치를 지정하지 않으면, 보안 업데이트 PR에도 영향을 끼칠 수 있음.
target-branch
- 기본으로 확인하는 브런치는 레포에 설정된 기본 브런치로 진행한다.
- 이걸 사용하면 명시된 브런치에서 의존성을 검사한다.
- 보안 PR에 영향갈 수 있단다.
versioning-strategy
- Github Dependabot에서 의존성 업데이트를 진행하면서 명시하는 방법은 두가지 방법이 있다.
- App: 요구 버전이 업데이트 (npm,pip,composer)
- Library: 버전 범위 업데이트 (bundler,cargo) - 이 사항을 변경하기 위해서 사용.
- NOTE:
target-branch를 사용해서 특정 브런치를 지정하지 않으면, 보안 업데이트 PR에도 영향을 끼칠 수 있음. - 사용 가능한 업데이트 옵션
| Option | Support echosystem | Action |
|---|---|---|
lockfile-only |
bundler, cargo, composer, mix, npm, pip |
lockfile 업데이트에 대한 것만 PR한다. |
auto |
bundler, cargo, composer, mix, npm, pip |
디폴트로 진행한다. |
widen |
composer, npm |
가능하면 새 버전이랑 이전 버전을 모두 사용할 수 있도록 설정한다. |
increase |
bundler, composer, npm |
롤링 업데이트!!!!!!! |
increase-if-necessary |
bundler, comopser, npm |
꼭 필요할때만 업데이트 |