🚧 Nextcloud app for easy bug reporting with prefilled issue templates
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ
dependabot[bot] a3213822dd
Merge pull request #649 from nextcloud/dependabot/npm_and_yarn/elliptic-6.6.0
2024-10-31 02:17:06 +00:00
.github ci: Update workflows 2024-09-10 11:17:58 +02:00
appinfo chore: Updat webpack config and make build work again 2023-05-28 17:24:32 +02:00
img Add icon for settings section in NC12 2017-01-30 10:59:55 +01:00
lib chore: Updat webpack config and make build work again 2023-05-28 17:24:32 +02:00
src style: Fix eslint/styleling 2023-05-28 17:25:17 +02:00
templates Make issuetemplate 15 compatible 2019-01-09 18:01:02 +01:00
tests Fix autoloading for tests 2018-08-15 18:34:32 +02:00
.drone.yml Diable checker for now 2019-04-11 13:10:28 +02:00
.gitignore Some code refactoring 2020-09-03 16:35:02 +02:00
.nextcloudignore Update krankerl config 2020-08-18 21:39:55 +02:00
AUTHORS.md Initial commit for issue template app 2016-08-24 17:38:20 +02:00
CHANGELOG.md Bump version to 0.7.0 2020-08-18 21:39:55 +02:00
COPYING Initial commit for issue template app 2016-08-24 17:38:20 +02:00
Makefile Run composer before tests 2018-08-15 18:44:34 +02:00
README.md Allow apps to define custom bug report details 2017-10-25 14:00:16 +02:00
composer.json Add rendered markdown preview 2018-08-15 17:39:16 +02:00
composer.lock make stylelint work 2020-09-03 16:42:06 +02:00
krankerl.toml Update krankerl config 2020-08-18 21:39:55 +02:00
package-lock.json chore(deps): Bump elliptic from 6.5.7 to 6.6.0 2024-10-31 02:14:46 +00:00
package.json chore(deps-dev): Bump @nextcloud/webpack-vue-config from 6.1.1 to 6.2.0 2024-10-12 01:24:20 +00:00
screenshot.png Update screenshot 2018-08-15 18:15:18 +02:00
stylelint.config.js Add stylelint config 2020-09-03 16:55:21 +02:00
webpack.config.js chore: Updat webpack config and make build work again 2023-05-28 17:24:32 +02:00

README.md

Issue Template

Nextcloud app to prefill github issue with current server information.

Screenshot

Place this app in nextcloud/apps/

Building the app

The app can be built by using the provided Makefile by running:

make

This requires the following things to be present:

  • make
  • which
  • tar: for building the archive
  • curl: used if phpunit and composer are not installed to fetch them from the web
  • npm: for building and testing everything JS, only required if a package.json is placed inside the js/ folder

The make command will install or update Composer dependencies if a composer.json is present and also npm run build if a package.json is present in the js/ folder. The npm build script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.:

package.json:

"scripts": {
    "test": "node node_modules/gulp-cli/bin/gulp.js karma",
    "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update",
    "build": "node node_modules/gulp-cli/bin/gulp.js"
}

Publish to App Store

First get an account for the App Store then run:

make && make appstore

The archive is located in build/artifacts/appstore and can then be uploaded to the App Store.

Running tests

You can use the provided Makefile to run all tests by using:

make test

This will run the PHP unit and integration tests and if a package.json is present in the js/ folder will execute npm run test

Of course you can also install PHPUnit and use the configurations directly:

phpunit -c phpunit.xml

or:

phpunit -c phpunit.integration.xml

for integration tests

Integration for app developers

Apps will appear automatically in the issue template app once their appinfo.xml contains a <bugs> tag with an URL to the GitHub issue tracker.

Adding custom details to your issue report:

$dispatcher = \OC::$server->getEventDispatcher();
$dispatcher->addListener('\OCA\IssueTemplate::queryAppDetails', function(GenericEvent $event) {
    if($event->getArgument('app') === 'deck') {
        $manager = \OC::$server->query(\OCA\IssueTemplate\DetailManager::class);
        $section = new \OCA\IssueTemplate\Section('server-config', 'Server configuration');
        $section->createDetail('Operating system', php_uname());
        $section->createDetail('PHP version', PHP_VERSION);
        $manager->addSection($section);
    }
});

Sections provided by default can be disabled using \OCA\IssueTemplate\DetailManager::removeSection($sectionName) method. Currently the following 3 section names are provided by default:

  • server-detail
  • log-detail
  • client-detail