【发布时间】:2021-05-24 12:00:00
【问题描述】:
我正在尝试用蛋糕推动项目的变化。这是我的代码
[TaskName("GitPush")]
public sealed class GitPushTask : FrostingTask<BuildContext>
{
public override void Run(BuildContext context)
{
context.GitAddAll(context.WorkDirectoryPath);
context.GitCommit(context.WorkDirectoryPath, "user surname", "usersurname@hellow.com", "Testing Commit");
context.GitPush(context.WorkDirectoryPath, context.GitUsername, context.GitPassword);
}
}
GitAddAll 和 GitCommit 工作正常,但在 GitPush 中我收到此错误:
An error occurred when executing task 'GitPush'.
Error: LibGit2Sharp.LibGit2SharpException: No error message has been provided by the native library
at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result)
at LibGit2Sharp.Core.Proxy.git_remote_push(RemoteHandle remote, IEnumerable`1 refSpecs, GitPushOptions opts)
at LibGit2Sharp.Network.Push(Remote remote, IEnumerable`1 pushRefSpecs, PushOptions pushOptions)
at LibGit2Sharp.Network.Push(Remote remote, String pushRefSpec, PushOptions pushOptions)
at LibGit2Sharp.Network.Push(IEnumerable`1 branches, PushOptions pushOptions)
at Cake.Git.GitAliases.<>c__DisplayClass32_0.<GitPush>b__0(Repository repository)
at Cake.Git.Extensions.RepositoryExtensions.UseRepository(ICakeContext context, DirectoryPath repositoryPath, Action`1 repositoryAction)
at Cake.Git.GitAliases.GitPush(ICakeContext context, DirectoryPath repositoryDirectoryPath, String username, String password)
at GitPushTask.Run(BuildContext context) in C:\Users\jmedingr\Desktop\MonEES.CICD.Cake\cake\Program.cs:line 128
at Cake.Frosting.FrostingTask`1.Cake.Frosting.IFrostingTask.RunAsync(ICakeContext context)
at Cake.Core.CakeTask.Execute(ICakeContext context)
at Cake.Core.DefaultExecutionStrategy.ExecuteAsync(CakeTask task, ICakeContext context)
at Cake.Core.CakeEngine.ExecuteTaskAsync(ICakeContext context, IExecutionStrategy strategy, Stopwatch stopWatch, CakeTask task, CakeReport report)
at Cake.Core.CakeEngine.ExecuteTaskAsync(ICakeContext context, IExecutionStrategy strategy, Stopwatch stopWatch, CakeTask task, CakeReport report)
at Cake.Core.CakeEngine.ExecuteTaskAsync(ICakeContext context, IExecutionStrategy strategy, Stopwatch stopWatch, CakeTask task, CakeReport report)
at Cake.Core.CakeEngine.RunTask(ICakeContext context, IExecutionStrategy strategy, CakeTask task, String target, Stopwatch stopWatch, CakeReport report)
at Cake.Core.CakeEngine.RunTargetAsync(ICakeContext context, IExecutionStrategy strategy, ExecutionSettings settings)
at Cake.Cli.BuildScriptHost`1.RunTargetAsync(String target)
at Cake.Core.Scripting.ScriptHost.RunTarget(String target)
at Cake.Frosting.Internal.FrostingEngine`1.Run(String target)
at Cake.Frosting.Internal.DefaultCommand.Execute(CommandContext context, DefaultCommandSettings settings)
我猜这个错误是因为我在 Azure Repo 上进行身份验证的方式存在问题,但我找不到方法或添加到 azureRepo 的工作查找...
【问题讨论】:
-
是否添加了提交?您是否使用正确密码的访问令牌?是远程 https 还是 ssh?
-
好的,在 GitAddAll 和 GitCommit 上添加了提交。我正在使用用户名和密码,只是……我不确定在 Azure Repos 上配置访问令牌。
-
您需要将 PAT 与 Azure DevOps 一起使用,它不会接受密码。
-
谢谢回答,devlead...我如何使用 PAT?
-
你用它代替密码
标签: cakebuild azure-repos