통합

GitHub (Strings)

컨텐츠는 영어 텍스트를 Phrase Language AI를 이용해 기계 번역한 것입니다.

팁

Phrase TMS의 GitHub 통합에 대한 자세한 내용은 GitHub (TMS)를 참조하십시오.

Phrase Strings는 GitHub 저장소와 통합되어 Phrase와 GitHub 간의 현지화 파일을 동기화합니다.

기본적으로 저장소는 GitHub OAuth 앱을 사용하여 연결됩니다. 개인 액세스 토큰도 지원되며, 주로 자체 호스팅 인스턴스나 OAuth 앱 설치가 불가능한 환경을 위해 제공됩니다.

필수 조건

  • .phrase.yml 구성 파일이 모니터링할 브랜치의 루트에 있어야 합니다. 이 파일은 리포지토리로부터 가져오기(pull) 또는 내보내기(push)할 파일을 정의합니다.

  • 리포지토리에 대한 읽기 및 쓰기 액세스 권한이 필요합니다.

  • 잘못 정의된 구성 파일은 오류를 일으킬 수 있습니다. 파일에 하나 이상의 push 및 pull 대상이 있는지, 파일 형식이 올바른지, update_translations 매개 변수의 설정이 올바른지 확인하십시오.

  • GitHub OAuth 앱:

    • GitHub OAuth 앱은 저장소를 소유한 GitHub 조직 또는 계정에 설치되어야 합니다.

    • 저장소는 OAuth 앱 설치에 포함되어야 합니다.

    • 대상 조직 또는 계정에 GitHub 앱을 설치하거나 승인할 수 있는 권한이 필요합니다.

    • Strings 계정을 여러 GitHub 조직에 연결하는 것을 지원합니다. 통합 구성에서 동기화할 GitHub 조직을 선택하십시오. 연결할 수 있는 조직 수에는 엄격한 제한이 없습니다.

  • GitHub 액세스 토큰:

    • 클래식 토큰

      repo 범위가 필요합니다(공개 저장소와 동기화하는 경우 public_repo 필요)

    • 세분화된 토큰

      다음 권한이 필요합니다:

      • 콘텐츠: 읽기 및 쓰기

      • 풀 리퀘스트: 읽기 및 쓰기

    • 리포지토리 설정에 서명된 커밋이 필요하지 않은지 확인하십시오.

  • GitHub에서 SSO가 활성화된 경우 액세스 토큰에 대해서도 활성화해야 합니다.

  • phrase_translations 분기가 보호되지 않습니다.

참고

지속적인 개선으로 사용자 인터페이스가 동영상에 표시된 것과 완전히 같지 않을 수 있습니다.

리포지토리 연결

