# Panther 콘텐츠 저장소 설정하기

{% hint style="info" %}
이 업데이트된 `panther_analysis_tool` 병합 워크플로는 Panther 버전 1.119부터 오픈 베타로 제공되며, 모든 고객이 사용할 수 있습니다. 버그 보고서와 기능 요청은 Panther 지원 팀과 공유해 주세요.
{% endhint %}

## 새 Panther 콘텐츠 리포지토리 만들기

### 필수 조건

* Panther Analysis Tool(PAT)을 설치했습니다.

### 1단계: Panther 리포지토리 준비

* 빈 디렉터리에서 다음을 실행합니다 `git init` Git 리포지토리를 초기화한 다음, 다음을 실행합니다 `pat init`.

이후 PAT 명령을 위해 리포지토리를 준비합니다.

다음 `init` 명령은 빈 리포지토리를 초기화하고 최신 콘텐츠를 다음에서 가져옵니다 `panther-analysis` 캐시로.

### 2단계(선택 사항): 다음의 콘텐츠 탐색 `panther-analysis`

* 실행 `pat explore`.

### 3단계: panther-analysis의 콘텐츠 활성화

디택션과 같은 panther-analysis의 콘텐츠를 활성화하려면 다음을 실행합니다 `pat install`, 하나 이상의 콘텐츠 항목을 전달합니다. 예:

* `pat install <id>`
* `pat install --filter LogTypes=AWS.CloudTrail`

### 4단계: 새 콘텐츠가 테스트를 통과하는지 확인

* 실행 `pat test`.

### 5단계: Panther에 콘텐츠 업로드

* 실행 `pat upload`.

## 레거시 리포지토리에서 마이그레이션

{% hint style="info" %}
기존 Panther 콘텐츠 리포지토리가 [에서 포크되었거나 클론되었다면 `panther-analysis`](/ko/panther/detections-repo/setup/deprecated.md)아래 단계를 따라 새 관리 워크플로로 마이그레이션하세요.
{% endhint %}

### 1단계: Panther 리포지토리 준비

* Panther 콘텐츠 디렉터리에서 다음을 실행합니다 `pat init`.

### 2단계: 기존 콘텐츠 형식 지정

YAML 파일에는 특정 형식 변경이 필요합니다(예: 디택션 단위 테스트와 같은 중첩 JSON 세그먼트에서 중괄호와 대괄호 제거). 이러한 변경을 적용하려면:

* 실행 `pat fmt`.

{% hint style="warning" %}
이 단계에서 변경 사항을 커밋하는 것이 권장됩니다. 왜냐하면 `pat fmt` 검토하기 번거로울 정도로 많은 형식 변경을 생성하기 때문입니다.
{% endhint %}

### 3단계: 기존 콘텐츠 업데이트

panther-analysis 콘텐츠를 기반으로 하는 모든 분석 항목은 `BaseVersion` 필드를 추가하고 가장 최신 panther-analysis 버전과 병합하여 마이그레이션합니다. 마이그레이션 후에도 리포지토리가 여전히 `panther-analysis` 에서 포크된 상태라면 다른 PAT 명령이 중단되지는 않지만, 마이그레이션 후에는 업스트림에서 동기화하지 않는 것을 권장합니다 `panther-analysis` 이 작업을 수행하는 자동화는 제거해야 합니다.

* 실행 `pat migrate`.

{% hint style="info" %}
유의할 점은 `pat migrate` 어떠한 새로운 `panther-analysis` 콘텐츠도 가져오지 않으며, 기존 콘텐츠만 마이그레이션한다는 것입니다.
{% endhint %}

### 4단계: 검토 `migration_status.md` 및 개별 병합 충돌 해결

1. 실행 `less migration_status.md`.
2. (선택 사항) 만약 `migration_status.md` 에 해결되지 않은 병합 충돌이 있다고 표시되면, 충돌이 있는 각 항목에 대해 다음을 실행합니다 `pat migrate <ID>` 하여 해결합니다.
   * 선택적으로 다음을 사용할 수 있습니다 `--write-merge-conflicts` PAT가 대신 병합 충돌을 파일에 기록하도록 지시할 수 있으며, 이는 AI를 사용해 충돌을 해결하거나 `--auto-accept` 를 사용해 자동으로 해결하는 경우 유용할 수 있습니다.

     <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>이 단계는 선택 사항입니다. 진행하기 전에(즉, 병합 충돌을 <em>표시되지 않지만</em> 생성한 콘텐츠를 테스트하고 업로드하기 전에) 병합 충돌을 해결할 필요는 없기 때문입니다.</p></div>
   * YAML 파일의 충돌을 해결하려면 PAT CLI 편집기를 사용합니다.
     * Python 파일의 충돌을 해결하려면 PAT CLI 편집기 또는 원하는 코드 편집기를 사용할 수 있습니다. 원하는 코드 편집기(예: `code` (VS code), `cursor`, `Poland`, `goland` (Go), `pycharm`)를 지정하려면 다음 중 하나를 사용하세요:
       * 사용 `--editor` 에서 수행된 검색은 `pat migrate`
       * 다음을 설정합니다 `EDITOR` 환경 변수

{% hint style="info" %}
새 콘텐츠를 활성화하기 전에 이 단계에서 커밋하는 것도 권장됩니다.
{% endhint %}

### 5단계(선택 사항): 다음의 최신 콘텐츠 탐색 `panther-analysis`

* 실행 `pat explore`.

### 6단계(선택 사항): 다음의 새 콘텐츠 활성화 `panther-analysis`

디택션과 같은 panther-analysis의 콘텐츠를 활성화하려면 다음을 실행합니다 `pat install`, 하나 이상의 콘텐츠 항목을 전달합니다. 이전에 한 번도 보유한 적 없는 콘텐츠를 설치하기 위해 `migrate` 명령을 실행할 필요는 없습니다. 예:

* `pat install <id>`
* `pat install --filter LogTypes=AWS.CloudTrail`

### 7단계: 콘텐츠가 테스트를 통과하는지 확인

* 실행 `pat test`.

### 8단계: Panther에 콘텐츠 업로드

* 실행 `pat upload`.

### 9단계: 사용하지 않는 `panther-analysis` 콘텐츠

사용 중단된 관리 워크플로에서는 panther-analysis의 콘텐츠를 활성화했는지 여부와 관계없이 모든 콘텐츠를 가져왔습니다. 업데이트된 워크플로에서는 실제로 사용하는 콘텐츠만 유지하면 됩니다.

이 단계에서는 환경에서 사용되지 않는 모든 콘텐츠를 제거할 수 있습니다. 콘텐츠를 제거할 때는 반드시 다음을 실행하세요 `pat test` 를 자주 실행하여 제거된 종속성이 없는지 검증하세요. 디택션 콘텐츠는 전역 헬퍼와 데이터 모델에 의존하는 경우가 많기 때문입니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.panther.com/ko/panther/detections-repo/setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
