Это рекомендуемый способ.Если ваш обратный вызов учетных данных вызывается второй раз, то первые предоставленные вами учетные данные не были приняты.Этот шаблон в первую очередь полезен для приложений пользовательского интерфейса (появляется диалоговое окно модального имени пользователя / пароля).
Вы можете использовать данные обратного вызова для подсчета количества вызовов, которые вам звонили.
Я понимаю, чтоэто может быть несовершенным, особенно если вы связываете libgit2 на другом языке.Настройка структуры данных в куче и управление ее жизненным циклом не всегда тривиальны.
Вы можете также иметь возможность просто предоставить учетные данные и ждать код возврата GIT_EAUTH
.Теоретически, различные транспортные механизмы должны отказываться после нескольких ошибок аутентификации, несмотря ни на что.Тем не менее, мы обнаружили по крайней мере одну ошибку в выпусках 0.27, которая зациклилась бы навсегда.Отсюда и предложение.