Skip to main content

Dependabot에 대한 개인 레지스트리 액세스 구성

개인 레지스트리에 저장된 종속성에 액세스하도록 Dependabot을(를) 구성할 수 있습니다. 비밀번호 및 액세스 토큰과 같은 인증 정보를 암호화된 비밀로 저장한 다음 Dependabot 구성 파일에서 이를 참조할 수 있습니다. 개인 네트워크에 레지스트리가 있는 경우 자체 호스트형 실행기에서 Dependabot을(를) 실행할 때 Dependabot 액세스를 구성할 수도 있습니다.

누가 이 기능을 사용할 수 있나요?

쓰기 권한이 있는 사용자

개인 레지스트리 정보

이(가) 종속성을 최신 상태로 유지합니다. 이(가) 공용 레지스트리에 액세스할 수 있습니다. 또한 Dependabot version updates개의 개인 패키지 레지스트리 및 개인 GitHub개 저장소에 액세스하여 개인 및 내부 소스 종속성을 공용 종속성과 동일한 최신 상태로 유지할 수 있습니다.

대부분의 에코시스템에서 개인 종속성은 일반적으로 개인 패키지 레지스트리에 게시됩니다. 이러한 개인 레지스트리는 공용 레지스트리와 유사하지만 인증이 필요합니다.

특정 에코시스템의 경우 공용 레지스트리에 대한 호출을 제거하여 개인 레지스트리_에만_ 액세스하도록 Dependabot을(를) 구성할 수 있습니다. 자세한 내용은 "공용 레지스트리에 대한 Dependabot 액세스 제거"을(를) 참조하세요.

비공개로 호스팅되거나 내부 네트워크로 제한된 레지스트리에 Dependabot 액세스를 허용하려면 GitHub Actions 자체 호스트형 실행기에서 Dependabot을(를) 실행하도록 구성합니다. 자세한 내용은 "자체 호스팅 실행기에서 Dependabot 관리" 항목을 참조하세요.

개인 레지스트리 구성

dependabot.yml 파일의 개인 레지스트리에 대한 Dependabot의 액세스 권한을 구성합니다. 최상위 registries 키는 선택 사항이며 인증 세부 정보를 지정합니다.

dependabot.yml 파일에는 registries 키를 사용할 수 있는 2개의 위치가 있습니다.

  • 최상위 수준으로 필요한 경우 레지스트리 및 해당 액세스 정보를 정의할 수 있습니다.
  • updates 블록 내에서 registries: "*"를 사용하여 Dependabot에게 최상위 수준에서 정의한 레지스트리의 일부 또는 전부를 사용하도록 지시할 수 있습니다.
# registries: gradle-artifactory - provides access details for the gradle-artifactory registry
# registries: "*" - allows Dependabot to use all the defined registries specified at the top level

version: 2
registries:
  gradle-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-gradle-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    registries: "*"
    schedule:
      interval: "monthly"

다음 옵션을 사용하여 액세스 설정을 지정합니다. 레지스트리 설정은 typeurl을 포함해야 하며, 일반적으로 usernamepassword 조합이나 token을 포함해야 합니다.

