/// <summary>
        /// method tries to push to repository
        /// </summary>
        /// <param name="committerName">committer name</param>
        /// <param name="committerEmail">committer detail</param>
        /// <param name="authorEmail">author email id</param>
        /// <param name="solutionFile">solution file info</param>
        /// <param name="solutionFilePath">path of file that contains list of solution to be released</param>
        /// <param name="hashSet">hash set to store release solution</param>
        private static void TryPushToRepository(
            string committerName,
            string committerEmail,
            string authorEmail,
            SolutionFileInfo solutionFile,
            string solutionFilePath,
            HashSet <string> hashSet)
        {
            RepositoryConfigurationConstants.ResetLocalDirectory();

            solutionFile.Solution[Constants.SourceControlQueueAttributeNameForStatus] = Constants.SourceControlQueuemPushingToStatus;
            solutionFile.Update();

            GitDeploy.GitRepositoryManager gitRepositoryManager = GetRepositoryManager(committerName, committerEmail, authorEmail, solutionFile);

            gitRepositoryManager.UpdateRepository();

            PopulateHashset(solutionFilePath, hashSet);

            if (!hashSet.Contains(solutionFile.SolutionFileZipName) && solutionFile.IncludeInRelease)
            {
                hashSet.Add(solutionFile.SolutionFileZipName);
            }

            SaveHashSet(solutionFilePath, hashSet);
            gitRepositoryManager.CommitAllChanges(solutionFile, solutionFilePath);

            gitRepositoryManager.PushCommits();

            solutionFile.Solution[Constants.SourceControlQueueAttributeNameForStatus] = Constants.SourceControlQueuemPushToRepositorySuccessStatus;
            solutionFile.Update();
        }
        /// <summary>
        /// method tries to push to repository
        /// </summary>
        /// <param name="committerName">committer name</param>
        /// <param name="committerEmail">committer detail</param>
        /// <param name="authorEmail">author email id</param>
        /// <param name="solutionFile">solution file info</param>
        /// <param name="solutionFilePath">path of file that contains list of solution to be released</param>
        /// <param name="hashSet">hash set to store release solution</param>
        /// <param name="gitRepositoryManager">object initialization for class RepositoryManager</param>
        private void TryPushToRepository(
            string committerName,
            string committerEmail,
            string authorEmail,
            SolutionFileInfo solutionFile,
            string solutionFilePath,
            HashSet <string> hashSet,
            GitDeploy.GitRepositoryManager gitRepositoryManager)
        {
            ////RepositoryConfigurationConstants.ResetLocalDirectory();

            solutionFile.Solution[Constants.SourceControlQueueAttributeNameForStatus] = Constants.SourceControlQueuemPushingToStatus;
            solutionFile.Solution.Attributes["syed_webjobs"] = Singleton.SolutionFileInfoInstance.WebJobs();
            solutionFile.Update();
            Workspace workspace = null;

            ////GitDeploy.GitRepositoryManager gitRepositoryManager = GetRepositoryManager(committerName, committerEmail, authorEmail, solutionFile);

            if (solutionFile.Repository != Constants.SourceControlAzureDevOpsServer)
            {
                gitRepositoryManager.UpdateRepository();
            }


            ////433710000 value for Yes
            if (solutionFile.SolutionsTxt == 433710000 && File.Exists(solutionFilePath))
            {
                File.WriteAllText(solutionFilePath, string.Empty);
                hashSet.Clear();
            }

            this.PopulateHashset(solutionFilePath, hashSet);
            if (!hashSet.Contains(solutionFile.SolutionFileZipName) && solutionFile.IncludeInRelease)
            {
                hashSet.Add(solutionFile.SolutionFileZipName);
            }

            if (solutionFile.Repository == Constants.SourceControlAzureDevOpsServer)
            {
                workspace = gitRepositoryManager.ConnectTFSMap(solutionFile, solutionFilePath, hashSet);
            }
            else
            {
                this.SaveHashSet(solutionFilePath, hashSet);
                gitRepositoryManager.CommitAllChanges(solutionFile, solutionFilePath, null);
                gitRepositoryManager.PushCommits();
            }



            solutionFile.Solution[Constants.SourceControlQueueAttributeNameForStatus] = Constants.SourceControlQueuemPushToRepositorySuccessStatus;
            solutionFile.Solution.Attributes["syed_webjobs"] = Singleton.SolutionFileInfoInstance.WebJobs();
            solutionFile.Update();
        }
        private static void TryPushToRepository(string committerName, string committerEmail, string authorEmail,
                                                SolutionFileInfo solutionFile, string solutionFilePath)
        {
            GitDeploy.GitRepositoryManager gitRepositoryManager = new GitDeploy.GitRepositoryManager(
                ConfigurationManager.AppSettings["UserName"],
                ConfigurationManager.AppSettings["GitPassword"],
                ConfigurationManager.AppSettings["RepositoryUrl"],
                ConfigurationManager.AppSettings["RepositoryLocalDirectory"],
                solutionFile.OwnerName ?? committerName, authorEmail, committerName, committerEmail);

            //GitDeploy.GitRepositoryManager gitRepositoryManager = new GitDeploy.GitRepositoryManager(
            //    ConfigurationManager.AppSettings["UserName"],
            //    ConfigurationManager.AppSettings["GitPassword"],
            //    ConfigurationManager.AppSettings["RepositoryUrl"],
            //    ConfigurationManager.AppSettings["RepositoryLocalDirectory"],
            //    authorName, authorEmail, committerName, committerEmail);

            gitRepositoryManager.CommitAllChanges(solutionFile.Message, solutionFile.SolutionFilePath, solutionFilePath);
            gitRepositoryManager.PushCommits(ConfigurationManager.AppSettings["RemoteName"],
                                             ConfigurationManager.AppSettings["BranchName"]);
        }