如何从GitLab项目获取特定提交

问题描述

我正在Visual Studio中使用Windows Forms C#开发(太新了)应用程序,我需要从GitLab项目中获取特定的提交。

我已经看到了许多有关GitHub的示例。我已经尝试过这种方式(不知道是否正确):

使用7位SHA1在特定提交时下载存储库:

 var Token = "xxxx";              
 var url = "http://{my_domain}/{user}/{project_name}/repository/archive/{shor_id}.zip";
 var path = @"C:\GitLab\My_Projects";

      try 
      {
         using (var client = new System.Net.Http.HttpClient())
         {
            var credentials = string.Format(System.Globalization.CultureInfo.InvariantCulture,"{0}:",Token);
            credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(credentials));
            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic",credentials);
            var contents = client.GetByteArrayAsync(url).Result;
            System.IO.File.WriteAllBytes(path,contents);
         }
      }
      catch (System.UnauthorizedAccessException)
      {
            backgroundWorker1.CancelAsync();
            Console.WriteLine("Problem downloading");
      }

但是我得到这个错误:

'System.UnauthorizedAccessException' in mscorlib.dll. Access denied to 'C:\GitLab\My_Projects'.

正如我之前所说,我是新来的,可能会说些愚蠢的事,对不起。 如果有人知道这个主题,我很乐意为您解释或帮助我解决这个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)