Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: SektorCT от Август 11, 2016, 16:48



Название: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: SektorCT от Август 11, 2016, 16:48
Всем привет.
Если кто устанавливал UnrealEngine4 из исходников то знают что нужно иметь регистрацию.
Когда мы находясь в каталоге куда будем заливать движок ввоодим git clone https://github.com/EpicGames/UnrealEngine.git
получаем запрос на логин и пароль который у нас имеется по регистрации.
Возможно ли сделать этот запрос данных через GUI? То есть в код будет жостко вшит адресс и когда мы нажимаем скачать то появляется приглашение ввода.
Просто ради эксперимента хочу сделать это через юзерскую гуятину.
Если кто знает то подскажите или может с примером или в какие виджеты копать.
Еще хотел добавить что весь консольный вывод скачивания движка и установки думал выводить так же как консольно только на виджет.
Заранее спасибо.


Название: Re: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: gil9red от Август 11, 2016, 20:40
У меня на ту ссылку пишет 404 ошибку. Либо нет ресурса, либо это приватный репозиторий и доступ к нему имеет только определенное лицо


Название: Re: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: Alex Custov от Август 11, 2016, 21:28
есть вариант запрашивать юзера и пароль, и потом клонить сразу с заданным юзером и паролем, см. http://stackoverflow.com/a/10054470 . Это не безопасно, т.к. пароль будет виден в списке процессов.


Название: Re: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: SektorCT от Август 12, 2016, 02:00
У меня на ту ссылку пишет 404 ошибку. Либо нет ресурса, либо это приватный репозиторий и доступ к нему имеет только определенное лицо

А вы прочитали что я написал? При подключении нужно вводить логин и пароль. А это значит что вы должны быть там авторизованы.


Название: Re: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: SektorCT от Август 12, 2016, 02:03
есть вариант запрашивать юзера и пароль, и потом клонить сразу с заданным юзером и паролем, см. http://stackoverflow.com/a/10054470 . Это не безопасно, т.к. пароль будет виден в списке процессов.

Спасибо за ссылку. Вот только вопрос остается, как это именно применить?( Я вот честно даже представления не имею как это в код вшить...


Название: Re: Запрос от github с консоли на логи и пароль и вывод в GUI
Отправлено: gil9red от Август 12, 2016, 03:26
У меня на ту ссылку пишет 404 ошибку. Либо нет ресурса, либо это приватный репозиторий и доступ к нему имеет только определенное лицо

А вы прочитали что я написал? При подключении нужно вводить логин и пароль. А это значит что вы должны быть там авторизованы.

Виноват :) Попытаюсь реабилитироваться ;D

Как Alex Custov и писал, вам нужно запустить в консоли команду, в которой помимо репозитория указывается логин и пароль.
Для гита это:
Код
Bash
git clone https://username:password@github.com/username/repository.git

Если перевести в код, то получится примерно такое. // <login> и <pass> заменить своим логином и паролем
Код
C++ (Qt)
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QDebug>
 
class Widget : public QWidget
{
   Q_OBJECT
 
   public:
       Widget(QWidget *parent = 0) {
           auto button = new QPushButton("Get Clone Now!");
           connect(button, QPushButton::clicked, this, [=](){
               qDebug() << "Get clone start.";
 
               system("git clone https://<login>:<pass>@bitbucket.org/<login>/combustion.git");
 
               qDebug() << "Get clone finished.";
           });
 
           auto layout = new QVBoxLayout();
           layout->addWidget(button);
 
           setLayout(layout);
       }
};

Если хотите работу с консольным гитом более по qt-шному, то поможет QProcess (http://doc.qt.io/qt-5/qprocess.html#details).