{"id":21384047,"url":"https://github.com/nbbrd/heylogs","last_synced_at":"2026-04-07T16:01:01.646Z","repository":{"id":58861748,"uuid":"531893191","full_name":"nbbrd/heylogs","owner":"nbbrd","description":"Heylogs - communicate changes at scale","archived":false,"fork":false,"pushed_at":"2026-04-01T12:21:25.000Z","size":1278,"stargazers_count":7,"open_issues_count":16,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-04-01T14:41:53.592Z","etag":null,"topics":["command-line-tool","java8","keep-a-changelog","library","maven-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nbbrd.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-02T11:11:47.000Z","updated_at":"2026-04-01T12:21:22.000Z","dependencies_parsed_at":"2026-03-16T23:04:08.896Z","dependency_job_id":null,"html_url":"https://github.com/nbbrd/heylogs","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/nbbrd/heylogs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbbrd%2Fheylogs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbbrd%2Fheylogs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbbrd%2Fheylogs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbbrd%2Fheylogs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nbbrd","download_url":"https://codeload.github.com/nbbrd/heylogs/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbbrd%2Fheylogs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31518642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["command-line-tool","java8","keep-a-changelog","library","maven-plugin"],"created_at":"2024-11-22T11:37:45.187Z","updated_at":"2026-04-07T16:01:01.635Z","avatar_url":"https://github.com/nbbrd.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Heylogs - communicate changes at scale\n\n[![Download](https://img.shields.io/github/release/nbbrd/heylogs.svg)](https://github.com/nbbrd/heylogs/releases/latest)\n[![Changes](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fnbbrd%2Fheylogs%2Fbadges%2Funreleased-changes.json)](https://github.com/nbbrd/heylogs/blob/develop/CHANGELOG.md)\n[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/com/github/nbbrd/heylogs/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/com/github/nbbrd/heylogs/README.md)\n\n`Heylogs` is a tool designed to automate the validation and the release of changes in a [human-readable format](https://keepachangelog.com).\n\nKey points:\n\n- Follow the [Keep a Changelog](https://keepachangelog.com/) format.\n- Available as a [library](docs/usage-library.md), a [command-line tool](docs/usage-cli.md), a [Maven plugin](docs/usage-maven-plugin.md) and [Maven Enforcer rules](docs/usage-enforcer-rules.md).\n- Java 8 minimum requirement\n\nFeatures:\n\n* [Create](docs/feature-init.md) changelog files, and [list](docs/feature-list.md) available resources and rules.\n* [Validate](docs/feature-check.md) changelog format, [summarize](docs/feature-scan.md) content, and [extract](docs/feature-extract.md) or filter versions for publication or searching.\n* [Add](docs/feature-push.md), [fetch](docs/feature-fetch.md), or set [summaries](docs/feature-note.md) for changes; [release](docs/feature-release.md) new versions or [yank](docs/feature-yank.md) problematic releases.\n* Integrate with [GitHub](docs/feature-forge.md), [GitLab](docs/feature-forge.md), and [Forgejo](docs/feature-forge.md); support [semantic](docs/feature-versioning.md), [calendar](docs/feature-versioning.md), and [regex](docs/feature-versioning.md) versioning; and handle [tag](docs/feature-tagging.md) prefix strategies.\n* Automate workflows in [CI/CD](docs/usage-pipelines.md) pipelines and support hierarchical [configuration](docs/feature-config-file.md) via `heylogs.properties` files.\n\n[ [Usage](#usage) | [Features](#features) | [Cookbook](#cookbook) | [Developing](#developing) | [Contributing](#contributing)  | [Licensing](#licensing) | [Related work](#related-work)]\n\n## Usage\n\nHeylogs is available in multiple formats to fit your workflow:\n\n- **[Library](docs/usage-library.md)** - Java API for programmatic access\n- **[Command-line tool](docs/usage-cli.md)** - Command-line tool for any platform\n- **[Maven plugin](docs/usage-maven-plugin.md)** - Maven build integration\n- **[Maven Enforcer rules](docs/usage-enforcer-rules.md)** - Enforce changelog quality in builds\n- **[CI/CD pipelines](docs/usage-pipelines.md)** - Integrate into CI/CD environments\n\n## Features\n\nHeylogs provides several **commands** to interact with changelog files:\n\n- **[init](docs/feature-init.md)** - Create a new changelog file with a template\n- **[check](docs/feature-check.md)** - Validate changelog format against an extensive set of rules\n- **[scan](docs/feature-scan.md)** - Summarize changelog content and metadata\n- **[list](docs/feature-list.md)** - Display all available resources and rules\n- **[extract](docs/feature-extract.md)** - Filter and extract specific versions\n- **[push](docs/feature-push.md)** - Insert a change entry to the Unreleased section\n- **[fetch](docs/feature-fetch.md)** - Fetch a change from a forge issue or pull request into Unreleased\n- **[note](docs/feature-note.md)** - Set or update the summary text after the Unreleased header\n- **[release](docs/feature-release.md)** - Convert unreleased changes into a new release\n- **[yank](docs/feature-yank.md)** - Mark an existing release as yanked\n- **[format](docs/feature-format.md)** - Normalize content and enforce structural ordering\n\nHeylogs also provides some **customizations** to adapt to various workflows:\n\n- **[forge](docs/feature-forge.md)** - Support for GitHub, GitLab, and Forgejo specific features\n- **[versioning](docs/feature-versioning.md)** - Validate version numbers using semver, calver, or custom regex patterns\n- **[tagging](docs/feature-tagging.md)** - Configure version tag prefixes (e.g., v1.0.0)\n- **[rules](docs/feature-rules.md)** - Extensive set of rules to enforce changelog quality and consistency\n\nHeylogs also has some **quality-of-life** features to make it easier to use and integrate into different workflows:\n\n- **[config file](docs/feature-config-file.md)** - Hierarchical configuration through `heylogs.properties` files, similar to Lombok's configuration system\n\nSee the [feature matrix](docs/feature-matrix.md) for a summary of feature support by usage mode.\n\n## Cookbook\n\n- **[badges](docs/cookbook-badges.md)** - Generate badges for unreleased changes\n- **[gitflow](docs/cookbook-gitflow.md)** - Automate the changelog release\n- **[tips](docs/cookbook-tips.md)** - Tips and best practices for using Heylogs effectively\n\n## Developing\n\nThis project is written in Java and uses [Apache Maven](https://maven.apache.org/) as a build tool.  \nIt requires [Java 8 as minimum version](https://whichjdk.com/) and all its dependencies are hosted\non [Maven Central](https://search.maven.org/).\n\nThe code can be build using any IDE or by just type-in the following commands in a terminal:\n\n```shell\ngit clone https://github.com/nbbrd/heylogs.git\ncd heylogs\nmvn clean install\n```\n\n## Contributing\n\nAny contribution is welcome and should be done through pull requests and/or issues.\n\n## Licensing\n\nThe code of this project is licensed under\nthe [European Union Public Licence (EUPL)](https://joinup.ec.europa.eu/page/eupl-text-11-12).\n\n## Related work\n\nThis project is not the only one that deals with keep-a-changelog format.  \nHere is a non-exhaustive list of related work:\n\n- [clparse](https://github.com/marcaddeo/clparse)\n- [GIT Changelog Merge Driver](https://github.com/maven-flow/changelog-merge-driver) - does a semantic merge of two changelogs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbbrd%2Fheylogs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnbbrd%2Fheylogs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbbrd%2Fheylogs/lists"}