private static CredentialsHandler getCredentialsHandler(Settings.Objects.Details details) { return(new CredentialsHandler((url, user, cred) => new SshUserKeyCredentials() { PrivateKey = details.PrivriteKeyLocation, PublicKey = details.PublicKeyLocation, Passphrase = string.Empty, Username = "******" })); }
public static bool BuildProject(Objects.BuildItem buildItem, Settings.Objects.Details settingsDetails) { var projectLocation = settingsDetails.SourcesLocation + buildItem.Name; var outputLocation = settingsDetails.BuildLocation + buildItem.Name; var solutionLocation = projectLocation + "\\" + buildItem.PathToSln; if (Directory.Exists(outputLocation) == false) { Directory.CreateDirectory(outputLocation); } //InstallNuGetPackages(solutionLocation); FileLogger fileLogger = new FileLogger() { Verbosity = LoggerVerbosity.Detailed, ShowSummary = true, SkipProjectStartedText = true }; BuildParameters param = new BuildParameters() { MaxNodeCount = Environment.ProcessorCount, Loggers = new[] { fileLogger }, }; Dictionary <string, string> globalProperties = new Dictionary <string, string> { { "Configuration", "Release" }, // always "Debug" { "Platform", buildItem.Platform }, // always "Any CPU" { "OutputPath", outputLocation }, }; BuildManager.DefaultBuildManager.BeginBuild(param); var buildRequest = new BuildRequestData(solutionLocation, globalProperties, null, new String[] { "Build" }, null); var buildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(buildRequest); buildSubmission.Execute(); BuildManager.DefaultBuildManager.EndBuild(); if (buildSubmission.BuildResult.OverallResult == BuildResultCode.Failure) { return(false); } return(true); }
public static bool CloneRepo(Settings.Objects.Details details, string repoAddress, string destination) { var output = string.Empty; Directory.CreateDirectory(destination); try { CloneOptions options = new CloneOptions { Checkout = true, CredentialsProvider = getCredentialsHandler(details) }; output = Repository.Clone(repoAddress, destination, options); } catch (Exception e) { MessageBox.Show("Error: " + e.Message); return(false); } return(true); }
public static bool PullRepo(Settings.Objects.Details details, string repoFolder) { using (var repo = new Repository(repoFolder)) { // Credential information to fetch LibGit2Sharp.PullOptions options = new LibGit2Sharp.PullOptions(); options.FetchOptions = new FetchOptions(); options.FetchOptions.CredentialsProvider = getCredentialsHandler(details); // User information to create a merge commit var signature = new LibGit2Sharp.Signature( new Identity("MERGE_USER_NAME", "MERGE_USER_EMAIL"), DateTimeOffset.Now); // Pull MergeResult mergeResult = Commands.Pull(repo, signature, options); if (mergeResult.Status == MergeStatus.Conflicts || mergeResult.Status == MergeStatus.NonFastForward) { return(false); } } return(true); }
public Logic(Settings.Objects.Details settingsDetails) { SettingsDetails = settingsDetails; }