ImageRef GetRepository() { var startIndex = ImageName.IndexOf('/'); var imageName = ImageName.Trim(); var endIndex = imageName.LastIndexOf(':'); var registry = imageName.Substring(0, startIndex); var repoName = imageName.Substring(startIndex + 1, endIndex - startIndex - 1); var tag = imageName.Substring(endIndex + 1); //Log.LogMessage(MessageImportance.High, $"{ImageName} {startIndex} {endIndex} {registry} {repoName} {tag}"); return(new ImageRef { Registry = registry, Repository = repoName, Tag = tag }); }
private Task <bool> ExecuteAsync() { var args = new[] { "push", "-u", UserName, "-p", Password, ImageName, PublishDir }; var psi = new ProcessStartInfo { FileName = OrasExe, Arguments = ArgumentEscaper.EscapeAndConcatenate(args), RedirectStandardOutput = true, RedirectStandardError = true }; using (var proc = Process.Start(psi)) { proc.WaitForExit(); Log.LogMessage(MessageImportance.High, proc.StandardError.ReadToEnd()); var bufferedOutput = proc.StandardOutput.ReadToEnd(); Log.LogMessage(MessageImportance.High, bufferedOutput); var shaLine = bufferedOutput.Split('\n').Where(s => s.Contains("Digest: sha256:")).FirstOrDefault(); var layerSha = shaLine.Substring(shaLine.IndexOf("sha256")); var registryName = ImageName.Split('/').First(); var repoName = ImageName.Substring(ImageName.IndexOf('/') + 1).Split(':').First(); var tagName = ImageName.Split(':').Last(); Log.LogMessage(MessageImportance.High, registryName); Log.LogMessage(MessageImportance.High, repoName); Log.LogMessage(MessageImportance.High, tagName); } return(Task.FromResult(true)); }