{"id":17043609,"url":"https://github.com/florentindubois/git-changelog","last_synced_at":"2025-04-12T15:11:29.389Z","repository":{"id":41870702,"uuid":"135821181","full_name":"FlorentinDUBOIS/git-changelog","owner":"FlorentinDUBOIS","description":"Generate changelog from git commit history","archived":false,"fork":false,"pushed_at":"2022-10-07T18:56:04.000Z","size":119,"stargazers_count":7,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T09:45:12.029Z","etag":null,"topics":["changelog","commit","git","history","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/FlorentinDUBOIS.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}},"created_at":"2018-06-02T13:45:25.000Z","updated_at":"2022-11-28T10:17:34.000Z","dependencies_parsed_at":"2022-08-11T19:50:26.316Z","dependency_job_id":null,"html_url":"https://github.com/FlorentinDUBOIS/git-changelog","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorentinDUBOIS%2Fgit-changelog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorentinDUBOIS%2Fgit-changelog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorentinDUBOIS%2Fgit-changelog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorentinDUBOIS%2Fgit-changelog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlorentinDUBOIS","download_url":"https://codeload.github.com/FlorentinDUBOIS/git-changelog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586230,"owners_count":21128997,"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","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":["changelog","commit","git","history","rust"],"created_at":"2024-10-14T09:29:59.120Z","updated_at":"2025-04-12T15:11:29.369Z","avatar_url":"https://github.com/FlorentinDUBOIS.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git changelog [![Build Status](https://travis-ci.org/FlorentinDUBOIS/changelog.svg?branch=master)](https://travis-ci.org/FlorentinDUBOIS/changelog)\n\n\u003e Generate a changelog using the git commit history\n\n## Getting started\n\nTo compile this application, you need an environment with rust available.\nIf you have to install one of them, you should take a look at [rustup](https://rustup.rs/).\n\n### Compiling from sources\n\nFirstly, we will clone the repository using the following command:\n\n```sh\ngit clone git@github.com:FlorentinDUBOIS/git-changelog.git\n```\n\nCompile the application:\n\n```sh\ncargo build --release\n```\n\nYou can find the released binary in the `target/release` folder.\n\n## Configuration\n\nAn example of the `changelog.toml` file used to generate the changelog:\n\n```toml\n# Kinds are based on https://github.com/angular/angular/blob/master/CONTRIBUTING.md#type\n#\n# When a commit match the kind, it will be pushed in the related rubrics.\n# If it not match, the commit will not be render on the CHANGELOG.md.\n#\n# For the changelog project, there are multiples kinds defined:\n#\n# - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)\n# - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)\n# - docs: Documentation only changes\n# - feat: A new feature\n# - fix: A bug fix\n# - perf: A code change that improves performance\n# - refactor: A code change that neither fixes a bug nor adds a feature\n# - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)\n# - test: Adding missing tests or correcting existing tests\n# - infra: A code change related to the infrastructure\n# - chore: Task that will be done\n[kinds]\nbuild = \"Build improvements\"\nci = \"Continuous integration improvements\"\ndocs = \"Documentation enhancements\"\nfeat = \"Features\"\nfix = \"Fix changes\"\nperf = \"Performance improvements\"\nrefactor = \"Refactor enhancements\"\nstyle = \"Style changes\"\ntest = \"Unit test changes\"\ninfra = \"Infrastructure changes\"\nchore = \"Chore tasks\"\n\n# Repositories is an array of git repository that will be used in order to render\n# the CHANGELOG.md.\n[[repositories]]\n# Name to give to the repository in the CHANGELOG.md\nname = \"Changelog\"\n\n# Path to the git repository\npath = \".\"\n\n# Scopes are based on https://github.com/angular/angular/blob/master/CONTRIBUTING.md#scope\n#\n# If scopes are omitted, there is no check on it, so all scopes are accepted.\n#\n# Scopes are parts of the software which can be impacted during the development.\nscopes = [\n  \"travis\",\n  \"parser\",\n  \"policy\",\n  \"cmd\",\n  \"logger\",\n  \"git\",\n  \"cargo\",\n  \"changelog\",\n]\n\n# Range allow to select from what and to commit you want to render the CHANGELOG.md.\n# The left-hand commit will be hidden and the right-hand commit pushed.\n#\n# if range is omited all history is used.\n#\n# example:\n#\n# range = \"820305f..HEAD\"\n\n# Link allow to directly retrieve commit details by providing a link pointing to\n# them.\n#\n# Use {hash} to select the place where the commit's hash should be inject\nlink = \"https://github.com/FlorentinDUBOIS/changelog/commit/{hash}\"\n\n```\n\n## Usage\n\nIn order to get help the flag `--help` will display the help about the current command.\n\n```sh\n$ git changelog -h\ngit-changelog 0.2.1\n\nUSAGE:\n    git-changelog [FLAGS] [OPTIONS]\n\nFLAGS:\n    -t, --check      Check if the configuration is healthy\n    -h, --help       Prints help information\n    -v               Increase the log verbosity\n    -V, --version    Prints version information\n\nOPTIONS:\n    -c, --config \u003cconfig\u003e    Use the specified configuration file [default: changelog.toml]\n    -f, --format \u003cformat\u003e    Output using the specified format (available formats are: html or markdown) [default: markdown]\n    -o, --output \u003coutput\u003e    Set the output destination [default: CHANGELOG]\n\n```\n\nTo generate a `CHANGELOG.md` file, you will need a `changelog.toml` file,\nyou can find an example in this repository.\n\n```sh\n$ git changelog -vvvvvvv\nJan 04 16:21:57.970 INFO Skip merge commit, hash: 8a42a16\nJan 04 16:21:57.973 INFO Skip merge commit, hash: a48267d\n```\n\n### Tags support\n\nThere is nothing special to do in order to make git tags working. There is only one things that you should care. The lightweight git tag are not supported.\n\nTo create a git tag, you should use the following command:\n\n```sh\ngit tag -a [-s] vX.Y.Z\n```\n\nThis will open an editor to add a message on the git tag.\n\n### Template changes\n\nIf you want to change the mjml file, you will have to rebuild git-changelog to apply your modification.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorentindubois%2Fgit-changelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorentindubois%2Fgit-changelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorentindubois%2Fgit-changelog/lists"}