【问题标题】:Github v3 API - create a REPOGithub v3 API - 创建一个 REPO
【发布时间】:2011-12-13 19:34:36
【问题描述】:

我正在尝试使用 Github v3 API - 我已经实现了所需的 OAuth 流程并且效果很好。

现在我正在尝试一些 Repos API 端点 (http://developer.github.com/v3/repos/)。

到目前为止,我可以使用以下命令获取我的存储库列表:GET /user/repos 但是,当我尝试使用 POST /user/repos 创建存储库时,我得到了 404。

有什么想法我可能做错了吗?

朱伯特

【问题讨论】:

    标签: github github-api


    【解决方案1】:

    您能告诉我们您是如何完成 HTTP 请求的吗? 404 听起来您可能使用了错误的路径。但要给出可靠的答案而不是胡乱猜测,我们需要查看您的请求,包括您如何发送令牌,只需使用“xxx”或其他内容进行屏蔽即可。

    与此同时,我将向您展示一个有效的示例请求:

    curl -XPOST -H 'Authorization: token S3CR3T' https://api.github.com/user/repos -d '{"name":"my-new-repo","description":"my new repo description"}'

    您当然需要替换 OAuth 令牌:S3CR3T

    【讨论】:

    • 这里不应该包含用户名吗?
    【解决方案2】:

    我遇到了同样的问题。您使用 oauth 访问令牌获得 404 的原因是,当您授权给 github 时,您还需要另外传递您想要的范围。例如,在标题中您应该看到“X-OAuth-Scopes: repo, user”,这意味着该用户具有对其配置文件和存储库的读/写访问权限。一旦你设置了正确的范围,你应该能够很好地执行 POST/PUT 请求。

    查看您是否拥有正确的权限。您可以执行以下操作。用您的访问令牌替换 XXXXXXX。

    curl -I https://api.github.com/user?access_token=XXXXXXXX
    

    【讨论】:

    • 这对我有帮助。我正在尝试使用范围“public_repo”,但这不起作用。切换到范围“repo”确实有效。我不需要询问“用户”。
    【解决方案3】:

    此脚本允许您将令牌和项目名称作为变量读入,以便您可以在脚本中使用它

    #!/usr/bin/env bash -u
    #
    
    TOKEN=`cat token_file`
    PROJECT=myproject
    
    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d '{"name": "'"$PROJECT"'"}' https://api.github.com/user/repos?access_token=$TOKEN
    

    【讨论】:

    • 我创建了一个基于这个例子的shell脚本,并将几个Subversion项目迁移到Github gist.github.com/4062655
    【解决方案4】:

    要以用户身份创建存储库,您可以使用个人访问令牌和基本身份验证,当您在命令行上乱搞并启用 2FA 时,这会更简单。

    curl -d '{"name":"test"}' -u githubuser:personaccesstoken https://api.github.com/user/repos
    

    在此处创建个人访问令牌 https://github.com/settings/tokens 并确保它具有“repo”范围。

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 2012-08-01
      • 2013-01-22
      • 1970-01-01
      • 2014-03-19
      • 2013-10-27
      • 2019-06-24
      相关资源
      最近更新 更多