我的理解是,要在命令行上创建个人存储库,使用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,它提示我输入“主机密码”。我拥有该组织所以我输入了密码,但我得到了“凭据不好”。此方法对组织拥有的存储库不起作用吗?或者我做错了什么?
答案 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
答案 2 :(得分:0)
有了新的github cli,它很简单:
gh repo create ORGNAME/REPONAME