Skip to main content

리포지토리에 대한 문제 템플릿 구성

기여자가 리포지토리에서 새 문제를 공개할 때 사용할 수 있는 템플릿을 사용자 지정할 수 있습니다.

기본 문제 템플릿을 만들고 조직 또는 개인 계정에 대한 문제 템플릿의 기본 구성 파일을 만들 수 있습니다. 자세한 내용은 "Creating a default community health file(기본 커뮤니티 상태 파일 만들기)"을(를) 참조하세요.

문제 템플릿 만들기

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

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

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

  3. “기능” 섹션의 문제에서 템플릿 설정을 클릭합니다. 단추를 보려면 문제를 허용하고 페이지를 새로 고쳐야 할 수도 있습니다.

"문제" 설정이 선택되고 녹색 "템플릿 설정" 단추가 표시된 리포지토리 설정의 "기능" 섹션 스크린샷

  1. 템플릿 추가 드롭다운 메뉴를 사용하여 만들려는 템플릿 유형을 클릭합니다.

    표준 "버그 보고서" 및 "기능 요청" 템플릿을 표시하도록 확장된 "템플릿 추가" 드롭다운 메뉴의 스크린샷 또한 "사용자 지정 템플릿"이 나열됩니다.

  2. 리포지토리에 커밋하기 전에 템플릿을 미리 보거나 편집하려면 템플릿 옆에 있는 미리 보기 및 편집을 클릭합니다.

  3. 템플릿을 편집하려면 을(를) 클릭하고 필드에 입력하여 콘텐츠를 편집합니다.

    문제 템플릿의 미리 보기 스크린샷 템플릿 이름 오른쪽에는 연필 아이콘이 진한 주황색으로 표시됩니다.

  4. 기본 문제 제목을 자동으로 설정하거나, 리포지토리에 대한 읽기 권한이 있는 사용자에게 문제를 할당하거나, 템플릿에 발생한 문제에 레이블을 적용하려면 “선택적 추가 정보” 아래에 있는 필드를 사용합니다. YAML Frontmatter 형식의 title, labels 또는 assignees을(를) 사용하여 문제 템플릿에 이러한 세부 정보를 추가할 수도 있습니다.

  5. 템플릿 수정 및 미리 보기가 끝나면 페이지 오른쪽 위에 있는 변경 내용 제안을 클릭합니다.

  6. "메시지 커밋" 필드에 변경 내용을 설명하는 커밋 메시지 입력합니다.

  7. 커밋 메시지 필드 아래에서 템플릿을 기본 분기에 직접 커밋할지 또는 새 분기를 만들고 끌어오기 요청을 열 것인지 결정합니다. 끌어오기 요청에 대한 자세한 내용은 "끌어오기 요청 정보"을(를) 참조하세요.

  8. 변경 내용 커밋을 클릭합니다. 이러한 변경 내용이 기본 분기에 병합되면 참가자가 리포지토리에서 새 문제를 열 때 사용할 수 있는 템플릿이 제공됩니다.

문제 양식 만들기

참고: 문제 양식은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.

문제 양식을 사용하면 사용자 지정 가능한 웹 양식 필드가 있는 문제 템플릿을 만들 수 있습니다. 리포지토리에서 문제 양식을 사용하여 기여자가 특정하고 구조화된 정보를 포함하도록 장려할 수 있습니다. 문제 양식은 GitHub 양식 스키마를 사용하여 YAML로 작성됩니다. 자세한 내용은 "GitHub 양식 스키마 구문"을(를) 참조하세요. YAML을 처음 사용하며 자세히 알아보려는 경우 “Y분 안에 YAML 알아보기”를 참조하세요.

리포지토리에서 문제 양식을 사용하려면 새 파일을 만들고 리포지토리의 .github/ISSUE_TEMPLATE 폴더에 추가해야 합니다.

다음은 문제 양식 구성 파일의 예입니다.

YAML
name: Bug Report
description: File a bug report.
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["octo-org/1", "octo-org/44"]
assignees:
  - octocat
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out this bug report!
  - type: input
    id: contact
    attributes:
      label: Contact Details
      description: How can we get in touch with you if we need more info?
      placeholder: ex. email@example.com
    validations:
      required: false
  - type: textarea
    id: what-happened
    attributes:
      label: What happened?
      description: Also tell us, what did you expect to happen?
      placeholder: Tell us what you see!
      value: "A bug happened!"
    validations:
      required: true
  - type: dropdown
    id: version
    attributes:
      label: Version
      description: What version of our software are you running?
      options:
        - 1.0.2 (Default)
        - 1.0.3 (Edge)
      default: 0
    validations:
      required: true
  - type: dropdown
    id: browsers
    attributes:
      label: What browsers are you seeing the problem on?
      multiple: true
      options:
        - Firefox
        - Chrome
        - Safari
        - Microsoft Edge
  - type: textarea
    id: logs
    attributes:
      label: Relevant log output
      description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
      render: shell
  - type: checkboxes
    id: terms
    attributes:
      label: Code of Conduct
      description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com). 
      options:
        - label: I agree to follow this project's Code of Conduct
          required: true

다음은 문제 양식의 렌더링된 버전입니다.

