Skip to main content

Copilot ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž ์ง€์ •

์ถ”๊ฐ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub Copilot์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

Copilot ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋Š” ๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ„์ „์ด๋ฉฐ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ค‘ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์€ GitHub ์‹œํ—˜ํŒ ์‚ฌ์šฉ ์กฐ๊ฑด์„(๋ฅผ) ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

Copilot ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž ์ง€์ • ์ •๋ณด

์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ Copilot์€ GitHub Actions๋กœ ๊ตฌ๋™๋˜๋Š” ์ž์ฒด ์ž„์‹œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Copilot์€ ์‚ฌ์šฉ์ž์˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ , ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ•˜๊ณ , ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ๋ฐ Linter๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ํ†ตํ•ด Copilot์˜ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot์˜ ํ™˜๊ฒฝ์— ๋„๊ตฌ ๋˜๋Š” ์ข…์†์„ฑ ์‚ฌ์ „ ์„ค์น˜

์ž„์‹œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ Copilot์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๊ณ , ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ, Linter, ๊ธฐํƒ€ ๋„๊ตฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Copilot์€ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด ์ข…์†์„ฑ์„ ์Šค์Šค๋กœ ๋ฐœ๊ฒฌํ•˜๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ)์˜ ๋น„๊ฒฐ์ •์ ์ธ ํŠน์„ฑ ๋•Œ๋ฌธ์— ์ด ๊ณผ์ •์ด ๋А๋ฆฌ๊ฑฐ๋‚˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋น„๊ณต๊ฐœ ์ข…์†์„ฑ์ธ ๊ฒฝ์šฐ).

๋Œ€์‹ , ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด์˜ .github/workflows/copilot-setup-steps.yml์— ํŠน๋ณ„ํ•œ GitHub Actions ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— Copilot์˜ ํ™˜๊ฒฝ์„ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

copilot-setup-steps.yml ํŒŒ์ผ์€ ์ผ๋ฐ˜์ ์ธ GitHub Actions ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ๋‹จ์ผ copilot-setup-steps ์ž‘์—…์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ Copilot์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— GitHub Actions์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. GitHub Actions ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๊ตฌ๋ฌธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•˜๊ณ , Node.js๋ฅผ ์„ค์น˜ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์บ์‹œํ•˜๋Š” TypeScript ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ copilot-setup-steps.yml ํŒŒ์ผ์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์–ธ์–ด ๋ฐ ์ข…์†์„ฑ์— ๋งž๊ฒŒ ์‚ฌ์šฉ์ž ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

YAML
name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: Install JavaScript dependencies
        run: npm ci

copilot-setup-steps.yml ํŒŒ์ผ์—์„œ copilot-setup-steps ์ž‘์—…์˜ ๋‹ค์Œ์˜ ์„ค์ •๋งŒ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„ค์ •์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

  • steps(์œ„์˜ ๋‚ด์šฉ ์ฐธ์กฐ)
  • permissions(์œ„์˜ ๋‚ด์šฉ ์ฐธ์กฐ)
  • runs-on(์•„๋ž˜ ๋‚ด์šฉ ์ฐธ์กฐ)
  • container
  • services
  • snapshot
  • timeout-minutes(์ตœ๋Œ“๊ฐ’: 59)

์ด๋Ÿฌํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๊ตฌ๋ฌธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

copilot-setup-steps.yml ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ์ž๋™์œผ๋กœ ์ผ๋ฐ˜ GitHub Actions ์›Œํฌํ”Œ๋กœ๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ ํŒŒ์ผ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์˜ ๋‹ค๋ฅธ ๊ฒ€์‚ฌ์™€ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

