Skip to main content

GitHub Copilot의 콘텐츠 제외 구성

GitHub Copilot에서 작성한 코드 완성 제안을 알리기 위해 지정된 파일이 사용되는 것을 방지할 수 있습니다. GitHub Copilot은(는) 제외된 파일에서 사용할 수 없습니다.

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

Repository administrators and organization owners can manage the content exclusion settings for GitHub Copilot.

People with the "Maintain" role for a repository can view the content exclusion settings for that repository, but can't change these settings. For more information, see "조직의 리포지토리 역할."

This feature is available for organization accounts with a Copilot Business subscription.

:

  • GitHub Copilot은(는) 현재 퍼블릭 베타 버전이며 변경될 수 있습니다.
  • 이 기능은 Visual Studio, Visual Studio Code, JetBrains IDE 및 neovim에서 지원됩니다. 지원되는 JetBrains IDE에 대한 자세한 내용은 "GitHub Copilot 시작"을 참조하세요.

콘텐츠 제외 구성하기 정보

GitHub Copilot에 특정 파일이 사용되는 것을 방지할 수 있습니다. GitHub Copilot을(를) 구성하여 해당 파일을 무시하도록 수 있습니다. 리포지토리 또는 조직의 설정에서 제외된 콘텐츠에 대한 경로를 지정하여 이 작업을 수행합니다.

콘텐츠 제외를 지정하면 다음과 같은 두 가지 효과가 있습니다.

  • 영향을 받는 파일의 콘텐츠는 GitHub Copilot이(가) 다른 파일에서 제공하는 코드 완성 제안을 알리는 데 사용되지 않습니다.
  • GitHub Copilot 코드 완성은 영향을 받는 파일에서 사용할 수 없습니다.

콘텐츠 제외를 추가하거나 변경한 후 설정이 이미 로드된 IDE에서 적용되려면 최대 30분이 걸릴 수 있습니다. 사용자 고유의 IDE에 변경 내용을 적용하여 콘텐츠 제외 설정을 다시 로드할 수 있습니다. 자세한 내용은 "콘텐츠 제외 변경 내용을 IDE로 전달하기"를 참조하세요.

제한 사항

  • GitHub Copilot에서 콘텐츠를 제외하면 현재 코드 완성에만 영향을 줍니다. GitHub Copilot Chat은(는) 관련 설정의 영향을 받지 않습니다.
  • 콘텐츠 제외는 Copilot이(가) 제외된 파일의 콘텐츠에 직접 액세스하지 못하게 합니다. Copilot은(는) IDE에서 제공하는 의미 체계 정보(예: 코드에 사용되는 기호에 대한 형식 정보 또는 가리키기 정의)에서 제외되지 않은 파일에 대한 정보를 그릴 수 있습니다. IDE가 제외된 파일에서 이 정보를 파생시킬 수 있습니다.

제외 가능한 항목

리포지토리의 설정에서 콘텐츠 제외를 지정하는 경우 해당 리포지토리의 파일만 제외할 수 있습니다.

조직의 설정에서 콘텐츠 제외를 지정하는 경우 GitHub.com에 호스트된 Git 기반 리포지토리 또는 다음 구문 중 어느 것을 사용하여 액세스할 수 있는 모든 위치에서 파일을 제외할 수 있습니다.

http[s]://host.xz[:port]/path/to/repo.git/

git://host.xz[:port]/path/to/repo.git/

[user@]host.xz:path/to/repo.git/

ssh://[user@]host.xz[:port]/path/to/repo.git/

참고: Copilot Business 구독이 있는 모든 GitHub 조직의 설정에서 콘텐츠를 제외할 수 있다는 점에 유의해야 합니다. 제외된 파일은 제외가 정의된 조직이 소유하지 않은 리포지토리에 있을 수 있습니다. 제외된 파일은 GitHub에 호스트되지 않은 Git 기반 리포지토리에 있을 수도 있습니다.

콘텐츠 제외 설정의 영향을 받는 사람

GitHub Copilot 콘텐츠 제외 설정은 Copilot을(를) 사용하는 모든 사용자에게 적용되지 않습니다.

콘텐츠 제외 설정은 GitHub Copilot Business 또는 GitHub Copilot Enterprise 구독의 일부로 시트를 부여 받고 콘텐츠 제외가 구성된 동일한 조직의 구성원인 사용자에게만 적용됩니다. 지정된 파일에 액세스할 수 있는 다른 사용자는 콘텐츠 제외의 영향을 받지 않으며 코드 완성 제안도 계속 표시됩니다.