옵션                설명
type레지스트리의 형식을 식별합니다. 사용 가능한 레지스트리 유형에 대한 자세한 내용은 "registries"에서 확인할 수 있습니다. 비공개 레지스트리의 구성에 대한 자세한 내용은 "비공개 레지스트리의 구성 옵션"을 참조하세요.
url이 레지스트리의 종속성에 액세스하는 데 사용할 URL입니다. 프로토콜은 선택 사항입니다. 지정하지 않으면 https://가 가정됩니다. Dependabot은 필요에 따라 후행 슬래시를 추가하거나 무시합니다.
usernameDependabot이 레지스트리에 액세스하는 데 사용하는 사용자 이름입니다.
username은 계정의 사용자 이름 또는 이메일 주소입니다.
password지정된 사용자의 암호를 포함하는 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
password는 사용자 이름별로 지정된 계정에 대한 암호입니다. 계정이 GitHub 계정인 경우 암호 대신 GitHub personal access token을(를) 사용할 수 있습니다.
key이 레지스트리의 액세스 키가 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
token이 레지스트리의 액세스 토큰이 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
token은 외부 시스템에 대한 액세스 토큰을 제공하는 데 사용되며 GitHub personal access token을(를) 제공하는 데 사용하면 안 됩니다. GitHub personal access token을(를) 사용하려면 암호로 제공해야 합니다.
replaces-base레지스트리의 경우 부울 값이true인 경우 Dependabot은(는) 특정 에코시스템의 기본 URL이 아닌 지정된 URL을 사용하여 종속성을 해결합니다. 예를 들어, type: python-index인 레지스트리의 경우 부울 값이 true이면 pip는 Python 패키지 인덱스의 기준 URL(기본적으로 https://pypi.org/simple)이 아닌 지정된 URL을 사용하여 종속성을 확인합니다.

사용 가능한 구성 옵션, 사용 방법 및 지원되는 유형에 대한 자세한 내용은 "dependentabot.yml 파일 구성 옵션"을(를) 참조하세요.

Dependabot에서 사용할 자격 증명 저장

Dependabot에게 GitHub이(가) 지원하는 개인 레지스트리에 대한 액세스 권한을 부여하려면 레지스트리의 액세스 토큰 또는 비밀을 리포지토리 또는 조직의 비밀 저장소에 저장합니다.

Dependabot에 대한 암호화된 비밀 정보

Dependabot 비밀은 조직 수준 또는 리포지토리 수준에서 만드는 암호화된 자격 증명입니다. 조직 수준에서 비밀을 추가하는 경우 비밀에 액세스할 수 있는 리포지토리를 지정할 수 있습니다. 비밀을 사용하여 Dependabot에서 프라이빗 패키지 레지스트리에 있는 종속성을 업데이트할 수 있습니다. 비밀을 추가하면 GitHub에 도달하기 전에 암호화되고 Dependabot에서 프라이빗 패키지 레지스트리에 액세스하는 데 사용될 때까지 암호화된 상태로 유지됩니다.

Dependabot 또한 시크릿에는 워크플로에서 끌어오기 요청에 의해 트리거된 시크릿도 포함됩니다. 자체에서 이러한 비밀을 사용할 수는 없지만 워크플로에는 이러한 비밀이 필요합니다. 자세한 내용은 "GitHub Actions를 통한 Dependabot 자동화"을(를) 참조하세요.

Dependabot 비밀을 추가한 후 dependabot.yml구성 파일(예: ${{secrets.NAME}})에서 참조할 수 있습니다. 여기서 “NAME”은 비밀에 대해 선택한 이름입니다. 예시:

password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

자세한 내용은 "dependentabot.yml 파일 구성 옵션"을(를) 참조하세요.

비밀 이름 지정

Dependabot 비밀의 이름입니다.

  • 영숫자 문자([A-Z], [0-9]) 또는 밑줄(_)만 포함할 수 있습니다. 공백은 사용할 수 없습니다. 소문자를 입력하면 대문자로 변경됩니다.
  • GITHUB_ 접두사로 시작하지 않아야 합니다.
  • 숫자로 시작할 수 없습니다.

Dependabot에 대한 리포지토리 비밀 추가

개인용 계정 리포지토리에 대한 비밀을 만들려면 리포지토리 소유자여야 합니다. 조직 리포지토리에 대한 비밀을 만들려면 admin 액세스 권한이 있어야 합니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings(설정)를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 사이드바의 "보안" 섹션에서 비밀 및 변수를 선택하고 Dependabot 을(를) 클릭합니다.

  4. 새 리포지토리 비밀을 선택합니다.

  5. 이름 입력 상자에 비밀의 이름을 입력합니다.

  6. 비밀 값을 입력합니다.

  7. 비밀 추가를 클릭합니다.

    비밀의 이름은 Dependabot 비밀 페이지에 나열됩니다. 업데이트를 클릭하여 비밀 값을 변경할 수 있습니다. 제거를 클릭하여 비밀을 삭제할 수 있습니다.

Dependabot에 대한 조직 암호 추가

조직에서 비밀을 만들 때 정책을 사용하여 해당 비밀에 액세스할 수 있는 리포지토리를 제한할 수 있습니다. 예를 들어 모든 리포지토리에 대한 액세스 권한을 부여하거나 프라이빗 리포지토리 또는 지정된 리포지토리 목록에 대해서만 액세스를 제한할 수 있습니다.

조직 수준에서 비밀을 만들려면 admin 액세스 권한이 있어야 합니다.

  1. GitHub에서 조직의 기본 페이지로 이동합니다.

  2. 조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    조직 프로필에 있는 여러 탭의 스크린샷. "설정" 탭이 진한 주황색으로 표시됩니다.

  3. 사이드바의 "보안" 섹션에서 비밀 및 변수를 선택하고 Dependabot 을(를) 클릭합니다.

  4. 새 조직 비밀을 클릭합니다.

  5. 이름 입력 상자에 비밀의 이름을 입력합니다.

  6. 필드에 비밀 값을 입력합니다.

  7. 리포지토리 액세스 드롭다운 목록에서 액세스 정책을 선택합니다.

  8. 선택한 리포지토리를 선택한 경우:

    • 을(를) 클릭하세요.
    • 대화 상자에서 이 비밀에 액세스할 수 있는 리포지토리를 선택하세요.
    • 선택 항목 업데이트를 클릭합니다.
  9. 비밀 추가를 클릭합니다.

    비밀의 이름은 Dependabot 비밀 페이지에 나열됩니다. 업데이트를 클릭하여 비밀 값 또는 해당 액세스 정책을 변경할 수 있습니다. 제거를 클릭하여 비밀을 삭제할 수 있습니다.

방화벽 IP 규칙 구성

레지스트리 IP 허용 목록에 Dependabot 관련 IP 주소를 추가할 수 있습니다.

개인 레지스트리가 IP 허용 목록으로 구성된 경우 Dependabot에서 dependabot 키 아래 메타 API 엔드포인트의 레지스트리에 액세스하는 데 사용하는 IP 주소를 찾을 수 있습니다. GitHub Actions 자체 호스트형 실행기에서 Dependabot을(를) 실행하는 경우, 대신 actions 키 아래의 IP 주소를 사용해야 합니다. 자세한 내용은 "메타 데이터에 대한 REST API 엔드포인트" 및 "GitHub Actions 실행기의 Dependabot 정보" 항목을 참조하세요.