mirror of
				https://github.com/arcan1s/arcanis.me.git
				synced 2025-10-27 11:53:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| ---
 | ||
| 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="https://github.com" title="GitHub">GitHub</a>, так и через <a href="https://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="https://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="https://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="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>Данный модуль требует наличия в системе <code>QtNetwork</code>.</p>
 | ||
| 
 | ||
| <h3><a href="#gitreports" class="anchor" id="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. Данный модуль требует наличия в системе <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>https://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>https://gitreports.com/simple_captcha?code=</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 -->
 |