yml ํŒŒ์ผ์„ ๊ธฐ๋ณธ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉํ•œ ํ›„์—๋Š” ์–ธ์ œ๋“ ์ง€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ Actions ํƒญ์—์„œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›Œํฌํ”Œ๋กœ ์ˆ˜๋™ ์‹คํ–‰์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Copilot์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋ฉด ์„ค์ • ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์—…๋ฐ์ดํŠธ๊ฐ€ ์„ธ์…˜ ๋กœ๊ทธ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Copilot์˜ ์„ธ์…˜ ์ถ”์ ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์–ด๋–ค ์„ค์ • ๋‹จ๊ณ„์—์„œ๋“  0์ด ์•„๋‹Œ ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์‹คํŒจํ•  ๊ฒฝ์šฐ, Copilot์€ ๋‚˜๋จธ์ง€ ์„ค์ • ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ˜„์žฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ƒํƒœ๋กœ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Copilot์˜ ํ™˜๊ฒฝ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

Copilot์˜ ํ™˜๊ฒฝ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋„๊ตฌ ๋˜๋Š” ์ข…์†์„ฑ์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด copilot ํ™˜๊ฒฝ์—์„œ GitHub Actions ๋ณ€์ˆ˜ ๋˜๋Š” ๋น„๋ฐ€์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฐ’์— ์•”ํ˜ธ ๋˜๋Š” API ํ‚ค์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ GitHub Actions ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

  1. GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. copilot ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋น„๋ฐ€์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด "Environment secrets"์—์„œ Add environment secret์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด "Environment variables"์—์„œ Add environment variable์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. "Name" ๋ฐ "Value" ํ•„๋“œ๋ฅผ ์ž…๋ ฅํ•œ ๋‹ค์Œ, Add secret ๋˜๋Š” Add variable์„ ์ ์ ˆํžˆ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋Œ€ํ˜• GitHub ํ˜ธ์ŠคํŒ… GitHub Actions ๋Ÿฌ๋„ˆ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ

๊ธฐ๋ณธ์ ์œผ๋กœ Copilot์€ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ํ‘œ์ค€ GitHub Actions ๋Ÿฌ๋„ˆ์—์„œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹ , ๋” ๋งŽ์€ RAM, CPU, ๋””์Šคํฌ ๊ณต๊ฐ„, ๊ณ ๊ธ‰ ๋„คํŠธ์›Œํ‚น ์ œ์–ด ๋“ฑ์˜ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ) ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Œ€ํ˜• ์‹คํ–‰๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Copilot์—์„œ ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ํ•˜๋‚˜ ์ด์ƒ์˜ ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ˜• ์‹คํ–‰๊ธฐ ๊ด€๋ฆฌํ•˜๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ํ›„์—๋Š” copilot-setup-steps.yml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ Copilot์— ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด copilot-setup-steps ์ž‘์—…์˜ runs-on ๋‹จ๊ณ„๋ฅผ ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ์—์„œ Copilot์„ ์‚ฌ์šฉํ•  ๋ ˆ์ด๋ธ” ๋ฐ/๋˜๋Š” ๊ทธ๋ฃน์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. runs-on์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ˜• ๋Ÿฌ๋„ˆ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋” ํฐ ์‹คํ–‰๊ธฐ์—์„œ ์ž‘์—… ์‹คํ–‰์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-4-core
    # ...

์ฐธ๊ณ  ํ•ญ๋ชฉ

  • Copilot ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋Š” Ubuntu x64 Linux ๋Ÿฌ๋„ˆ์™€๋งŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. Windows, macOS ๋˜๋Š” ๊ธฐํƒ€ ์šด์˜ ์ฒด์ œ์˜ ๋Ÿฌ๋„ˆ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ž์ฒด ํ˜ธ์ŠคํŒ… GitHub Actions ๋Ÿฌ๋„ˆ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Git LFS(๋Œ€ํ˜• ํŒŒ์ผ ์Šคํ† ๋ฆฌ์ง€)๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •

Git LFS(๋Œ€ํ˜• ํŒŒ์ผ ์Šคํ† ๋ฆฌ์ง€)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํฐ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ Copilot์˜ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜์—ฌ Git LFS๋ฅผ ์„ค์น˜ํ•˜๊ณ  LFS ๊ฐœ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Git LFS๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๋ ค๋ฉด lfs ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•˜์—ฌ copilot-setup-steps ์ž‘์—…์— actions/checkout ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

YAML
# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read # for actions/checkout
    steps:
      - uses: actions/checkout@v4
        with:
          lfs: true

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