У меня есть программа, которая использует набор файлов, хранящихся в проекте GitHub.
Я хотел бы проверить последнюю версию этого проекта GitHub и загрузить эти файлы, если они новее, чем локальные.
Кто-нибудь знает, как проверить версию выпуска и скачать с (с помощью QT C++)?
Моя программа написана на Qt 5 (https://github.com/bq/QssWeb2Board)
@pschill Я думал об использовании GitHub API
При использовании API GitHub вам необходимо создавать свои команды как HTTP-запрос и обрабатывать результат. Вам не кажется, что проще использовать библиотеку, единственная цель которой - решить именно вашу проблему?
@pschill да. Это отличная библиотека. Это просто кажется очень подходящим для моей цели. Но я попробую. Спасибо, что указали!





Проверив прокомментированную библиотеку и немного покопавшись, я нашел ответ. Вот основной код. Спасибо.
QUrl url("https://api.github.com/repos/" + owner +"/" + project + "/tags");
qInfo() << url.toString();
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QNetworkAccessManager nam;
QNetworkReply * reply = nam.get(request);
timeout=false;
timer->start(5000);
while(!timeout){
qApp->processEvents();
if (reply->isFinished()) break;
}
if (reply->isFinished()){
QByteArray response_data = reply->readAll();
QJsonDocument json = QJsonDocument::fromJson(response_data);
return json[0]["name"].toString();
}else{
return QString("Timeout");
}
Итак, вы хотите запустить команду git из своей программы на C++? Тогда вы, вероятно, захотите использовать библиотеку, например libgit2 (libgit2.github.com). Вы также можете вызвать установленный исполняемый файл git с помощью
QProcess, но тогда вам придется иметь дело со всеми видами синтаксического анализа вывода.