我正在考虑使用GitHub API在GitHub上创建另一个存储库的完全副本的新存储库的最佳方法。下载和上传每个文件似乎效率低下。如何使用GitHub API复制存储库?
1
A
回答
1
0
无论您是使用Github界面创建新的回购站还是使用Github RESTful API,都不允许在Github上重复复制。
一个存储库与一个唯一的名称是允许在用户帐户或组织之一。
1
使用Ruby和Octokit library你可以尝试服用点是这样的:
# Set Up
class GithubCopy
def self.copy_repo(args)
from = args.fetch(:from)
to = args.fetch(:to)
client = Octokit::Client.new(:access_token => 'your access token')
base_items = client.contents from
self.copy_items(base_items, from, to, client)
end
private
def self.copy_items(base_items, from, to, client)
base_items.each do |item|
content = client.content from, :path => item.path
if content.is_a?(Array)
self.copy_items(content, from, to, client)
else
client.create_contents to, content.path, "Creating #{content.name}", Base64.decode64(content.content)
end
end
end
end
# Usage
GithubCopy.copy_repo(from: 'repo1', to: 'repo2')
这假定repo1和repo2都存在,你的访问令牌有适当的权限都回购。如果你需要创建一个回购协议先使用此:
client = Octokit::Client.new(:access_token => settings.github_access_token)
client.create_repository 'some-repo', {organization: 'some-org'}
如果两个回购协议,你就会需要不同的名字在同一帐户下,作为@tmarwen说。一个缺点是这种方法可能需要一些时间,这取决于原始的回购规模。
相关问题
- 1. Github将存储库内容复制到另一个存储库
- 2. 如何使用github存储库
- 3. 恢复github存储库
- 4. 使用REST API在Bitbucket中复制或复制存储库
- 5. 如何使用GitHub API删除存储库?
- 6. 如何通过github API在github中创建存储库?
- 7. 如何从GitHub复制项目,但使用Bitbucket作为远程存储库
- 8. Github存储库
- 9. Github GraphQL API:我如何收集特定用户的存储库?
- 10. Github API列表来源储存库
- 11. 使用GIT存储库同步复制的存储库
- 12. github:存储库与存储库
- 13. 如何将github存储库的内容添加到另一个github存储库?
- 14. 使用github搜索api而不指定存储库或组织
- 15. 使用github API合并两个存储库
- 16. GitHub API - 查找存储库正在使用的语言
- 17. 使用GitHub存储库的Hudson问题
- 18. 如何通过API重命名GitHub存储库?
- 19. GitHub Api:如何获取存储库的根目录:tree_sha?
- 20. 如何为github存储库设置CIAbot
- 21. 如何在GitHub上归档存储库
- 22. 如何重命名GitHub存储库?
- 23. 如何在GitHub上管理储存库
- 24. 如何删除GitHub上的存储库?
- 25. 如何使用PHP api将GitHub存储库下载为归档文件?
- 26. 如何使用AJAX在GitHub web API上的存储库上创建webhook?
- 27. 如何使用github graphql v4 api查询组织中的所有存储库?
- 28. 将GitHub存储库复制/链接到一个文件夹
- 29. 设置GitHub镜像存储库而不复制搜索结果
- 30. 如何恢复github存储库中的完整源代码
这将工作,但我可能会想复制同一个存储库不止一次,似乎并不奏效。也许我做错了什么? – 2014-10-20 13:17:21
@DekelAdler不,你没有做错任何事情:你可以创建每个回购只有一个分叉。 – VonC 2014-10-20 13:18:15