0w0

Dependabot 설정을 둘러보았다.

동기

어떤 프로젝트에도 사용하는 것이므로, 제대로 이해하고 싶은 것이 가장 큰 이유.

TL;DR

모든 옵션을 조사하고 완성한 템플릿이다. 해당 블로그에 .github/dependabot.yml로 운용중이다.

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      timezone: "Asia/Tokyo"
      interval: "daily"
      time: "03:00"
    target-branch: "dev"
    allow:
      - dependency-type: "all"
    assignees:
      - "ktnkk"
    commit-message:
      prefix: "npm"
      include: "scope"
    labels:
      - ":tea:"
      - ":construction_worker_woman:"
    milestone: 3
    open-pull-requests-limit: 10
    pull-request-branch-name:
      separator: /
    rebase-strategy: "auto"
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      timezone: "Asia/Tokyo"
      interval: "daily"
      time: "03:00"
    target-branch: "dev"
    allow:
      - dependency-type: "all"
    assignees:
      - "ktnkk"
    commit-message:
      prefix: "docker"
      include: "scope"
    labels:
      - ":whale:"
      - ":construction_worker_woman:"
    milestone: 3
    open-pull-requests-limit: 10
    pull-request-branch-name:
      separator: /
    rebase-strategy: "auto"

Yarn (npm)과 Dockerfile 의존관계를 파악하는 설정이라 좀 길어졌다. 앵커(&)와 에일리어스(*)를 사용하고 싶지만 Dependabot에서는 사용할 수 없는 것 같다.

각 옵션에 대하여

이번에 사용한 옵션에 대해 각 사항을 적어 나아간다. 기본 설정을 그대로 적은 것도 있지만 나중에 변경 가능성 있을 것을 골랐다.

package-ecosystem

updates:
  - package-ecosystem: "npm"

directory

updates:
  - package-ecosystem: "npm"
    directory: "/"

schedule

updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      timezone: "Asia/Tokyo"
      interval: "daily"
      time: "03:00"

target-branch

updates:
  - package-ecosystem: "npm"
    # 생략
    target-branch: "dev"

allow

updates:
  - package-ecosystem: "npm"
    # 생략
    allow:
      - dependency-type: "all"

assignees

updates:
  - package-ecosystem: "npm"
    <omitted>
    assignees:
      - "ktnkk"

commit-message

updates:
  - package-ecosystem: "npm"
    <omitted>
    commit-message:
      prefix: "npm"
      include: "scope"

labels

updates:
  - package-ecosystem: "npm"
    <omitted>
    labels:
      - ":tea:"
      - ":construction_worker_woman:"

milestone

updates:
  - package-ecosystem: "npm"
    <omitted>
    milestone: 3

open-pull-requests-limit

updates:
  - package-ecosystem: "npm"
    <omitted>
    open-pull-requests-limit: 10

pull-request-branch-name

updates:
  - package-ecosystem: "npm"
    <omitted>
    pull-request-branch-name:
      separator: /

rebase-strategy

updates:
  - package-ecosystem: "npm"
    <omitted>
    rebase-strategy: "auto"

실제 운용

풀리퀘스트 목록

이런 느낌으로 풀리퀘스트가 작성된다.

템플릿 내용을 바꾸면 대부분 프로젝트에 사용 가능하다.

맺는말

기본 설정에서 딱히 자신만의 무엇인가가 없다면 문제없이 사용할 수 있을 것 같음