Cómo empujar Tag a Bitbucket Git Repository en Bamboo from Cake build task?

Estoy usando el siguiente código para insert Tag en el repository de Git

#addin "Cake.Git" using LibGit2Sharp; var solutionFolder = "./"; var versionTag = "someTag"; Task("Default") .Does(() => { var remoteRepository = EnvironmentVariable("bamboo_planRepository_repositoryUrl"); var repositoryRevision = EnvironmentVariable("bamboo_planRepository_revision"); var absolutePath = MakeAbsolute(Directory(solutionFolder)); var repoName = "central"; //LibGit2Sharp add remote using (var repo = new Repository(absolutePath.FullPath)) { repo.Network.Remotes.Add(repoName, remoteRepository); } GitTag(solutionFolder, versionTag, repositoryRevision); GitPushRef(solutionFolder, gitUser, gitPassword, repoName, versionTag); } }); 

Atrapado en el próximo problema: porque nuestro bambú está configurado para usar el protocolo SSH, y Cake.Git (LibGit2Sharp) no lo admite en la actualidad al recibir el siguiente error

Error: protocolo URL no soportado

Gracias

Un poco hacky pero funciona, actualizará la respuesta cuando encuentre un mejor enfoque.

Hecho en base a cómo labelr un git repo en una construcción de bambú.

Cake.Git actualmente no es compatible con la adición de repository, pero bajo el capó usando LibGit2Sharp por lo que acaba de agregar el espacio de nombres LibGit2Sharp al código.

La cuestión principal es que Cake.Git (LibGit2Sharp) aún no es compatible con SSH (Problema en GitHub ¿Es posible utilizar Cake.Git con SSH ), como workraound llamando a git push través de cmd? Cómo ejecutar el command cmd

 #addin "Cake.Git" using LibGit2Sharp; var solutionFolder = "./"; var versionTag = "someTag"; var remoteRepository = EnvironmentVariable("bamboo_planRepository_repositoryUrl"); var repositoryRevision = EnvironmentVariable("bamboo_planRepository_revision"); Task("Default") .Does(() => { var absolutePath = MakeAbsolute(Directory(solutionFolder)); var repoName = "central"; //LibGit2Sharp add remote using (var repo = new Repository(absolutePath.FullPath)) { repo.Network.Remotes.Add(repoName, remoteRepository); } GitTag(solutionFolder, versionTag, repositoryRevision); ExecuteCommand($"git push {repoName} {versionTag}"); } }); void ExecuteCommand(string command) { Information(command); int exitCode; System.Diagnostics.ProcessStartInfo processInfo; System.Diagnostics.Process process; processInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " + command); processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; // *** Redirect the output *** processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; process = System.Diagnostics.Process.Start(processInfo); process.OutputDataReceived += (object sender, System.Diagnostics.DataReceivedEventArgs e) => Information("output>>" + e.Data); process.BeginOutputReadLine(); process.ErrorDataReceived += (object sender, System.Diagnostics.DataReceivedEventArgs e) => Information("error>>" + e.Data); process.BeginErrorReadLine(); process.WaitForExit(); Information($"ExitCode: {process.ExitCode}"); process.Close(); } 

Sospecho que el problema es el debido uso de clones poco profundos, que están habilitados por defecto.

Los clones poco profundos permiten a Bamboo realizar clones con un historial truncado a un número específico de revisiones. Esto debería boost la velocidad de las comprobaciones de código iniciales, sin embargo, si su compilation depende del historial de repository completo, le recomendamos que no use esta opción.

Las operaciones de GIT en general necesitan el repository completo para funcionar de manera confiable.