리포지토리 설정 또는 조직 설정에 정의된 모든 제외는 Copilot Business 구독의 일부로 Copilot 시트를 부여 받은 조직의 모든 구성원에게 적용됩니다.

GitHub로 전송된 데이터

콘텐츠 제외를 구성한 후 클라이언트(예: Copilot에 대한 VS Code 확장)는 서버가 올바른 정책을 클라이언트로 반환할 있도록 현재 리포지토리 URL을 GitHub 서버로 보냅니다. 이러한 방식으로 서버에 전송된 URL은 어디에도 기록되지 않습니다.

리포지토리의 콘텐츠 제외 구성하기

리포지토리 설정을 사용하여 GitHub Copilot에서 무시해야 하는 콘텐츠를 리포지토리에 지정할 수 있습니다.

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

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

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

  3. 사이드바의 "코드 및 자동화" 섹션에서 Copilot 을(를) 클릭합니다.

    리포지토리가 부모 조직에서 제외를 상속하는 경우 해당 제외에 대한 세부 정보를 포함하는 페이지 맨 위에 한 회색 상자가 표시됩니다. 이러한 설정은 편집할 수 없습니다.

  4. "이 리포지토리에서 제외할 경로" 상자에서 Copilot을(를) 제외해야 하는 파일의 경로를 입력합니다.

    Copilot에 대한 리포지토리 설정의 "제외할 경로" 텍스트 상자 스크린샷

    형식 - "/PATH/TO/DIRECTORY/OR/FILE"을(를) 사용합니다. 각 경로는 별도의 줄에 있습니다. #(으)로 줄을 시작하여 메모를 추가할 수 있습니다.

    fnmatch 패턴 일치 표기법을 사용하여 파일 경로를 지정할 수 있습니다. 자세한 내용은 ruby-doc.org 설명서의 "파일"을 참조하세요.

    참고: 패턴은 대/소문자를 구분하지 않습니다.

리포지토리 설정에 지정된 경로 예제

YAML
- "/src/some-dir/kernel.rs"

Ignore the /src/some-dir/kernel.rs file in this repository.

- "secrets.json"

Ignore files called secrets.json anywhere in this repository.

- "secret*"

Ignore all files whose names begin secret anywhere in this repository.

- "*.cfg"

Ignore files whose names end .cfg anywhere in this repository.

- "/scripts/**"

Ignore all files in or below the /scripts directory of this repository.

# Ignore the `/src/some-dir/kernel.rs` file in this repository.
- "/src/some-dir/kernel.rs"

# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"

# Ignore all files whose names begin `secret` anywhere in this repository.
- "secret*"

# Ignore files whose names end `.cfg` anywhere in this repository.
- "*.cfg"

# Ignore all files in or below the `/scripts` directory of this repository.
- "/scripts/**"

조직의 콘텐츠 제외 구성하기

조직 설정을 사용하여 모든 리포지토리에서 GitHub Copilot이(가) 무시해야 하는 콘텐츠를 지정할 수 있습니다.

  1. GitHub.com의 오른쪽 위에서 프로필 사진을 선택한 다음 내 조직을 클릭합니다.

    @octocat 프로필 사진의 드롭다운 메뉴 스크린샷입니다. "조직"이 진한 주황색으로 표시됩니다.

  2. 조직 옆에 있는 설정을 클릭합니다.

  3. 왼쪽 사이드바에서 Copilot, 콘텐츠 제외를 차례로 클릭합니다.

  4. "제외할 리포지토리 및 경로" 상자에서 Copilot을(를) 제외해야 하는 위치에 대한 세부 정보를 입력합니다.

    Copilot에서 파일을 제외할 각 리포지토리에 대해 한 줄에 리포지토리에 대한 참조를 입력한 다음 리포지토리 내의 위치에 대한 경로와 각 경로를 별도의 줄에 입력합니다. 이때 다음 형식을 사용합니다.

    REPOSITORY-REFERENCE:
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - ...
    

    다음 구문은 REPOSITORY-REFERENCE에서 지원됩니다.

    http[s]://host.xz[:port]/path/to/repo.git/
    
    git://host.xz[:port]/path/to/repo.git/
    
    [user@]host.xz:path/to/repo.git/
    
    ssh://[user@]host.xz[:port]/path/to/repo.git/
    

    참고:

    • 리포지토리에 대해 무시할 경로의 계산에서 REPOSITORY-REFERENCEuser@:port 경로는 무시됩니다.
    • 각 리포지토리 참조에는 단일 * 와일드카드가 포함될 수 있습니다. 예를 들어 https://github.com/octo-org/*은(는) octo-org 조직의 모든 리포지토리와 일치합니다.

    fnmatch 패턴 일치 표기법을 사용하여 파일 경로를 지정할 수 있습니다. 자세한 내용은 ruby-doc.org 설명서의 "파일"을 참조하세요.

    참고: 패턴은 대/소문자를 구분하지 않습니다.

