如何从命令行在组织下创建GitHub存储库?

时间:2016-11-08 21:02:52

标签: git curl github command-line github-api

我的理解是,要在命令行上创建个人存储库,使用GitHub v3 API,可以this(适当地替换USERNAME和REPONAME):

using System;
using System.Diagnostics;

namespace runGnomeTerminal
{
    class MainClass
    {
        public static void ExecuteCommand(string command)
        {
            Process proc = new System.Diagnostics.Process ();
            proc.StartInfo.FileName = "/bin/bash";
            proc.StartInfo.Arguments = "-c \" " + command + " \"";
            proc.StartInfo.UseShellExecute = false; 
            proc.StartInfo.RedirectStandardOutput = true;
            proc.Start ();

            while (!proc.StandardOutput.EndOfStream) {
                Console.WriteLine (proc.StandardOutput.ReadLine ());
            }
        }

        public static void Main (string[] args)
        {
            ExecuteCommand("gnome-terminal -x bash -ic 'cd $HOME; ls; bash'");
        }


    }
}

然后用户输入他们的用户名和密码,GitHub将在“github.com/USERNAME/REPONAME”创建一个新的空存储库。

我的问题是,如何通过命令行创建组织拥有的存储库?我尝试用组织的名称替换USERNAME,它提示我输入“主机密码”。我拥有该组织所以我输入了密码,但我得到了“凭据不好”。此方法对组织拥有的存储库不起作用吗?或者我做错了什么?

3 个答案:

答案 0 :(得分:3)

仅为完整性:Git Api v3的示例:

curl -u USERNAME https://api.github.com/orgs/ORGNAME/repos -d '{"name":"NAME_OF_REPO", "description":"SOME_DESCRIPTION", "private": true, "has_issues": true, "has_projects": true, "has_wiki":false }'

答案 1 :(得分:2)

要在组织下创建存储库,您应该将请求发送到POST /orgs/:org/repos端点而不是/user/repos。您的用户不需要创建用户存储库所需的任何额外权限或范围,但该用户必须是:org的成员:

  

创建

     

为经过身份验证的用户创建新存储库。 (目前尚未启用集成)

     

POST /user/repos

     

在此组织中创建新存储库。经过身份验证的用户必须是指定组织的成员。

     

POST /orgs/:org/repos

(来自https://developer.github.com/v3/repos/#create

答案 2 :(得分:0)

有了新的github cli,它很简单:

gh repo create ORGNAME/REPONAME