mirror of
https://github.com/arcan1s/arcanis.me.git
synced 2025-04-25 07:47:18 +00:00
187 lines
7.0 KiB
Markdown
187 lines
7.0 KiB
Markdown
---
|
|
permalink: projects/reportabug
|
|
hastr: true
|
|
layout: project
|
|
title: Report a Bug
|
|
short: reportabug
|
|
tags: qt, c++, library, development
|
|
hasgui: false
|
|
hasdocs: true
|
|
developers:
|
|
- Evgeniy Alekseev
|
|
license: LGPLv3
|
|
links:
|
|
---
|
|
<!-- info block -->
|
|
|
|
Qt application/library which allows users to create an issue for projects which
|
|
are hosted on GitHub. It may work over [GitHub](//github.com "GitHub") or
|
|
[GitReport](//gitreports.com/ "GitReports"). It works fine, but it was created
|
|
as proof-of-concept.
|
|
|
|
<!--more-->
|
|
|
|
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Developers and contributors
|
|
|
|
{% for devel in page.developers %}
|
|
* {{ devel }}{% endfor %}
|
|
|
|
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>License
|
|
|
|
* {{ page.license }}
|
|
|
|
<!-- end of info block -->
|
|
|
|
<!-- install block -->
|
|
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Installation
|
|
|
|
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Instruction
|
|
|
|
#### <a href="#singleapp" class="anchor" id="singleapp"><span class="octicon octicon-link"></span></a>Build as a standalone application
|
|
|
|
* Download the actual source [tarball](//github.com/arcan1s/reportabug/releases
|
|
"GitHub").
|
|
* Extract it and set up your configuration.
|
|
* Install the application:
|
|
|
|
```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
|
|
```
|
|
|
|
#### <a href="#aslibrary" class="anchor" id="aslibrary"><span class="octicon octicon-link"></span></a>Build as a library in your project
|
|
|
|
* Download the actual source [tarball](//github.com/arcan1s/reportabug/releases
|
|
"GitHub").
|
|
* Extract it and set up your configuration.
|
|
* include it into your project. For example if you use `cmake`:
|
|
|
|
```cmake
|
|
add_subdirectory (reportabug)
|
|
```
|
|
|
|
* Declare class in you sources. For example:
|
|
|
|
```cpp
|
|
Reportabug *reportWindow = new Reportabug(parent=this, debugCmd=false, params=0);
|
|
reportWindow->showWindow();
|
|
```
|
|
|
|
* Link your application with this library.
|
|
|
|
### <a href="#cmakeflags" class="anchor" id="cmakeflags"><span class="octicon octicon-link"></span></a>Available cmake flags:
|
|
|
|
* `-DBUILD_AS_LIBRARY=0` - build the application but not a library.
|
|
* `-DBUILD_DOCS=1` - build developer documentation.
|
|
* `-DBUILD_SHARED_LIBRARY=1` - build the shared library instead of static one.
|
|
* `-DENABLE_GITHUB=0` - disable GitHub module.
|
|
* `-DENABLE_GITREPORT=0` - disable GitReport module.
|
|
* `-DOWN_GITHUB_TOKEN=STRING` - use STRING as own GitHub token.
|
|
* `-DUSE_QT5=0` - use Qt4 instead of Qt5.
|
|
|
|
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Dependencies
|
|
|
|
I want note that all were tested on latest version of dependencies.
|
|
|
|
* qt5-base *(if Qt5 is used)* **or** qt4 *(if Qt4 is used)*
|
|
* qt5-network (if Qt5 is used)
|
|
* automoc4 *(make)*
|
|
* cmake *(make)*
|
|
* doxygen *(make, documentation)*
|
|
* qt5-webkit (if Qt5 is used) **or** qtwebkit (if Qt4 is used) *(optional,
|
|
required by GitReports module)*
|
|
|
|
<!-- end of install block -->
|
|
|
|
<!-- howto block -->
|
|
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>How to use
|
|
|
|
### <a href="#github" class="anchor" id="github"><span class="octicon octicon-link"></span></a>GitHub module
|
|
|
|
This module creates an issue over GitHub. [GitHub API](//developer.github.com/v3/issues/
|
|
"Documentation") is used for creating issue. User should type own username and
|
|
password. The typical POST request is:
|
|
|
|
```bash
|
|
curl -X POST -u user:pass -d '{"title":"A new bug","body":"Some error occurs"}' \
|
|
//api.github.com/repos/owner/repo/issues
|
|
```
|
|
|
|
To disable this module use `-DENABLE_GITHUB=0` cmake flag.
|
|
|
|
This module may send request using developer's token too. Please visit [this
|
|
page](//github.com/settings/applications "Settings") and generate a new one.
|
|
Needed scopes are `public_repo` (or `repo` if you will use it for a private
|
|
repository).
|
|
|
|
**Please keep in mind that passing the token in the clear, you may discredit your account.**
|
|
|
|
The typical POST request is:
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: token token" -d '{"title":"A new bug","body":"Some error occurs"}' \
|
|
//api.github.com/repos/owner/repo/issues
|
|
```
|
|
|
|
To enable this module set up your token using `-DOWN_GITHUB_TOKEN=0` cmake flag.
|
|
|
|
This module requires `QtNetwork` module.
|
|
|
|
### <a href="#gitreports" class="anchor" id="gitreports"><span class="octicon octicon-link"></span></a>GitReports module
|
|
|
|
This module creates issue over [GitReports](//gitreports.com/about "GitReports").
|
|
Please visit [this page](//gitreports.com/ "GitReports") and set up it for your
|
|
repository.
|
|
|
|
To disable this module use `-DENABLE_GITREPORT=0` cmake flag. This module requires
|
|
`QtNetwork` and `QtWebKit` modules.
|
|
|
|
<!-- end of howto block -->
|
|
|
|
<!-- config block -->
|
|
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Configuration
|
|
|
|
For the developer configuration please use `config.h` header. Also you may load
|
|
parametrs dynamically using `params` array (needed keys is the same as for the
|
|
header
|
|
|
|
### <a href="#mainconfig" class="anchor" id="mainconfig"><span class="octicon octicon-link"></span></a>Main configuration
|
|
|
|
* `OWNER` - the owner of the source repository.
|
|
* `PROJECT` - the project name.
|
|
* `TAG_BODY` - default body of an issue. It may be used for both modules.
|
|
* `TAG_TITLE` - default title of an issue. It may be used only for GitHub module.
|
|
* `TAG_ASSIGNEE` - assign an issue to this account. It may be used only for
|
|
GitHub module. This tag will work only if user has push access. If it will be
|
|
empty, it will be ignored.
|
|
* `TAG_LABELS` - set these labels to an issue. Labels should be comma separated.
|
|
It may be used only for GitHub module. This tag will work only if user has push
|
|
access. If it will be empty, it will be ignored.
|
|
* `TAG_MILESTONE` - set this milestone to an issue. It may be used only for
|
|
GitHub module. This tag will work only if user has push access. If it will be
|
|
empty, it will be ignored.
|
|
|
|
### <a href="#githubconfig" class="anchor" id="githubconfig"><span class="octicon octicon-link"></span></a>GitHub module settings
|
|
|
|
* `GITHUB_COMBOBOX` - text of this module into comboBox.
|
|
* `ISSUES_URL` - issues url, in the most cases do not touch it. Default is
|
|
`//api.github.com/repos/$OWNER/$PROJECT/issues`. Available tags here are
|
|
`$PROJECT`, `$OWNER`.
|
|
|
|
### <a href="#gitreportsconfig" class="anchor" id="gitreportsconfig"><span class="octicon octicon-link"></span></a>GitReports module settings
|
|
|
|
* `CAPTCHA_URL` - captcha url, in the most cases do not touch it. Default is
|
|
`//gitreports.com/simple_captcha?code=`.
|
|
* `GITREPORT_COMBOBOX` - text of this module into comboBox.
|
|
* `PUBLIC_URL` - issues url, in the most cases do not touch it. Default is
|
|
`//gitreports.com/issue/$OWNER/$PROJECT`. Available tags here are `$PROJECT`,
|
|
`$OWNER`.
|
|
|
|
<!-- end of config block -->
|
|
|
|
<!-- gui block -->
|
|
<!-- end of gui block -->
|