【问题标题】:How to create a new repository with PyGithub如何使用 PyGithub 创建新的存储库
【发布时间】:2015-04-24 20:32:05
【问题描述】:

如何在 Github 上使用 PyGithub 创建新的存储库? 特别是我想知道如何使用create_repo 方法?如何生成AuthenticatedUser

【问题讨论】:

  • 您是否尝试在本地创建新的 git 存储库?还是 github 上的新存储库? PyGithub 执行后者,而 pygit 执行前者。两者似乎都有很好的在线记录。
  • 我正在尝试在 Github 上创建一个存储库。
  • @larsks 你能否举个例子,说明如何使用 PyGithub 在 GitHub 上创建一个存储库?

标签: python git github


【解决方案1】:

我的问题的解决方案如下

g = Github(token)
user = g.get_user()
repo = user.create_repo(full_name)

【讨论】:

    【解决方案2】:

    我偶然发现了这个问题,试图弄清楚如何诱使 PyGithub 在组织内创建存储库,并认为它在这里是相关的。

    g = Github(token)
    organization = g.get_organization("org-name")
    organization.create_repo(
            name,
            allow_rebase_merge=True,
            auto_init=False,
            description=description,
            has_issues=True,
            has_projects=False,
            has_wiki=False,
            private=True,
           )
    

    完整的关键字参数集可以在这里找到:https://developer.github.com/v3/repos/#input

    【讨论】:

      【解决方案3】:

      当我试图弄清楚如何创建一个 AuthenticatedUser 对象时,我偶然发现了这个问题。当你将任何参数传递给 get_user 时,你会得到一个 NamedUser,如果你不给它任何参数,你会得到与创建 Github 对象时使用的凭据相对应的 AuthenticatedUser。

      作为一个最小的例子,如下:

      from github import Github
      g = Github("my GitHub API token")
      
      user = g.get_user('myname')
      print user
      authed = g.get_user()
      print authed
      

      产量

      <github.NamedUser.NamedUser object at 0x7f95d5eeed10>
      <github.AuthenticatedUser.AuthenticatedUser object at 0x7f95d5684410>
      

      拥有 AuthenticatedUser 对象后,您可以按照您链接的文档中的说明调用 CreateRepo。

      【讨论】:

      • 这是一个更好的答案,因为它解释了不同的调用返回什么,这应该是接受的答案@ustroetz
      • 对于 create_repo() 命令,你是在用户对象上调用它吗?还是您创建一个组织?
      • g = Github(username, password) gituser = g.get_user(username) repo = gituser.create_repo(name) 绝对不适合我。
      【解决方案4】:

      要创建存储库,您可以使用 GitPython。 Here is a tutorial 关于如何启动代表。很简单:

      import git
      
      repo_dir = os.path.join(rw_dir, 'my-new-repo')
      file_name = os.path.join(repo_dir, 'new-file')
      
      r = git.Repo.init(repo_dir)
      

      您也可以使用Dulwich 创建仓库:

      from dulwich.repo import Repo
      x = Repo.init("/path/to/new/repo")
      

      完成后,您可以使用PyGithub 访问存储库(或坚持使用上面提供的 API):

      from github import Github
      
      g = Github("user", "password")
      for repo in g.get_user().get_repos():
          print repo.name
      

      【讨论】:

      【解决方案5】:

      问题的答案:

      通过令牌登录:

      g = Github(token)
      
      user = g.get_user()
      
      repo = user.create_repo(repo_name)
      
      print(repo)#To 
      

      通过用户名和密码登录:

      g = Github("user", "password")
      
      user = g.get_user()
      
      repo = user.create_repo(repo_name)
      
      print(repo) 
      

      具有自定义主机名的 Github Enterprise。

      登录有组织的企业 GitHub

      g = Github(base_url="https://{hostname}/api/v3", login_or_token="token")
      
      org = g.get_organization("org name")
      
      repo = org.create_repo(repo_name)
      

      【讨论】:

        猜你喜欢
        • 2018-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-04
        • 1970-01-01
        • 1970-01-01
        • 2017-08-09
        相关资源
        最近更新 更多