{"id":17197801,"url":"https://github.com/robstoll/tutteli-gradle-plugins","last_synced_at":"2025-07-27T07:08:26.569Z","repository":{"id":37587844,"uuid":"121558725","full_name":"robstoll/tutteli-gradle-plugins","owner":"robstoll","description":"A set of plugins for gradle containing utility functions and more","archived":false,"fork":false,"pushed_at":"2025-07-21T14:05:27.000Z","size":1353,"stargazers_count":9,"open_issues_count":5,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-21T15:24:44.457Z","etag":null,"topics":["gradle","gradle-plugin","hacktoberfest","kotlin","spekframework"],"latest_commit_sha":null,"homepage":"https://plugins.gradle.org/u/robstoll","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robstoll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"robstoll"}},"created_at":"2018-02-14T20:37:52.000Z","updated_at":"2025-07-16T18:28:34.000Z","dependencies_parsed_at":"2023-02-15T22:31:28.330Z","dependency_job_id":"5018386e-291a-4ffc-8b57-f72c85dfa920","html_url":"https://github.com/robstoll/tutteli-gradle-plugins","commit_stats":null,"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"purl":"pkg:github/robstoll/tutteli-gradle-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robstoll%2Ftutteli-gradle-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robstoll%2Ftutteli-gradle-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robstoll%2Ftutteli-gradle-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robstoll%2Ftutteli-gradle-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robstoll","download_url":"https://codeload.github.com/robstoll/tutteli-gradle-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robstoll%2Ftutteli-gradle-plugins/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267320257,"owners_count":24068527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","gradle-plugin","hacktoberfest","kotlin","spekframework"],"created_at":"2024-10-15T01:57:21.860Z","updated_at":"2025-07-27T07:08:26.551Z","avatar_url":"https://github.com/robstoll.png","language":"Groovy","funding_links":["https://github.com/sponsors/robstoll"],"categories":[],"sub_categories":[],"readme":"[![Gradle Plugin Portal](https://img.shields.io/badge/gradle%20plugin-v5.0.3-blue.svg)](https://plugins.gradle.org/u/robstoll)\n[![Apache license](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](http://opensource.org/licenses/Apache2.0)\n[![Build Status Ubuntu](https://github.com/robstoll/tutteli-gradle-plugins/workflows/Ubuntu/badge.svg?event=push)](https://github.com/robstoll/tutteli-gradle-plugins/actions?query=workflow%3AUbuntu+branch%3Amain)\n[![Build Status Windows](https://github.com/robstoll/tutteli-gradle-plugins/workflows/Windows/badge.svg?event=push)](https://github.com/robstoll/tutteli-gradle-plugins/actions?query=workflow%3AWindows+branch%3Amain)\n[![Coverage](https://codecov.io/gh/robstoll/tutteli-gradle-plugins/branch/main/graph/badge.svg)](https://codecov.io/github/robstoll/tutteli-gradle-plugins/branch/main)\n\n# Tutteli gradle plugin\nA set of gradle plugins which provide utility tasks and functions which I often use in my projects.\n\n*You want to use one of them as well?*\n\nSweet :smile: the following sections will cover a few features.\nThey are most probably not complete\n(and maybe out-dated, bear with me, as far as I know I am the only one using them).\n\nPlease [open an issue](https://github.com/robstoll/tutteli-gradle-plugins/issues/new),\nif you find a bug or need some help.\n\nThe following sections give brief information what the different plugins offer.\n\n# ch.tutteli.gradle.plugins.dokka [🔗](https://plugins.gradle.org/plugin/ch.tutteli.dokka/5.0.3)\n\nApplies the [dokka-plugin](https://github.com/Kotlin/dokka) and defines a `sourceLink` per `dokkaSourceSet`.\nIf the project version follows the pattern x.y.z, then an `externalDocumentationLink` per `dokkaSourceSet` is defined in addition.\nThe url used for the `sourceLink` and the `externalDocumentationLink` is based on a given githubUser.\nLast but not least, it automatically configures dokka to look in test folder for *Samples.kt files for samples linked\nin KDoc.\n\n# ch.tutteli.gradle.plugins.junitjacoco [🔗](https://plugins.gradle.org/plugin/ch.tutteli.junitjacoco/5.0.3)\nApplies the [junit-platform-gradle-plugin](https://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle)\nas well as the [jacoco-plugin](https://docs.gradle.org/current/userguide/jacoco_plugin.html)\nand applies some default configuration.\n\nThis plugin does not set up a junit engine and you need to define it yourself.\nHave a look at [build.gradle](https://github.com/robstoll/tutteli-gradle-plugins/tree/v5.0.3/build.gradle#L61)\nfor an example.\n\n# ch.tutteli.gradle.plugins.kotlin.module.info [🔗](https://plugins.gradle.org/plugin/ch.tutteli.gradle.plugins.kotlin.module.info/5.0.3)\n\nIntended to be used in a kotlin project where either module-info.java is the single java source file or where \u003e= jdk 11 is used.\nIt sets up compileJava accordingly and configures JavaCompile tasks to use jdk 11 for `sourceCompatibility`/`targetCompatibility` if not already set or higher.\n\nPer default, it reads the module name (which is used for `--patch-module`) from the defined module-info.java.\nYou can speed up this process (in case you have many java files) by defining `moduleName` on `project.extra`.\n\n# ch.tutteli.gradle.plugins.publish [🔗](https://plugins.gradle.org/plugin/ch.tutteli.gradle.plugins.publish/5.0.3)\n\nApplies the `maven-publish` and `signing` plugin and \nconfigures them based on given license(s), a github user and a few other information.\nIt exposes the `tutteliPublish` extension which lets you specify those information and refine default conventions.\nHave a look at the [example in the tests](https://github.com/robstoll/tutteli-gradle-plugins/tree/v5.0.3/tutteli-gradle-publish/src/test/groovy/ch/tutteli/gradle/publish/PublishPluginIntTest.groovy#L41)\nfor more information.\n\nIf not set, it automatically propagates `version` and `group` from `rootProject` to subprojects \n(`group` of subprojects are set to \"\" when plugin is applied, would default to `rootProject.name`).\n\nIf no MavenPublication is defined, then it creates one which:\n- automatically uses `project.components.java` if available.\n- includes all Jar Tasks into the publication (you can use an `artifactFilter` to exclude some)\n\nRegardless if there was one or several existing MavenPublications or one was created by the plugin.\nAll Jar Tasks are modified in a way that they include the LICENSE(.txt) file located in the root of the rootProject\nand augments the manifest file with information such as Vendor, Kotlin-version used etc.\n\nLast but not least, it augments the pom-file with license, developer and scm information (can be configured via the `tutteliPublish` extension)\n\nThe conventions:\n- Apache 2.0 is used as default license\n- project.group, project.description and project.version is used in publishing\n- configures `singing` to `useGpgCmd`\n\n# ch.tutteli.gradle.plugins.spek [🔗](https://plugins.gradle.org/plugin/ch.tutteli.spek/5.0.3)\n-\u003e will most likely be removed with 6.0.0 (spek is no longer a reliable test runner IMO regarding maintenance)\n\nApplies the junitjacoco plugin (which itself applies the junit and jacoco plugin, see two sections above) \nand sets up [Spek](http://spekframework.org/) as junit engine.\nRequires that a JVM compliant kotlin plugin is applied first.\nMoreover, it adds `mavenCentral()` to the repositories and sets up kotlin dependencies:\nkotlin-stdlib as implementation and kotlin-reflect as testImplementation dependency -- kotlin-reflect is required by spek.\n\n# License\nAll tutteli gradle plugins are licensed under [Apache 2.0](http://opensource.org/licenses/Apache2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobstoll%2Ftutteli-gradle-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobstoll%2Ftutteli-gradle-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobstoll%2Ftutteli-gradle-plugins/lists"}