2015-06-15 2 views
2

У меня возникла проблема с созданием нового репозитория с Octokit.net.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);    
     } 

Я поставил точки останова и там я вижу, что все в порядке. http://prntscr.com/7h62iq который можно увидеть здесь. И когда я позволяю программе запускать код для создания нового репозитория, это мой результат: http://prntscr.com/7h63fz Я получаю ctokit.NotFoundException: Not Found. Я пробовал все и каждый раз возникала ошибка. Что я делаю не так?

+1

Мое шестое чувство, что маркер OAuth не имеет разрешения на 'public_repo' или' repo' –

+0

Вы правы. Я забыл поставить решение здесь. – Nodios

ответ

0

Я думаю, что в строке есть внутренняя ошибка. at wait client.Respository.Create (newRepo); Попробуйте создать клиент с basicAuth, репозиторий с лицензией MIT. И с уловкой try, см. Ошибку. Сообщение, если оно есть.

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}"); 
    } 
} 

Если хранилище уже существует, вы можете удалить старый. Предупреждение, этот код определенно удалите репозиторий без подтверждения.

// 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.");