Skip to main content

이 버전의 GitHub Enterprise Server는 다음 날짜에 중단됩니다. 2025-08-27. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

캐시 관리

워크플로에서 만든 종속성 캐시를 모니터링하거나 필터링하고 삭제할 수 있습니다.

이 문서에서는 GitHub 웹 인터페이스를 통한 캐시 관리에 대해 설명하지만 추가적으로 다음을 관리할 수 있습니다.

캐시 항목 보기

웹 인터페이스를 사용하여 리포지토리에 대한 캐시 항목 목록을 볼 수 있습니다. 캐시 목록에서는 각 캐시가 사용하는 디스크 공간, 캐시가 생성된 시기 및 캐시가 마지막으로 사용된 시기를 확인할 수 있습니다.

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

  2. 리포지토리 이름 아래에서 작업을 클릭합니다.

    "github/docs" 리포지토리의 탭 스크린샷. "작업" 탭은 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "관리" 섹션에서 캐시를 클릭합니다.

  4. 리포지토리의 캐시 항목 목록을 검토합니다.

    • 특정 분기에 사용되는 캐시 항목을 검색하려면 분기 드롭다운 메뉴를 클릭하고 분기를 선택합니다. 캐시 목록에는 선택한 분기에 사용되는 모든 캐시가 표시됩니다.
    • 특정 캐시 키가 있는 캐시 항목을 검색하려면 필터 캐시 필드의 구문 key: key-name을(를) 사용합니다. 캐시 목록에는 키가 사용된 모든 분기의 캐시가 표시됩니다.

    캐시 항목 목록의 스크린샷입니다.

캐시 항목 삭제

리포지토리에 대한 write 액세스 권한을 가진 사용자는 GitHub 웹 인터페이스를 사용하여 캐시 항목을 삭제할 수 있습니다.

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

  2. 리포지토리 이름 아래에서 작업을 클릭합니다.

    "github/docs" 리포지토리의 탭 스크린샷. "작업" 탭은 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "관리" 섹션에서 캐시를 클릭합니다.

  4. 삭제하려는 캐시 항목의 오른쪽에 있는 을(를) 클릭합니다.

    캐시 항목 목록의 스크린샷입니다. 캐시를 삭제하는 데 사용되는 휴지통 아이콘은 진한 주황색 윤곽선으로 강조 표시됩니다.

캐시 항목 강제 삭제

캐시에는 분기 범위 제한이 있습니다. 즉, 일부 캐시에는 사용 옵션이 제한되어 있습니다. 캐시 범위 제한에 대한 자세한 내용은 Dependency caching reference을(를) 참조하세요. 특정 분기로 제한된 캐시가 많은 스토리지 할당량을 사용하는 경우 default 분기의 캐시가 높은 빈도로 생성되고 삭제될 수 있습니다.

예를 들어 리포지토리에는 해당 분기로 제한되는 자체 캐시가 있는 많은 새로운 끌어오기 요청이 열릴 수 있습니다. 이러한 캐시는 해당 리포지토리에 대한 캐시 스토리지의 대부분을 차지할 수 있습니다. 리포지토리가 최대 캐시 스토리지에 도달하면, 캐시 제거 정책에 따라 가장 오래전에 액세스된 캐시부터 최근에 액세스된 캐시 순으로 삭제하여 공간을 확보합니다. 이 경우 캐시 스래싱을 방지하기 위해 캐시 제거 정책보다 더 빠른 주기로 캐시를 삭제하도록 워크플로를 설정할 수 있습니다. GitHub CLI를 사용하여 특정 분기에 대한 캐시를 삭제할 수 있습니다.

다음 예시 워크플로는 gh cache을(를) 사용하여 끌어오기 요청이 닫힌 후 분기에서 만든 캐시를 최대 100개까지 삭제합니다.

리포지토리 간 끌어오기 요청 또는 포크에서 끌어오기 요청에서 다음 예제를 실행하려면 pull_request_target 이벤트를 사용하여 워크플로를 트리거하면 됩니다. pull_request_target를 사용하여 워크플로를 트리거하는 경우 보안에 유의해야 할 사항이 있습니다. 자세한 내용은 워크플로를 트리거하는 이벤트을(를) 참조하세요.

name: Cleanup github runner caches on closed pull requests
on:
  pull_request:
    types:
      - closed

jobs:
  cleanup:
    runs-on: ubuntu-latest
    permissions:
      actions: write
    steps:
      - name: Cleanup
        run: |
          echo "Fetching list of cache keys"
          cacheKeysForPR=$(gh cache list --ref $BRANCH --limit 100 --json id --jq '.[].id')

          ## Setting this to not fail the workflow while deleting cache keys.
          set +e
          echo "Deleting caches..."
          for cacheKey in $cacheKeysForPR
          do
              gh cache delete $cacheKey
          done
          echo "Done"
        env:
          GH_TOKEN: ${{ github.token }}
          GH_REPO: ${{ github.repository }}
          BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge

또는 API를 사용하여 자체 주기에 따라 모든 캐시를 자동으로 나열하거나 삭제할 수 있습니다. 자세한 내용은 GitHub Actions 캐시에 대한 REST API 엔드포인트을(를) 참조하세요.