구성 파일이 준비되면 다음 단계에 따라 리포지토리를 연결하십시오:

  1. 메인 탐색에서 자동화를 클릭한 다음 리포 동기화를 클릭하십시오.

    또는 통합 페이지에서 리포 동기화까지 아래로 스크롤한 다음 구성을 클릭하십시오.

    리포 동기화 페이지가 열립니다. 리포 동기화 목록에는 사용자가 액세스할 수 있는 프로젝트만 표시됩니다.

  2. 동기화 추가/GitHub를 클릭하십시오.

    GitHub 동기화 설정 창이 열립니다.

  3. 드롭다운 목록에서 프로젝트를 선택하십시오.

  4. 인증 방법을 선택하십시오:

    • Github App(권장)

      GitHub 앱이 아직 설치되지 않은 경우 인증을 클릭하십시오. 인증은 한 번만 수행되며 여러 리포지토리 동기화에 재사용할 수 있습니다.

      GitHub 앱이 이미 설치된 경우 설치 관리를 클릭하여 대상 조직 또는 계정에 대한 앱 설치를 완료하십시오. 리포지토리 액세스는 조직 또는 계정 수준에서 관리되며 개별 GitHub 사용자와 연결되지 않습니다.

    • 개인 액세스 토큰

      API 범위가 포함된 개인 리포지토리 액세스 토큰을 제공하십시오.

      개인 액세스 토큰을 사용할 때 리포지토리 액세스 권한은 해당 토큰을 생성한 GitHub 사용자에게 달려 있습니다.

    • 자체 호스팅 인스턴스

      GitHub 자체 호스팅 API 엔드포인트와 API 범위가 포함된 개인 리포지토리 액세스 토큰을 제공하십시오.

    대상 리포지토리에 검증된(서명된) 커밋이 필요한 경우 GitHub 앱 인증 방법을 사용해야 합니다. 개인 액세스 토큰을 사용하여 푸시된 커밋은 서명되지 않으므로 다음 오류와 함께 동기화가 실패합니다: "저장소는 검증된(서명된) 커밋을 요구합니다."

  5. GitHub 앱을 사용하는 경우, 드롭다운 목록에서 연결된 GitHub 조직을 선택하십시오. 저장소 목록은 해당 선택에 따라 로드됩니다.

  6. 드롭다운 목록에서 GitHub repository를 선택하십시오.

  7. 가져오기(풀) 및 내보내기(푸시)를 수행할 Repository branch를 드롭다운 목록에서 선택하십시오. 이는 일반적으로 마스터 브랜치입니다.

  8. 선택적으로, 풀 리퀘스트에 대한 브랜치 이름을 제공하십시오. 비워두면 기본값인 phrase-translations로 브랜치가 생성됩니다.

  9. 선택적으로, 풀 리퀘스트에 대한 사용자 지정 Commit title을 최대 72자까지 제공하십시오.

    필드를 비워두면 기본 메시지인 Updated translations from Phrase가 유지됩니다. 설정되면, 사용자 지정 제목이 모든 내보내기 시 기본 커밋 메시지 및 풀 리퀘스트 제목을 대체합니다.

  10. Validate Configuration을 클릭하여 인증 설정 및 구성 파일이 올바른지 확인하십시오.

  11. 선택적으로 Import behavior 옵션을 선택하여 새 파일이나 업데이트된 파일이 프로젝트로 자동으로 가져와지는 시점을 결정하십시오.

  12. 저장을 클릭합니다.

    이제 프로젝트가 선택한 GitHub 저장소에 연결되어 목록에 추가되었습니다.

  13. (선택 사항) pencil icon을 클릭하여 통합 이름을 변경하십시오.

파일 가져오기

.phrase.yml configuration 파일 내에 푸시 명령이 올바르게 구성되었는지 확인하십시오. 푸시 옵션은 uploads API 엔드포인트와 동일합니다.

파일을 가져오려면:

  • Repo Syncs 페이지에서 프로젝트를 선택하고 Import Sync Import를 클릭하십시오.

    언어 파일(구성 파일에서 푸시 소스 항목으로 정의됨)이 프로젝트로 가져와집니다.

    기본 로케일이 존재해야 합니다.

    참고

    가져오기 시 문제가 발생하면 CLI 클라이언트를 사용하여 .phrase.yml 구성 파일을 로컬에서 테스트하고 오류 메시지가 있는지 확인하십시오.

    필요한 경우 Phrase 기술 지원팀에 문의하고 지원 요청에 .phrase.yml 구성 파일을 첨부하십시오.

파일 내보내기

.phrase.yml 구성 파일 내에 풀 명령이 올바르게 구성되었는지 확인하십시오. 풀 옵션(예: include_empty_translations 매개변수)은 locales download API 엔드포인트와 동일합니다.

파일을 내보내려면:

  1. Repo Syncs 페이지에서 프로젝트를 선택하고 내보내기 동기화 내보내기를 클릭하십시오.

    내보내기 창이 표시됩니다.

  2. PR 브랜치 필드에 대상 브랜치를 입력하십시오.

    저장소의 가장 최근 파일이 원하는 브랜치에 대한 새 풀 리퀘스트로 내보내집니다.

  3. 파일이 내보내지면 저장소에서 풀 리퀘스트를 병합하거나 닫을 수 있으며 브랜치를 삭제할 수 있습니다.

참고

내보내기 시 문제가 발생하면 CLI 클라이언트를 사용하여 .phrase.yml 구성 파일을 로컬에서 테스트하고 오류 메시지가 있는지 확인하십시오.

필요한 경우 Phrase 기술 지원팀에 문의하고 지원 요청에 .phrase.yml 구성 파일을 첨부하십시오.

기록

리포 동기화는 각 Phrase Strings 프로젝트에 대한 최신 가져오기 및 내보내기 기록을 보관합니다.

기록을 보려면:

  • Repo Syncs 페이지에서 프로젝트를 선택하고 기록 동기화 기록을 클릭하십시오.

    프로젝트에 대한 가져오기 및 내보내기 기록이 표시됩니다. 기록의 내보내기 항목에는 해당 병합 요청에 대한 링크가 포함되어 있습니다.

도움이 되었습니까?
★ ★ ★ ★ ★

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.