텍스트 필드와 드롭다운 메뉴가 혼합된 렌더링된 문제 양식의 스크린샷

  1. 문제 양식을 만들려는 리포지토리를 선택합니다. 쓰기 권한이 있는 기존 리포지토리를 사용하거나 새 리포지토리를 만들 수 있습니다. 리포지토리 생성에 대한 자세한 내용은 "새 리포지토리 만들기"을(를) 참조하세요.
  2. 리포지토리에서 .github/ISSUE_TEMPLATE/FORM-NAME.yml 파일을 만들고 FORM-NAME을(를) 문제 양식의 이름으로 바꿉니다. GitHub에서 새 파일을 만드는 방법에 대한 자세한 내용은 "새 파일 만들기"을(를) 참조하세요.
  3. 새 파일의 본문에 문제 양식의 내용을 입력합니다. 자세한 내용은 "문제 양식 구문"을(를) 참조하세요.
  4. 파일을 리포지토리의 기본 분기에 커밋합니다. 자세한 정보는 "새 파일 만들기"을(를) 참조하세요.

템플릿 선택기 구성

.github/ISSUE_TEMPLATE 폴더에 config.yml 파일을 추가하여 사용자가 리포지토리에서 새 이슈를 만들 때 표시되는 이슈 템플릿 선택기를 사용자 지정할 수 있습니다.

blank_issues_enabled을(를) false(으)로 설정하여 기여자가 문제 템플릿을 사용하도록 권장할 수 있습니다. blank_issues_enabled을(를) true(으)로 설정하면 사람들이 빈 문제를 열 수 있는 옵션을 갖게 됩니다.

참고: 레거시 워크플로를 사용하여 .github 폴더에 issue_template.md 파일을 수동으로 만들고 config.yml 파일에서 빈 문제를 사용하도록 설정한 경우 사용자가 빈 문제를 열기로 선택할 때 issue_template.md의 템플릿이 사용됩니다. 빈 문제를 사용하지 않도록 설정하면 템플릿이 사용되지 않습니다.

GitHub을 외부에서 특정 보고서를 받으려면 사용자를 외부 사이트로 contact_links을(를) 보낼 수 있습니다.

다음은 config.yml 파일 예제입니다.

YAML
blank_issues_enabled: false
contact_links:
  - name: GitHub Community Support
    url: https://github.com/orgs/community/discussions
    about: Please ask and answer questions here.
  - name: GitHub Security Bug Bounty
    url: https://bounty.github.com/
    about: Please report security vulnerabilities here.

구성 파일은 파일이 리포지토리의 기본 분기에 병합될 때 템플릿 선택기를 사용자 지정합니다.

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

  2. 파일 목록 위에서 파일 추가 드롭다운 메뉴를 선택하고 새 파일 만들기를 클릭합니다.

    또는 왼쪽의 파일 트리 보기에서 을(를) 클릭합니다.

     리포지토리의 기본 페이지 스크린샷입니다. 파일 목록 위에 "파일 추가" 레이블의 단추가 진한 주황색으로 표시됩니다. 리포지토리의 파일 트리 보기에서 더하기 기호 아이콘이 있는 단추도 진한 주황색으로 표시됩니다.

  3. 파일 이름 필드에 .github/ISSUE_TEMPLATE/config.yml을(를) 입력합니다.

  4. 새 파일의 본문에 구성 파일의 내용을 입력합니다.

  5. 변경 내용 커밋... 을 클릭합니다.

  6. "커밋 메시지" 필드에, 파일의 변경 내용을 설명하는 커밋 메시지를 간결하고 명확하게 입력합니다. 커밋 메시지에서 둘 이상의 작성자가 커밋의 특성을 지정할 수 있습니다. 자세한 내용은 "여러 작성자와 커밋 만들기"을(를) 참조하세요.

  7. 커밋 메시지 필드 아래에서 현재 분기 또는 새 분기에 커밋을 추가할지 여부를 결정합니다. 현재 분기가 기본 분기인 경우 커밋에 대한 새 분기를 만든 다음 끌어오기 요청을 만들도록 선택해야 합니다. 자세한 내용은 "끌어오기 요청 만들기"을(를) 참조하세요.

    기본 분기에 직접 커밋하거나 새 분기를 만드는 라디오 단추를 보여 주는 GitHub 끌어오기 요청의 스크린샷. 새 분기를 선택했습니다.

  8. 변경 내용 커밋 또는 변경 내용 제안을 클릭합니다.

템플릿 순서 변경

문제 템플릿이 템플릿 선택기에 표시되는 순서를 설정할 수 있습니다. 템플릿 파일 이름을 변경하면 됩니다. .github/ISSUE_TEMPLATE 내의 템플릿은 영숫자 기준으로 목록으로 기재되며 파일 유형에 따라 그룹으로 묶입니다. YAML 파일이 Markdown 파일 앞에 표시됩니다.

템플릿 순서를 제어하려면 파일 이름 앞에 숫자를 접두사로 붙이세요. 예: 1-bug.yml, 2-feature-request.yml3-epic.yml.

템플릿이 10개가 넘는 경우, 영숫자로 순서를 지정하면 11-bug.yml1-feature.yml2-support.yml 사이에 위치하게 됩니다. 원하는 순서를 유지하려면 숫자 형식의 파일 이름 앞에 추가로 0을 접두사로 붙이면 됩니다. 예: 01-feature.yml, 02-support.yml11-bug.yml.

추가 참고 자료