조직 설정에서 리포지토리 및 경로 예제

YAML
"*":
  - "**/.env"

Ignore all .env files at any path, in any repository. This setting applies to all repositories, not just to those on GitHub.com. This could also have been written on a single line as:

"*": ["**/.env"]

octo-repo:

In the octo-repo repository in this organization:

  - "/src/some-dir/kernel.rs"

Ignore the /src/some-dir/kernel.rs file.

https://github.com/primer/react.git:

In the primer/react repository on GitHub:

  - "secrets.json"

Ignore files called secrets.json anywhere in this repository.

  - "/src/**/temp.rb"

Ignore files called temp.rb in or below the /src directory.

git@github.com:*/copilot:

In the copilot repository of any GitHub organization:

  - "/__tests__/**"

Ignore any files in or below the /__tests__ directory.

  - "/scripts/*"

Ignore any files in the /scripts directory.

git@gitlab.com:gitlab-org/gitlab-runner.git:

In the gitlab-org/gitlab-runner repository on GitLab:

  - "/main_test.go"

Ignore the /main_test.go file.

  - "{server,session}*"

Ignore any files with names beginning server or session, anywhere in this repository.

  - "*.m[dk]"

Ignore any files with names ending .md or .mk, anywhere in this repository.

  - "**/package?/*"

Ignore files directly within directories such as packages or packaged, anywhere in this repository.

  - "**/security/**"

Ignore files in or below any security directories, anywhere in this repository.

# Ignore all `.env` files at any path, in any repository.
# This setting applies to all repositories, not just to those on GitHub.com.
# This could also have been written on a single line as:
#
# "*": ["**/.env"]
"*":
  - "**/.env"

# In the `octo-repo` repository in this organization:
octo-repo:
  # Ignore the `/src/some-dir/kernel.rs` file.
  - "/src/some-dir/kernel.rs"

# In the `primer/react` repository on GitHub:
https://github.com/primer/react.git:
  # Ignore files called `secrets.json` anywhere in this repository.
  - "secrets.json"
  # Ignore files called `temp.rb` in or below the `/src` directory.
  - "/src/**/temp.rb"

# In the `copilot` repository of any GitHub organization:
git@github.com:*/copilot:
  # Ignore any files in or below the `/__tests__` directory.
  - "/__tests__/**"
  # Ignore any files in the `/scripts` directory.
  - "/scripts/*"

# In the `gitlab-org/gitlab-runner` repository on GitLab:
git@gitlab.com:gitlab-org/gitlab-runner.git:
  # Ignore the `/main_test.go` file.
  - "/main_test.go"
  # Ignore any files with names beginning `server` or `session`, anywhere in this repository.
  - "{server,session}*"
  # Ignore any files with names ending `.md` or `.mk`, anywhere in this repository.
  - "*.m[dk]"
  # Ignore files directly within directories such as `packages` or `packaged`, anywhere in this repository.
  - "**/package?/*"
  # Ignore files in or below any `security` directories, anywhere in this repository.
  - "**/security/**"

콘텐츠 제외 설정의 변경 내용 검토하기

조직 소유자는 콘텐츠 제외와 관련한 모든 변경 내용을 확인할 수 있습니다.

  1. 조직의 설정(여기에 설명) 또는 리포지토리의 설정(여기에 설명)에서 "콘텐츠 제외" 페이지를 엽니다.

  2. 페이지 아래쪽으로 스크롤합니다.

    마지막으로 설정을 변경한 사람의 이름과 설정을 변경한 시기에 대한 정보가 표시됩니다.

  3. 마지막 변경 시간을 클릭합니다.

    마지막으로 편집한 정보의 스크린샷 변경 시간 링크는 진한 주황색 윤곽선으로 강조 표시됩니다.

    참고: 마지막 변경 시간은 조직 소유자의 경우 링크만 제공됩니다.

    조직의 "감사 로그" 페이지가 표시되어 가장 최근에 기록된 copilot.content_exclusion_changed 작업의 발생을 보여줍니다.

    리포지토리 설정 페이지에서 클릭한 경우 감사 로그가 필터링되어 해당 리포지토리의 콘텐츠 제외에 대한 변경 내용만 표시됩니다.

  4. 자세한 내용을 보려면 각 항목의 끝에 있는 줄임표(...)를 클릭합니다.

    "excluded_paths" 항목이 잘린 경우 잘린 값을 가리키면 전체 항목이 표시됩니다. 변경 내용을 저장한 후 제외 설정의 내용이 표시됩니다.

    'copilot.content_exclusion_changed' 작업에 대한 감사 로그 세부 정보의 스크린샷 줄임표 버튼이 강조 표시됩니다.

