Пример #1
0
        /// <summary>
        /// 获取本地设置的用户和密码
        /// </summary>
        /// <param name="url"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public bool TryGetCredential(string url, out string username, out string password, out string error)
        {
            username = null;
            password = null;
            error    = null;
            Result gitCredentialOutput = this.Process.InvokeGitAgainstDotGitFolder(
                GenerateCredentialVerbCommand("fill"),
                stdin => stdin.Write($"url={url}\n\n"),
                parseStdOutLine: null);

            if (gitCredentialOutput.ExitCodeIsFailure)
            {
                EventMetadata errorData = new EventMetadata();
                error = gitCredentialOutput.Errors;
                return(false);
            }

            username = MessageDecoder.ParseValue(gitCredentialOutput.Output, "username="******"password="******"Success", success);
            if (!success)
            {
                metadata.Add("Output", gitCredentialOutput.Output);
            }

            return(success);
        }