{"id":22486098,"url":"https://github.com/samkelleher/conventional-github-releaser","last_synced_at":"2025-08-02T19:30:45.106Z","repository":{"id":39758228,"uuid":"186071444","full_name":"samkelleher/conventional-github-releaser","owner":"samkelleher","description":"Node utility to auto generate GitHub Release Notes from git commits using latest ECMAScript","archived":false,"fork":false,"pushed_at":"2022-08-15T09:42:16.000Z","size":388,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-12-06T17:15:23.845Z","etag":null,"topics":["conventional-changelog","conventional-commits","release-automation","release-notes"],"latest_commit_sha":null,"homepage":"https://samkelleher.com/portfolio/auto-generate-release-notes-docker-github","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samkelleher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-11T00:49:41.000Z","updated_at":"2023-06-16T22:49:32.000Z","dependencies_parsed_at":"2022-09-07T07:02:15.694Z","dependency_job_id":null,"html_url":"https://github.com/samkelleher/conventional-github-releaser","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/samkelleher/conventional-github-releaser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samkelleher%2Fconventional-github-releaser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samkelleher%2Fconventional-github-releaser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samkelleher%2Fconventional-github-releaser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samkelleher%2Fconventional-github-releaser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samkelleher","download_url":"https://codeload.github.com/samkelleher/conventional-github-releaser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samkelleher%2Fconventional-github-releaser/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268440156,"owners_count":24250736,"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-08-02T02:00:12.353Z","response_time":74,"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":["conventional-changelog","conventional-commits","release-automation","release-notes"],"created_at":"2024-12-06T17:13:54.035Z","updated_at":"2025-08-02T19:30:44.839Z","avatar_url":"https://github.com/samkelleher.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Conventional Commit Release Notes Generator for GitHub\n\u003e Use the Conventional Commits standard to auto-generate release notes.\n\n![Screenshot](/screenshot.jpg?raw=true \"Conventional Commit Release Notes Generator\")\n\n## Getting Started\n\nThis tool is designed to be consumed as a Docker image and called as part of your CI pipeline. It is optimised to run\nfollowing an application promotion workflow. This project uses itself to generate it's own changelogs using Google Cloud\nBuild, so examine the [cloudbuild.latest.yaml](cloudbuild.latest.yaml) file for reference on how to consume it.\n\nFor the report to work best, your project should use commits that conform to the [Conventional Commit](https://www.conventionalcommits.org) standard, and you\ncan use a [CLI tool](https://github.com/commitizen/cz-cli) to guide developers to write commits in this format.\n\n## Docker Usage\n\nThe utility can simply be added to your existing build workflow by consuming it as a Docker container. Simply mount\nyour source code to a `/workspace` volume and start the container. The changelog will be output.  If you use Google Cloud\nBuild, then this mount is done automatically.\n\nThis command will run the container on the current git directory and output the changelog.\n\n```\ndocker run --rm -it -v $(pwd):/workspace gcr.io/conventional-github-releaser/conventional-github-releaser\n```\n\n## Configuration\n\nTo enable automatic publishing to Github Releases, you need to configure the following environment variables.\n\n- `GITHUB_API_TOKEN` - A personal access token with 'repo' permissions.\n- `GITHUB_REPO` - The name of the repository that will have the changelog written to.\n- `GITHUB_OWNER` - The name of the repository owner. This is the organisation name or personal username on Github.\n\nTo enable automatic examination and upload of Webpack bundle stats file and reports, set the following environment variable.\n\n- `APP_VERSION` The short git has of the commit that is being promoted. Usually the current git short SHA. For example, if\nyou set the value to `015e3d2`, then this tool will look for `015e3d2-bundle-data.json` and `015e3d2-bundle-report.html` in the current\nworking directory, if none is found, it will also look in a `./reports/` directory if it exists.  You should ensure\nthat the relevant file is unarchived by your build system in advance of running this tool.\n\nIf you want to run the changelog for a tag that is not the latest, then set the following variable:\n\n- `APP_TAG`, set this to the git tag that should be reported. When omitted, by default a change log will be generated\nfrom the latest git tag and the one previous to it.  Tags *must* be semver based.  If you want to generate an older report,\nset the `APP_TAG` to the tag. If the tag is not found, it is ignored and revert to default behaviour.\n\nYou can also create draft releases, by including `--draft` in the command line as a argument. This will generate a report\nfrom the current commit from the last previous tag. No upload or release publish will take place.  If an `APP_TAG` is specified,\nthen the `--draft` flag is ignored.\n\nIf you commit direct to the working branch, then this tool will analyse conventional commit formatted commits to produce the\nreport. Say however, you run a full Pull Request workflow, then you will have only merge and squash commits that cannot be analysed.\nThis means the report will have no data, so you should include the `--pull-request-based` command line argument telling\nthe tool to include merge commits.\n\nYou can also prevent the upload of GitHub Release Notes by including the `--no-upload` arguments. The `--no-assets` argument\nwill upload the report, but not upload the relevant Webpack bundle results.\n\n```\ndocker run --rm -it -v $(pwd):/workspace gcr.io/conventional-github-releaser/conventional-github-releaser --pull-request-based\n```\n\n## Building and Commands\n\nThe script is added to a Docker image without any compile steps.\n\n- `yarn start` to run the script on the current repo, great for testing.\n- `yarn build:docker` to generate the Docker image.\n\n## Background\n\nThis tool is based upon the [Conventional Changelog Github Releaser](https://github.com/conventional-changelog/releaser-tools/tree/master/packages/conventional-github-releaser)\nwhich is a prebuilt tool for grabbing commits and publishing a release notes on GitHub, I wanted to extend the formatting and the grabbing of different tag\ntypes in projects that do not adhere to SemVer (for example in website projects where semver makes little practical sense).\n\nThe tool uses the preset [Conventional Commits Preset](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits) which itself is\nbased upon the [Conventional Changelog Spec](https://github.com/conventional-changelog/conventional-changelog-config-spec).\n\nThe spec for commits outlines the format of each specific commit, while the changelog spec outlines how these commits are grouped, formatted, and placed under semver control. Two different specs, but easy to get mixed up.\n\n## How this tool differs\n\n* Applies custom formatting over the existing preset.\n* Is triggered after tagging with no additional commits. This enables full image promotion rather than making a release commit and rebuilding. Thus this tool does not generate tags, suggestion version numbers, or make git commits.\n* It uses the latest generation ECMAScript.\n* Examines and uploads Webpack Bundle files for statistical analysis.\n* Consumed via Docker\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamkelleher%2Fconventional-github-releaser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamkelleher%2Fconventional-github-releaser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamkelleher%2Fconventional-github-releaser/lists"}