{"id":38599050,"url":"https://github.com/sakata1222/jacoco-markdown-gradle-plugin","last_synced_at":"2026-01-17T08:31:49.562Z","repository":{"id":42505042,"uuid":"325696329","full_name":"sakata1222/jacoco-markdown-gradle-plugin","owner":"sakata1222","description":"Gradle plugin to parse a jacoco report as a markdown","archived":false,"fork":false,"pushed_at":"2025-08-02T15:09:16.000Z","size":744,"stargazers_count":4,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T16:13:38.127Z","etag":null,"topics":["coverage","coverage-report","gradle-plugin","jacoco","jacoco-report","markdown"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sakata1222.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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}},"created_at":"2020-12-31T02:39:50.000Z","updated_at":"2025-08-02T15:08:55.000Z","dependencies_parsed_at":"2024-02-17T15:26:12.038Z","dependency_job_id":"96968dd6-c264-4d66-af40-7eda6016747c","html_url":"https://github.com/sakata1222/jacoco-markdown-gradle-plugin","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/sakata1222/jacoco-markdown-gradle-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakata1222%2Fjacoco-markdown-gradle-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakata1222%2Fjacoco-markdown-gradle-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakata1222%2Fjacoco-markdown-gradle-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakata1222%2Fjacoco-markdown-gradle-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sakata1222","download_url":"https://codeload.github.com/sakata1222/jacoco-markdown-gradle-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakata1222%2Fjacoco-markdown-gradle-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["coverage","coverage-report","gradle-plugin","jacoco","jacoco-report","markdown"],"created_at":"2026-01-17T08:31:49.471Z","updated_at":"2026-01-17T08:31:49.542Z","avatar_url":"https://github.com/sakata1222.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jacoco-markdown-gradle-plugin\n\n[![portal](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fplugins.gradle.org%2Fm2%2Fcom%2Fgithub%2Fsakata1222%2Fjacoco-markdown%2Fcom.github.sakata1222.jacoco-markdown.gradle.plugin%2Fmaven-metadata.xml\u0026label=Gradle+Plugin+Portal\u0026logo=Gradle)](https://plugins.gradle.org/plugin/com.github.sakata1222.jacoco-markdown)\n\n[![build](https://github.com/sakata1222/jacoco-markdown-gradle-plugin/workflows/Java%20CI%20with%20Gradle/badge.svg)](https://github.com/sakata1222/jacoco-markdown-gradle-plugin/actions?query=workflow%3A%22Java+CI+with+Gradle%22)\n[![codecov](https://codecov.io/gh/sakata1222/jacoco-markdown-gradle-plugin/branch/main/graph/badge.svg)](https://codecov.io/gh/sakata1222/jacoco-markdown-gradle-plugin)\n\n[![sonar-reliability-rating](https://sonarcloud.io/api/project_badges/measure?project=sakata1222_jacoco-markdown-gradle-plugin\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=sakata1222_jacoco-markdown-gradle-plugin)\n[![sonar-security-rating](https://sonarcloud.io/api/project_badges/measure?project=sakata1222_jacoco-markdown-gradle-plugin\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=sakata1222_jacoco-markdown-gradle-plugin)\n[![sonar-sqale-rating](https://sonarcloud.io/api/project_badges/measure?project=sakata1222_jacoco-markdown-gradle-plugin\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=sakata1222_jacoco-markdown-gradle-plugin)\n\nGradle plugin to parse jacoco report as a markdown.\n\n```shell\n$ ./gradlew build\n\n\u003e Task :example:jacocoTestReportMarkdown\n|Type       | Missed/Total|            Coverage|\n|:---       |         ---:|                ---:|\n|INSTRUCTION|~~8/18~~ 8/24|    ~~55.56~~ 66.67%|\n|BRANCH     |  ~~0/2~~ 0/4|(Not Changed)100.00%|\n|LINE       |  ~~2/6~~ 2/8|    ~~66.67~~ 75.00%|\n\nClass list with less coverage (Worst 5)\n\n|Class                                                 |Instructions(C0)|Branches(C1)|\n|:---                                                  |            ---:|        ---:|\n|jp.gr.java_conf.spica.plugin.gradle.jacoco.example.App|    8/29(72.41%)|0/4(100.00%)|\n```\n\nThe markdown is output by a file, so you can put the coverage on a Pull Request by using some CI\ntools. For GitHub actions, you can use [github-script](https://github.com/actions/github-script) to\nread the markdown and put it to the PR.\n\nGradle versions:\n\n- 9.x\n- 8.x\n- 7.3 or later\n\nJava versions:\n\n- 8 or later\n\n## Usage\n\n### Apply plugin\n\nThis plugin depends on\nthe [jacoco plugin](https://docs.gradle.org/current/userguide/jacoco_plugin.html). So apply both the\njacoco plugin and this plugin.\n\n```groovy\nplugins {\n    id 'java'\n    id 'jacoco'\n    id \"com.github.sakata1222.jacoco-markdown\" version \"X.Y.Z\"\n}\n```\n\nSee also\n[Gradle plugin portal](https://plugins.gradle.org/plugin/com.github.sakata1222.jacoco-markdown) to\ncheck the latest version.\n\n### Configuration\n\nFirst, configure the jacoco plugin based on the [jacoco plugin guide](\nhttps://docs.gradle.org/current/userguide/jacoco_plugin.html).\n\n#### Default task\n\n**A task to output coverage report as a markdown will be created by default, and dependencies are\nalso configured automatically.**\n\nConfiguration of the default task:\n\n- Name is `\u003cname-of-default-jacoco-report\u003eMarkdown` (i.e. jacocoTestReportMarkdown)\n- The task depends on a default JacocoReport task\n- A default JacocoReport task finalizedBy the task\n- A markdown file will be output in `\u003cjacoco-report-directory\u003e/jacocoSummary.md`\n\n#### Define a new task\n\n```groovy\ntask myJacocoMarkdown(type: jp.gr.java_conf.spica.plugin.gradle.jacoco.JacocoMarkdownTask) {\n    jacocoReportTask your_JacocoReport_task // auto configuration for the JacocoReportTask\n}\n```\n\n#### Customize\n\nFor default task:\n\n```groovy\njacocoMarkdown {\n    diffEnabled false // default true\n    stdout false // default true\n    classListEnabled false // default true\n    classListCondition {\n        limit = 2 // default is 5, 0 means no limit\n        excludes = [ // default is empty\n                     \"com.example.MyClass\", // when a class name exact matches this value, the class will be exclude\n                     \"/com.example.exclude.package.*/\" // regex can be used with \"/regex/\" style\n        ]\n        branchCoverageLessThan = 90 // default is 0, 0 means no filter by coverage\n    }\n}\n```\n\nFor a specific task:\n\n```groovy\nmyJacocoMarkdown {\n    jacocoXml file(\"path-to-jacoco-xml\")\n    diffEnabled false\n    stdout false\n    classListEnabled false\n    classListCondition {\n        limit = 2\n        excludes = [\n                \"com.example.MyClass\",\n                \"/com.example.exclude.package.*/\"\n        ]\n        branchCoverageLessThan = 90\n    }\n    previousJson file(\"path-to-a-base-json-to-show-the-coverage-changes\")\n    targetTypes([\"INSTRUCTION\", \"BRANCH\", \"LINE\", \"COMPLEXITY\", \"METHOD\", \"CLASS\"])\n    outputJson file(\"path-to-output-json\")\n    outputMd file(\"path-to-markdown\")\n}\n```\n\n#### Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakata1222%2Fjacoco-markdown-gradle-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakata1222%2Fjacoco-markdown-gradle-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakata1222%2Fjacoco-markdown-gradle-plugin/lists"}