설정 변경의 효과 확인하기

Copilot의 콘텐츠 제외를 변경할 경우 설정에서 지정된 파일의 코드를 제안하지 못하도록 Copilot을(를) 차단하는 것을 확인할 수 있습니다.

Copilot이 파일에 대해 비활성화되어 있는지 확인하려면 편집기에서 파일을 열고 주석 등의 코드 줄을 입력하기 시작합니다. 일반적으로 입력할 때 Copilot의 코드 완료 제안이 표시됩니다. 콘텐츠 제외로 Copilot을(를) 사용하지 않도록 설정하면 코드 완성 제안이 제공되지 않으며 파일 콘텐츠가 다른 파일에서 제안을 생성하는 데 사용되지 않습니다.

IDE의 설정 변경 내용 확인

Visual Studio, VS Code 또는 지원되는 JetBrains IDE에서 작업하는 경우 Copilot 아이콘은 콘텐츠 제외로 인해 Copilot이(가) 비활성화된 시기를 나타냅니다.

  1. 콘텐츠 제외의 영향을 받을 것으로 예상되는 파일을 엽니다.

    Copilot 콘텐츠 제외가 이 파일에 적용되는 경우 상태 표시줄의 Copilot 아이콘에 대각선이 표시됩니다.

  2. 이 아이콘을 마우스로 가리킵니다. 팝업 메시지는 조직 또는 부모 리포지토리가 이 파일에 대해 Copilot을(를) 사용하지 않도록 설정했는지 여부를 알려줍니다.

    VS Code 툴바에서 Copilot가 팝업을 비활성화한 스크린샷.

참고: Visual Studio 및 VS Code에서 Copilot 확장에 대한 로그를 표시하여 Copilot 아이콘을 마우스로 가리키지 않고도 콘텐츠 제외에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 "사용자 환경에서 GitHub Copilot에 대한 로그 보기"을(를) 참조하세요.

IDE에 콘텐츠 제외 변경 내용 전파

Neovim에서 작업하는 경우 파일을 열 때마다 GitHub에서 콘텐츠 제외가 페치됩니다. 그러나 Visual Studio, VS Code 또는 지원되는 JetBrains IDE에서 작업하는 경우 설정 변경의 영향을 확인하려면 최대 30분을 기다려야 할 수 있습니다. 또는 콘텐츠 제외 설정을 IDE에 수동으로 다시 로드할 수 있습니다.

콘텐츠 제외를 Visual Studio로 다시 로드하려면 애플리케이션을 닫고 다시 엽니다.

콘텐츠 제외를 VS Code(으)로 다시 로드:

  1. 명령 팔레트에 액세스합니다. 예를 들어, Shift+Command+P(Mac)/Ctrl+Shift+P(Windows/Linux)를 누릅니다.
  2. 입력: reload
  3. 개발자: 창 다시 로드를 선택합니다.

콘텐츠 제외를 JetBrains IDE로 다시 로드하려면 애플리케이션을 닫고 다시 열거나 GitHub에서 로그아웃한 다음 다음과 같이 다시 로그인합니다.

  1. 상태 표시줄에서 Copilot 아이콘을 클릭하고 GitHub에서 로그아웃을 선택합니다.
  2. 이제 상태 막대의 Copilot 아이콘에 대각선이 표시됩니다. 이 파일을 클릭하고 GitHub에 로그인을 선택합니다.
  3. 디바이스 코드를 보여 주는 "GitHub에 로그인" 메시지가 표시됩니다. 복사 및 열기를 클릭합니다.
  4. "디바이스 활성화" 페이지에서 디바이스 코드를 붙여넣고 계속을 클릭합니다.
  5. 다음 페이지에서 GitHub Copilot 플러그 인 권한 부여를 클릭합니다.

추가 참고 자료