---
category: ru
hastr: true
layout: project
title: Report a Bug
short: reportabug
hasgui: false
hasdocs: true
developers:
    - Evgeniy Alelseev
license: LGPLv3
links:
---
<!-- info block -->
<h2><a href="#info" class="anchor" name="info"><span class="octicon octicon-link"></span></a>Информация</h2>
<p>Приложение/библиотека, написанная на Qt, которое позволяет пользователям отправлять багрепорт для проектов, расположенных на GitHub. Оно может работать как через <a href="https://github.com" title="GitHub">GitHub</a>, так и через <a href="https://gitreports.com" title="GitReports">GitReports</a>.</p>

<h3><a href="#devel" class="anchor" name="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" name="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" name="install"><span class="octicon octicon-link"></span></a>Установка</h2>

<h3><a href="#instruction" class="anchor" name="instruction"><span class="octicon octicon-link"></span></a>Инструкция</h3>
<h4><a href="#singleapp" class="anchor" name="singleapp"><span class="octicon octicon-link"></span></a>Сборка, как отдельное приложение:</h4>
<ul>
  <li><p>Скачайте <a href="https://github.com/arcan1s/reportabug/releases" title="GitHub">архив</a> с актуальной версией исходных файлов.</p></li>
  <li><p>Извлеките из него файлы и настройте под себя.</p></li>
  <li><p>Установите приложение:</p>

{% 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" name="aslibrary"><span class="octicon octicon-link"></span></a>Сборка, как библиотека в проекте:</h4>
<ul>
  <li><p>Скачайте <a href="https://github.com/arcan1s/reportabug/releases" title="GitHub">архив</a> с актуальной версией исходных файлов.</p></li>
  <li><p>Извлеките из него файлы и настройте под себя.</p>
  <li><p>Включите библиотеку в Ваш проект. Например, если Вы используете <code>cmake</code>:</p>

{% highlight cmake %}
add_subdirectory (reportabug)
{% endhighlight %}

  </li>
  <li><p>Объявите класс в Вашем приложении, например:</p>

{% highlight cpp %}
Reportabug *reportWindow = new Reportabug(this, false);
reportWindow->showWindow();
{% endhighlight %}

  </li>
  <li>Слинкуйте Ваше приложение с библиотекой.</li>
</ul>

<h4><a href="#cmakeflags" class="anchor" name="cmakeflags"><span class="octicon octicon-link"></span></a>Доступные флаги cmake:</h4>
<ul>
  <li><code>-DBUILD_AS_LIBRARY:BOOL=0</code> - собирать отдельное приложение, а не библиотеку.</li>
  <li><code>-DBUILD_DOCS:BOOL=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:BOOL=0</code> - использовать Qt4 вместо Qt5.</li>
</ul>

<h3><a href="#dependencies" class="anchor" name="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>automoc4 <i>(make)</i></li>
  <li>cmake <i>(make)</i></li>
  <li>doxygen <i>(make, документация)</i></li>
  <li>qt5-network (если используется Qt5) <i>(опционально, требуется для модуля GitHub)</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" name="howto"><span class="octicon octicon-link"></span></a>Использование</h2>
<h3><a href="#github" class="anchor" name="github"><span class="octicon octicon-link"></span></a>Модуль GitHub</h3>
<p>Данный модуль создает тикет, используя <a href="https://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"}' \
     https://api.github.com/repos/owner/repo/issues
{% endhighlight %}

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

<p>Также данный модуль может отправлять запросы, используя токен разработчика. Пожалуйста, посетите <a href="https://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"}' \
     https://api.github.com/repos/owner/repo/issues
{% endhighlight %}

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

<p>Данный модуль требует наличия в системе qt5-network.</p>

<h3><a href="#gitreports" class="anchor" name="gitreports"><span class="octicon octicon-link"></span></a>Модуль GitReports</h3>
<p>Данный модуль создает тикет, используя возможности <a href="https://gitreports.com/about" title="GitReports">GitReports</a>. Пожалуйста, посетите <a href="https://gitreports.com/" title="GitReports">данную страницу</a> и настройте под Ваши репозитории.</p>

<p>Для того, чтобы отключить данный модуль, используйте <code>-DENABLE_GITREPORT=0</code> флаг cmake. Данный модуль требует наличия в системе qt5-webkit.</p>
<!-- end of howto block -->

<!-- config block -->
<h2><a href="#config" class="anchor" name="config"><span class="octicon octicon-link"></span></a>Настройка</h2>
<p>Для настройки перед компиляцией отредактируйте хидер <code>src/config.h.in</code>.</p>
<h3><a href="#mainconfig" class="anchor" name="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" name="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>https://api.github.com/repos/$OWNER/$PROJECT/issues</code>. Доступные теги <code>$PROJECT</code>, <code>$OWNER</code>.</li>
</ul>

<h3><a href="#gitreportsconfig" class="anchor" name="gitreportsconfig"><span class="octicon octicon-link"></span></a>Настройки модуля GitReports</h3>
<ul>
  <li><code>CAPTCHA_KEY</code> - идентификатор капчи. Может быть найдено в исходном коду страницы <code>PUBLIC_URL</code>. По умолчанию <code>7f6ef90bce7389088a52c5c9101aad206b21b56d</code>.</li>
  <li><code>CAPTCHA_TEXT</code> - текст капчи. Может быть найдено в исходном коду страницы <code>PUBLIC_URL</code>. По умолчанию <code>QJNZXY</code>.</li>
  <li><code>CAPTCHA_TIME</code> - время капчи. Может быть найдено в исходном коду страницы <code>PUBLIC_URL</code>. По умолчанию <code>1406531273</code>.</li>
  <li><code>GITREPORT_COMBOBOX</code> - текст модуля в ComboBox.</li>
  <li><code>PUBLIC_URL</code> - URL, в большинстве случаев, не редактируйте его. По умолчанию <code>https://gitreports.com/issue/$OWNER/$PROJECT</code>. Доступные теги <code>$PROJECT</code>, <code>$OWNER</code>.</li>
</ul>
<!-- end of config block -->

<!-- gui block -->
<!-- end of gui block -->
