2015-07-07 2 views
0

Может ли кто-нибудь помочь мне нажать новый тэг, используя Lib2GitSharp? Ниже кода создает тег правильно, но когда я нажимаю тег дает мне «Не удалось выполнить запрос с STATIS код: 401»Как нажимать вновь созданный тег, используя Lib2Gitsharp

public static bool createTag(string tag,string localRepoPath) 
    { 
     var repo = new Repository(localRepoPath); 
     if (repo == null) 
     { 
      Console.WriteLine(DateTime.Now + "No repository exists in " + localRepoPath); 
      return false; 
     } 
     Tag t = repo.ApplyTag(tag); 
     if (t == null) 
     { 
      Console.WriteLine(DateTime.Now + "Could not create tag :" + tag); 
      return false; 
     } 
     else 
      Console.WriteLine(DateTime.Now + "Tag has been created successfully :" + tag); 
     return true; 
    } 

    //push the tags 
    public static bool pushTags(string tag, string localRepoPath) 
    { 
     try 
     { 
      using (Repository repo = new Repository(localRepoPath)) 
      { 
       Remote remote = repo.Network.Remotes["origin"]; 
       repo.Network.Push(remote, "refs/tags/test1", "refs/tags/test1"); 

      } 
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine(DateTime.Now + "----#Errors in push tag " + tag + " " + ex.Message); 
      return false; 
     } 

     return true; 
    } 
+1

Код состояния 401 означает [Несанкционированное] (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error). У вас есть запись perms для этого удаленного репо? Передача надлежащих кредитов? – SushiHangover

+0

Я не пропускал кредиты. после этого избавился от ошибки 401. Спасибо RobertN, это помогло. – Shr3y1s

ответ

2

Этот код работает!

public static bool createTag(string tag,string localRepoPath) 
    { 
     var repo = new Repository(localRepoPath); 
     if (repo == null) 
     { 
      Console.WriteLine(DateTime.Now + "No repository exists in " + localRepoPath); 
      return false; 
     } 
     Tag t = repo.ApplyTag(tag); 
     if (t == null) 
     { 
      Console.WriteLine(DateTime.Now + "Could not create tag :" + tag); 
      return false; 
     } 
     else 
      Console.WriteLine(DateTime.Now + "Tag has been created successfully :" + tag); 
     return true; 
    } 

    //push the tags 
    public static bool pushTags(string tag, string localRepoPath) 
    { 
     try 
     { 
      Credentials creds = new UsernamePasswordCredentials() 
      { 
       Username = USERNAME, 
       Password = PASSWORD 
      }; 
      CredentialsHandler ccd = (url, usernameFromUrl, types) => creds; 
      PushOptions options = new PushOptions { CredentialsProvider = ccd }; 
      string rfspec = "refs/tags/" + tag; 
      using (Repository repo = new Repository(localRepoPath)) 
      { 
       Remote remote = repo.Network.Remotes["origin"]; 
       repo.Network.Push(remote, rfspec, rfspec, options); 

      } 
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine(DateTime.Now + "----#Errors in Push tag " + tag + " " + ex.Message); 
      return false; 
     } 

     return true; 
    }