Проблема с командой C # Git

1

Я разрабатываю приложение, где мне нужно запустить Git Command из С#. Я использовал Process для запуска команд, если я передаю имя пользователя и пароль, а затем говорит UserName или Password is Notorrect, но это фактически работает обычным. Ниже мой код: -

public static void PullCode(string gitCommand)
{
    string strPassword = "Password";
    ProcessStartInfo gitInfo = new ProcessStartInfo();
    Process gitProcess = new Process();

    gitInfo.CreateNoWindow = true;
    gitInfo.UserName = "UserNAme";
    gitInfo.Password = Misc.ConvertPassword(strPassword);
    gitInfo.UseShellExecute = false;
    gitInfo.FileName = @"C:\Program Files (x86)\Git\bin\git.exe";  //git repostory directory path
    gitInfo.Arguments = gitCommand; //git command such as "fetch orign"
    gitInfo.WorkingDirectory = @"E:\Code Demo\testrepo";  //YOUR_GIT_REPOSITORY_PATH Where you want to Copy Data
    gitInfo.RedirectStandardError = true;
    gitInfo.RedirectStandardOutput = true;

    using( var proc = new System.Diagnostics.Process() )
    {
        proc.StartInfo = gitInfo;
        proc.Start();

        var output = proc.StandardOutput.ReadToEnd();
        var error = proc.StandardError.ReadToEnd();

        var logRaw = string.IsNullOrEmpty( output ) && !string.IsNullOrEmpty( error )
            ? error.Split( '\n' ).ToArray()
            : output.Split( '\n' ).ToArray();

        proc.WaitForExit();
        proc.Close();
    }
}
Теги:

1 ответ

0

У вас есть два варианта. Первый заключается в том, чтобы настроить конфигурацию для вашего git-репо (или глобально) для использования git askpass witch - "git config core.askpass git-gui - askpass". Назовите это как первую команду для вашего процесса. Недостатком здесь является то, что каждый раз, когда вы выполняете команду изменения, он запрашивает пароль.

Или вы можете иметь свою собственную исполняемую ведьму, которая будет запрашивать пароль один раз и иметь возможность хранить пароль в своем приложении. Но здесь вам нужно быть осторожным, так как если вы не сохраните его должным образом, это будет угрозой безопасности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню