arcanis.me/ru/projects/reportabug.md
2016-01-26 11:45:49 +03:00

10 KiB
Raw Blame History

category hastr layout title short tags hasgui hasdocs developers license links
ru true project Report a Bug reportabug qt, c++, библиотека, разработка false true
Evgeniy Alekseev
LGPLv3

Информация

Приложение/библиотека, написанное на Qt, которое позволяет пользователям отправлять багрепорт для проектов, расположенных на GitHub. Оно может работать как через GitHub, так и через GitReports. Работает нормально, однако данное приложение было создано as proof-of-concept.

Разработчики

{% for devel in page.developers %}

  • {{ devel }}{% endfor %}

Лицензия

  • {{ page.license }}

Установка

Инструкция

Сборка, как отдельное приложение

  • Скачайте архив с актуальной версией исходных файлов.

  • Извлеките из него файлы и настройте под себя.

  • Установите приложение:

    cd /path/to/extracted/archive
    mkdir build && cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_AS_LIBRARY:BOOL=0 ../
    make
    sudo make install
    

Сборка, как библиотека в проекте

  • Скачайте архив с актуальной версией исходных файлов.

  • Извлеките из него файлы и настройте под себя.

  • Включите библиотеку в Ваш проект. Например, если Вы используете cmake:

    add_subdirectory (reportabug)
    
  • Объявите класс в Вашем приложении, например:

    Reportabug *reportWindow = new Reportabug(parent=this, debugCmd=false, params=0);
    reportWindow->showWindow();
    
  • Слинкуйте Ваше приложение с библиотекой.

Доступные флаги cmake

  • -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.

Зависимости

Все было протестировано на последних версиях зависимостей.

  • qt5-base (если используется Qt5) или qt4 (если используется Qt4)
  • qt5-network (если используется Qt5)
  • automoc4 (make)
  • cmake (make)
  • doxygen (make, документация)
  • qt5-webkit (если используется Qt5) или qtwebkit (если используется Qt4) (опционально, требуется для модуля GitReports)

Использование

Модуль GitHub

Данный модуль создает тикет, используя GitHub API. Данный модуль требует авторизации пользователя. Типичный POST запрос выглядит так:

curl -X POST -u user:pass -d '{"title":"A new bug","body":"Some error occurs"}' \
     //api.github.com/repos/owner/repo/issues

Для того, чтобы отключить данный модуль, используйте -DENABLE_GITHUB=0 флаг cmake.

Также данный модуль может отправлять запросы, используя токен разработчика. Пожалуйста, посетите данную страницу и сгенерируйте токен. Требуемые права для токена - public_repo (или repo, если Вы используете для приватных репозиториев).

Имейте в виду, что передача токена в открытом виде может скомпрометировать его!

Типичный POST запрос выглядит так:

curl -X POST -H "Authorization: token token" -d '{"title":"A new bug","body":"Some error occurs"}' \
     //api.github.com/repos/owner/repo/issues

Для того, чтобы включить данный модуль, используйте -DOWN_GITHUB_TOKEN=STRING флаг cmake.

Данный модуль требует наличия в системе QtNetwork.

Модуль GitReports

Данный модуль создает тикет, используя возможности 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

  • GITHUB_COMBOBOX - текст модуля в ComboBox.
  • ISSUES_URL - URL, в большинстве случаев, не редактируйте его. По умолчанию //api.github.com/repos/$OWNER/$PROJECT/issues. Доступные теги $PROJECT, $OWNER.

Настройки модуля GitReports

  • CAPTCHA_URL - URL капчи, в большинстве случаев, не редактируйте его. По умолчанию //gitreports.com/simple_captcha?code=.
  • GITREPORT_COMBOBOX - текст модуля в ComboBox.
  • PUBLIC_URL - URL, в большинстве случаев, не редактируйте его. По умолчанию //gitreports.com/issue/$OWNER/$PROJECT. Доступные теги $PROJECT, $OWNER.