--- category: ru hastr: true layout: project title: Report a Bug short: reportabug tags: qt, c++, библиотека, разработка hasgui: false hasdocs: true developers: - Evgeniy Alekseev license: LGPLv3 links: ---
Приложение/библиотека, написанное на Qt, которое позволяет пользователям отправлять багрепорт для проектов, расположенных на GitHub. Оно может работать как через GitHub, так и через GitReports. Работает нормально, однако данное приложение было создано as proof-of-concept.
cmake
:
{% highlight cmake %}
add_subdirectory (reportabug)
{% endhighlight %}
-DBUILD_AS_LIBRARY=0
- собирать отдельное приложение, а не библиотеку.-DBUILD_DOCS=1
- собирать документацию для разработчиков.-DBUILD_SHARED_LIBRARY=1
- собирать библиотеку общего доступа, а не статическую.-DENABLE_GITHUB=0
- отключить модуль GitHub.-DENABLE_GITREPORT=0
- отключить модуль GitReports-DOWN_GITHUB_TOKEN=STRING
- использовать STRING, как свой GitHub токен.-DUSE_QT5=0
- использовать Qt4 вместо Qt5.Все было протестировано на последних версиях зависимостей.
Данный модуль создает тикет, используя GitHub API. Данный модуль требует авторизации пользователя. Типичный POST запрос выглядит так:
{% highlight bash %} curl -X POST -u user:pass -d '{"title":"A new bug","body":"Some error occurs"}' \ //api.github.com/repos/owner/repo/issues {% endhighlight %}Для того, чтобы отключить данный модуль, используйте -DENABLE_GITHUB=0
флаг cmake.
Также данный модуль может отправлять запросы, используя токен разработчика. Пожалуйста, посетите данную страницу и сгенерируйте токен. Требуемые права для токена - public_repo (или repo, если Вы используете для приватных репозиториев).
Имейте в виду, что передача токена в открытом виде может скомпрометировать его!
Типичный POST запрос выглядит так:
{% highlight bash %} curl -X POST -H "Authorization: token token" -d '{"title":"A new bug","body":"Some error occurs"}' \ //api.github.com/repos/owner/repo/issues {% endhighlight %}Для того, чтобы включить данный модуль, используйте -DOWN_GITHUB_TOKEN=STRING
флаг cmake.
Данный модуль требует наличия в системе QtNetwork
.
Данный модуль создает тикет, используя возможности GitReports. Пожалуйста, посетите данную страницу и настройте под Ваши репозитории.
Для того, чтобы отключить данный модуль, используйте -DENABLE_GITREPORT=0
флаг cmake. Данный модуль требует наличия в системе QtNetwork
и QtWebKit
.
Для настройки перед компиляцией отредактируйте хидер src/config.h
. Также Вы можете подгрузить параметры автоматически, используя массив params
(необходимые ключи такие же, как и для хидера).
OWNER
- владелец репозитория.PROJECT
- имя проекта.TAG_BODY
- тело тикета по умолчанию. Может быть использовано в обоих модулях.TAG_TITLE
- имя тикета по умолчанию. Может быть использовано только в модуле GitHub.TAG_ASSIGNEE
- прикрепить тикет к данному аккаунту. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.TAG_LABELS
- установить данные метки тикету. Метки должны быть разделены запятыми. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.TAG_MILESTONE
- установить данную веху тикету. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.GITHUB_COMBOBOX
- текст модуля в ComboBox.ISSUES_URL
- URL, в большинстве случаев, не редактируйте его. По умолчанию //api.github.com/repos/$OWNER/$PROJECT/issues
. Доступные теги $PROJECT
, $OWNER
.CAPTCHA_URL
- URL капчи, в большинстве случаев, не редактируйте его. По умолчанию //gitreports.com/simple_captcha?code=
.GITREPORT_COMBOBOX
- текст модуля в ComboBox.PUBLIC_URL
- URL, в большинстве случаев, не редактируйте его. По умолчанию //gitreports.com/issue/$OWNER/$PROJECT
. Доступные теги $PROJECT
, $OWNER
.