Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git Octokit.net创建新存储库_Git_Repository_Octokit.net - Fatal编程技术网

Git Octokit.net创建新存储库

Git Octokit.net创建新存储库,git,repository,octokit.net,Git,Repository,Octokit.net,我在使用Octokit.net创建新存储库时遇到问题 这是我的代码: public async Task stvoriNovi(FormCollection collection) { string name = collection.Get("name"); NewRepository newRepo = new NewRepository(name); newRepo.AutoInit = true;

我在使用Octokit.net创建新存储库时遇到问题

这是我的代码:

public async Task stvoriNovi(FormCollection collection)
        {
            string name = collection.Get("name");
            NewRepository newRepo = new NewRepository(name);
            newRepo.AutoInit = true;

            var accessToken = Session["OAuthToken"] as string;
            if (accessToken != null)
            {
                client.Credentials = new Credentials(accessToken);
            }

            await client.Repository.Create(newRepo);             
        }

我已经设置了断点,在那里我看到一切正常。从这里可以看到。当我让程序运行创建新存储库的代码时,我的结果是:我得到了ctokit.NotFoundException:notfound。我尝试了一切,每次都出错。我做错了什么?

我认为在等待客户.Respository.Create(newRepo)的第60行中有一个内部错误 尝试使用basicAuth创建一个客户端,这是一个具有MIT许可证的存储库。 使用try-catch,查看错误消息(如果有)

使用Octokit;
//认证
var basicAuth=新凭证(所有者、密码);
var Client=new GitHubClient(new ProductHeaderValue(“我的酷应用”);
Client.Credentials=basicAuth;
//创造
试一试{
var repository=NewRepository(RepositoryName){
AutoInit=false,
Description=“”,
LicenseTemplate=“mit”,
私有=假
};
var context=Client.Repository.Create(Repository);
RespositoryGitHub=context.Result;
WriteLine($“已创建响应{RepositoryName}”);
}捕获(聚合异常e){
Console.WriteLine($“E:由于某种原因,无法创建存储库{RepositoryName}。它可能已经存在。{E.Message}”);
}
}
如果存储库已经存在,则可以删除旧的存储库。警告,此代码肯定在未经确认的情况下删除存储库

//删除以前的存储库(如果存在)
var contextDelete=Client.Repository.Get(Owner,RepositoryName).Result;
var repositoryID=contextDelete.Id;
var context=Client.Repository.Delete(repositoryID);
WriteLine($“respository{RepositoryName}已被删除。”);

我会稍微更改@pushStack的答案,
Repository.Create
是异步的,因此需要作为任务运行:

private void OctoKitRepositoryCreation(string sUsername, string sPassword, string sRepoName)
{
    // Authentification
    var basicAuth = new Credentials(sUsername, sPassword);
    var Client = new GitHubClient(new ProductHeaderValue("my-cool-app"));
    Client.Credentials = basicAuth;

    // Create 
    try
    {
        var repository = new NewRepository(sRepoName)
        {
            AutoInit = false,
            Description = "",
            LicenseTemplate = "mit",
            Private = true
        };
        var newRepository = System.Threading.Tasks.Task.Run(async () => await Client.Repository.Create(repository)).GetAwaiter().GetResult();

        Console.WriteLine("The respository {0} was created.", newRepository.FullName);
    }
    catch (AggregateException e)
    {
        Console.WriteLine("Error occured. {0}", e.Message);
    }
}

我的直觉是OAuth令牌没有
public\u repo
repo
的权限您是对的。我忘了把溶液放在这里。