首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Octokit.net创建新存储库

Octokit.net创建新存储库
EN

Stack Overflow用户
提问于 2015-06-15 19:08:25
回答 2查看 710关注 0票数 3

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

这是我的代码:

代码语言:javascript
复制
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);             
        }

我设置了断点,在那里我看到一切都是正常的。可以在这里看到的http://prntscr.com/7h62iq。当我让程序运行创建新存储库的代码时,我得到的结果是:http://prntscr.com/7h63fz I get ctokit.NotFoundException: Not Found。我已经尝试了所有方法,每次都会出现错误。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2017-07-23 17:35:48

我认为在await client.Respository.Create(newRepo); Try this to create a client with basicAuth,一个拥有麻省理工学院许可证的存储库的60行中有一个内部错误。并使用try catch查看error.Message (如果有的话)。

代码语言:javascript
复制
using Octokit;

// Authentification
var basicAuth = new Credentials(Owner, Password);
var Client = new GitHubClient(new ProductHeaderValue("my-cool-app"));
Client.Credentials = basicAuth;

// Create 
try {
    var repository = new NewRepository(RepositoryName) {
        AutoInit = false,
        Description = "",
        LicenseTemplate = "mit",
        Private = false
    };
    var context = Client.Repository.Create(repository);
    RespositoryGitHub = context.Result;
    Console.WriteLine($"The respository {RepositoryName} was created.");
} catch (AggregateException e) {
    Console.WriteLine($"E: For some reason, the repository {RepositoryName}  can't be created. It may already exist. {e.Message}");
    }
}

如果存储库已经存在,您可以删除旧存储库。警告,此代码在未确认的情况下删除存储库。

代码语言:javascript
复制
// Remove the previous repository if exists
var contextDelete = Client.Repository.Get(Owner, RepositoryName).Result;
var repositoryID = contextDelete.Id;
var context = Client.Repository.Delete(repositoryID);
Console.WriteLine($"The respository {RepositoryName} was deleted.");
票数 2
EN

Stack Overflow用户

发布于 2018-10-25 06:42:13

我稍微修改了@pushStack的答案,Repository.Create是异步的,所以需要作为任务运行:

代码语言:javascript
复制
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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30843631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档