arcanis.me/ru/projects/reportabug.html
2015-10-12 03:13:25 +03:00

162 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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:
---
<!-- info block -->
<h2><a href="#info" class="anchor" id="info"><span class="octicon octicon-link"></span></a>Информация</h2>
<p>Приложение/библиотека, написанное на Qt, которое позволяет пользователям отправлять багрепорт для проектов, расположенных на GitHub. Оно может работать как через <a href="//github.com" title="GitHub">GitHub</a>, так и через <a href="//gitreports.com" title="GitReports">GitReports</a>. Работает нормально, однако данное приложение было создано as proof-of-concept.</p>
<h3><a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики</h3>
<ul>
{% for devel in page.developers %}
<li>{{ devel }}</li>
{% endfor %}
</ul>
<h3><a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия</h3>
<ul>
<li>{{ page.license }}</li>
</ul>
<!-- end of info block -->
<!-- install block -->
<h2><a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка</h2>
<h3><a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция</h3>
<h4><a href="#singleapp" class="anchor" id="singleapp"><span class="octicon octicon-link"></span></a>Сборка, как отдельное приложение</h4>
<ul>
<li>Скачайте <a href="//github.com/arcan1s/reportabug/releases" title="GitHub">архив</a> с актуальной версией исходных файлов.</li>
<li>Извлеките из него файлы и настройте под себя.</li>
<li>Установите приложение:
{% highlight bash %}
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
{% endhighlight %}
</li>
</ul>
<h4><a href="#aslibrary" class="anchor" id="aslibrary"><span class="octicon octicon-link"></span></a>Сборка, как библиотека в проекте</h4>
<ul>
<li>Скачайте <a href="//github.com/arcan1s/reportabug/releases" title="GitHub">архив</a> с актуальной версией исходных файлов.</li>
<li>Извлеките из него файлы и настройте под себя.</li>
<li>Включите библиотеку в Ваш проект. Например, если Вы используете <code>cmake</code>:
{% highlight cmake %}
add_subdirectory (reportabug)
{% endhighlight %}
</li>
<li>Объявите класс в Вашем приложении, например:
{% highlight cpp %}
Reportabug *reportWindow = new Reportabug(parent=this,
debugCmd=false,
params=0);
reportWindow->showWindow();
{% endhighlight %}
</li>
<li>Слинкуйте Ваше приложение с библиотекой.</li>
</ul>
<h4><a href="#cmakeflags" class="anchor" id="cmakeflags"><span class="octicon octicon-link"></span></a>Доступные флаги cmake</h4>
<ul>
<li><code>-DBUILD_AS_LIBRARY=0</code> - собирать отдельное приложение, а не библиотеку.</li>
<li><code>-DBUILD_DOCS=1</code> - собирать документацию для разработчиков.</li>
<li><code>-DBUILD_SHARED_LIBRARY=1</code> - собирать библиотеку общего доступа, а не статическую.</li>
<li><code>-DENABLE_GITHUB=0</code> - отключить модуль GitHub.</li>
<li><code>-DENABLE_GITREPORT=0</code> - отключить модуль GitReports</li>
<li><code>-DOWN_GITHUB_TOKEN=STRING</code> - использовать STRING, как свой GitHub токен.</li>
<li><code>-DUSE_QT5=0</code> - использовать Qt4 вместо Qt5.</li>
</ul>
<h3><a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости</h3>
<p>Все было протестировано на последних версиях зависимостей.</p>
<ul>
<li>qt5-base <i>(если используется Qt5)</i> <b>или</b> qt4 <i>(если используется Qt4)</i></li>
<li>qt5-network (если используется Qt5)</li>
<li>automoc4 <i>(make)</i></li>
<li>cmake <i>(make)</i></li>
<li>doxygen <i>(make, документация)</i></li>
<li>qt5-webkit (если используется Qt5) <b>или</b> qtwebkit (если используется Qt4) <i>(опционально, требуется для модуля GitReports)</i></li>
</ul>
<!-- end of install block -->
<!-- howto block -->
<h2><a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование</h2>
<h3><a href="#github" class="anchor" id="github"><span class="octicon octicon-link"></span></a>Модуль GitHub</h3>
<p>Данный модуль создает тикет, используя <a href="//developer.github.com/v3/issues/" title="Документация">GitHub API</a>. Данный модуль требует авторизации пользователя. Типичный POST запрос выглядит так:</p>
{% 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 %}
<p>Для того, чтобы отключить данный модуль, используйте <code>-DENABLE_GITHUB=0</code> флаг cmake.</p>
<p>Также данный модуль может отправлять запросы, используя токен разработчика. Пожалуйста, посетите <a href="//github.com/settings/applications" title="Настройки">данную страницу</a> и сгенерируйте токен. Требуемые права для токена - <b>public_repo</b> (или <b>repo</b>, если Вы используете для приватных репозиториев).<br>
<b>Имейте в виду, что передача токена в открытом виде может скомпрометировать его!</b></p>
<p>Типичный POST запрос выглядит так:</p>
{% 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 %}
<p>Для того, чтобы включить данный модуль, используйте <code>-DOWN_GITHUB_TOKEN=STRING</code> флаг cmake.</p>
<p>Данный модуль требует наличия в системе <code>QtNetwork</code>.</p>
<h3><a href="#gitreports" class="anchor" id="gitreports"><span class="octicon octicon-link"></span></a>Модуль GitReports</h3>
<p>Данный модуль создает тикет, используя возможности <a href="//gitreports.com/about" title="GitReports">GitReports</a>. Пожалуйста, посетите <a href="//gitreports.com/" title="GitReports">данную страницу</a> и настройте под Ваши репозитории.</p>
<p>Для того, чтобы отключить данный модуль, используйте <code>-DENABLE_GITREPORT=0</code> флаг cmake. Данный модуль требует наличия в системе <code>QtNetwork</code> и <code>QtWebKit</code>.</p>
<!-- end of howto block -->
<!-- config block -->
<h2><a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка</h2>
<p>Для настройки перед компиляцией отредактируйте хидер <code>src/config.h</code>. Также Вы можете подгрузить параметры автоматически, используя массив <code>params</code> (необходимые ключи такие же, как и для хидера).</p>
<h3><a href="#mainconfig" class="anchor" id="mainconfig"><span class="octicon octicon-link"></span></a>Основные настройки</h3>
<ul>
<li><code>OWNER</code> - владелец репозитория.</li>
<li><code>PROJECT</code> - имя проекта.</li>
<li><code>TAG_BODY</code> - тело тикета по умолчанию. Может быть использовано в обоих модулях.</li>
<li><code>TAG_TITLE</code> - имя тикета по умолчанию. Может быть использовано только в модуле GitHub.</li>
<li><code>TAG_ASSIGNEE</code> - прикрепить тикет к данному аккаунту. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.</li>
<li><code>TAG_LABELS</code> - установить данные метки тикету. Метки должны быть разделены запятыми. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.</li>
<li><code>TAG_MILESTONE</code> - установить данную веху тикету. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.</li>
</ul>
<h3><a href="#githubconfig" class="anchor" id="githubconfig"><span class="octicon octicon-link"></span></a>Настройки модуля GitHub</h3>
<ul>
<li><code>GITHUB_COMBOBOX</code> - текст модуля в ComboBox.</li>
<li><code>ISSUES_URL</code> - URL, в большинстве случаев, не редактируйте его. По умолчанию <code>//api.github.com/repos/$OWNER/$PROJECT/issues</code>. Доступные теги <code>$PROJECT</code>, <code>$OWNER</code>.</li>
</ul>
<h3><a href="#gitreportsconfig" class="anchor" id="gitreportsconfig"><span class="octicon octicon-link"></span></a>Настройки модуля GitReports</h3>
<ul>
<li><code>CAPTCHA_URL</code> - URL капчи, в большинстве случаев, не редактируйте его. По умолчанию <code>//gitreports.com/simple_captcha?code=</code>.</li>
<li><code>GITREPORT_COMBOBOX</code> - текст модуля в ComboBox.</li>
<li><code>PUBLIC_URL</code> - URL, в большинстве случаев, не редактируйте его. По умолчанию <code>//gitreports.com/issue/$OWNER/$PROJECT</code>. Доступные теги <code>$PROJECT</code>, <code>$OWNER</code>.</li>
</ul>
<!-- end of config block -->
<!-- gui block -->
<!-- end of gui block -->