{"meta":{"title":"프로그래밍 방식으로 리포지토리 가져오기","intro":"GitHub로 리포지토리를 프로그래밍 방식으로 가져올 수 있습니다.","product":"마이그레이션","breadcrumbs":[{"href":"/ko/migrations","title":"마이그레이션"},{"href":"/ko/migrations/overview","title":"개요"},{"href":"/ko/migrations/overview/programmatically-importing-repositories","title":"프로그래매틱 리포지토리 가져오기"}],"documentType":"article"},"body":"# 프로그래밍 방식으로 리포지토리 가져오기\n\nGitHub로 리포지토리를 프로그래밍 방식으로 가져올 수 있습니다.\n\n## 리포지토리의 프로그래매틱 가져오기 정보\n\n다음 가이드에서는 Git 리포지 GitHub토리의 \"원본 및 기록\" 마이그레이션을 프로그래밍 방식으로 실행하는 방법을 알아볼 수 있습니다. 리포지토리가 저장되는 위치에 따라 다양한 옵션을 사용할 수 있습니다.\n\n“원본 및 기록”과 기타 유형의 마이그레이션에 대한 자세한 내용은 [GitHub로 마이그레이션 계획](/ko/migrations/overview/planning-your-migration-to-github)을(를) 참조하세요.\n\n\"원본 리포지토리\"라는 용어는 가져오려는 리포지토리를 의미하며, \"가져온 리포지토리\"는 만드는 새 리포지토리를 의미합니다.\n\n## 포크 사용\n\n원본 리포지토리가 있는 GitHub경우 리포지토리를 가져오는 대신 포크를 사용할 수 있습니다. 포크는 \"업스트림\" 리포지토리리라고도 하는 원본 리포지토리에 영향을 미치지 않고 프로젝트를 변경하도록 해줍니다.\n\n리포지토리를 포크한 후에는 다음을 수행할 수 있습니다.\n\n* 업스트림 리포지토리에서 업데이트를 가져와 포크를 최신 상태로 유지\n* 포크에서 끌어오기 요청을 생성하여 원래 프로젝트에 다시 기여하세요. 자세한 내용은 [포크들](/ko/pull-requests/reference/forks)을(를) 참조하세요.\n\nREST API를 사용하여 프로그래밍 방식으로 리포지토리를 포크할 수 있습니다. 자세한 내용은 [포크에 대한 REST API 엔드포인트](/ko/rest/repos/forks)을(를) 참조하세요.\n\n다음 기준 중 하나를 사용 사례가 충족한다면, 직접 리포지토리를 가져오는 대신에 포킹을 사용할 수 없습니다.\n\n* 가져온 리포지토리를 원본 리포지토리와 동일한 사용자 또는 조직에서 소유하려고 합니다.\n* 한 사용자 또는 조직이 동일한 원본 리포지토리를 여러 번 가져올 수 있도록 하려고 합니다.\n\n## 리포지토리 템플릿 사용\n\n원본 리포지토리가 있는 GitHub경우 리포지토리 템플릿을 사용할 수 있습니다.\n기존 리포지토리에서 템플릿을 만들 수 있습니다. 템플릿 리포지토리에 액세스할 수 있는 모든 사용자는 동일한 디렉터리 구조, 분기 및 파일을 사용하여 해당 템플릿을 기반으로 새 리포지토리를 만들 수 있습니다. 자세한 내용은 [템플릿 리포지토리 만들기](/ko/repositories/creating-and-managing-repositories/creating-a-template-repository)을 참조하세요.\n\n리포지토리 템플릿을 사용하려면 템플릿인 기존 리포지토리에 대한 읽기 권한이 있거나 템플릿을 만들 수 있는 액세스 권한이 있어야 합니다.\n\nREST API를 사용하여 리포지토리 템플릿에서 리포지토리를 프로그래밍 방식으로 만들 수 있습니다. 자세한 내용은 [리포지토리에 대한 REST API 엔드포인트](/ko/rest/repos/repos)을(를) 참조하세요.\n\n## GitHub Enterprise Importer 사용하기\n\n원본 리포지토리가 호스트되는 GitHub경우 , GitHub Enterprise ServerAzure DevOps Services, Bitbucket Server 또는 Bitbucket Data Center를 사용하여 GitHub Enterprise Importer리포지토리를 가져올 수 있습니다. 자세한 내용은 [GitHub Enterprise Importer 정보](/ko/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer)을(를) 참조하세요.\n\n소스 및 버전 제어 기록 외에도 GitHub Enterprise Importer는 이슈, 끌어오기 요청, 설정 등을 마이그레이션합니다.\n\n사용 GitHub Enterprise Importer하려면 원본 리포지토리에 대한 관리자 액세스 권한이 있어야 합니다.\n\nGraphQL API를 사용하여 GitHub Enterprise Importer로 리포지토리를 프로그래밍 방식으로 가져올 수 있습니다.\n\n## Git CLI 사용\n\n원본 리포지토리가 Git 리포지토리인 경우 코드에서 프로그래밍 방식으로 Git CLI를 호출할 수 있습니다.\nGitHub의 REST API를 사용하여 프로그래밍 방식으로 리포지토리를 생성한 다음, `git clone`, `git push`와 같은 명령을 사용하여 리포지토리를 GitHub로 가져올 수 있습니다.\n\nGit CLI를 호출하는 방법은 코드의 언어에 따라 다릅니다. 예를 들어 Node.js에서 `child_process` 모듈을 사용하거나 Ruby에서 `open3` 모듈을 사용할 수 있습니다. 자세한 내용은 Node.js 설명서 또는 [ruby/open3 리포지토리](https://github.com/ruby/open3)의 GitHub[자식 프로세스를](https://nodejs.org/api/child_process.html) 참조하세요.\n\nGit CLI를 사용하려면 애플리케이션을 호스트하는 시스템에 Git을 설치할 수 있는 액세스 권한이 있어야 합니다. 자세한 내용은 Gradle 설명서의 [시작 - Git 설치](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)를 참조하세요.\n\n## GitHub CLI 사용하기\n\n원본 리포지토리가 Git 리포지토리인 경우 코드에서 프로그래밍 방식으로 호출 GitHub CLI 할 수 있습니다. 리포지토리를 만드는 데 `gh repo create`을(를) 사용할 수 있습니다. 자세한 내용은 [GitHub CLI 정보](/ko/github-cli/github-cli/about-github-cli)을(를) 참조하세요.\n\n## 추가 참고 자료\n\n* [리포지토리에 대한 REST API 엔드포인트](/ko/rest/repos/repos)"}