{"id":23757541,"url":"https://github.com/scientanl/shortcut-releasenotes-github-action","last_synced_at":"2026-01-24T21:36:37.711Z","repository":{"id":43728136,"uuid":"323374693","full_name":"ScientaNL/shortcut-releasenotes-github-action","owner":"ScientaNL","description":"Scienta's take on release notes using Shortcut","archived":false,"fork":false,"pushed_at":"2024-08-19T07:54:09.000Z","size":679,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-05T04:38:52.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ScientaNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2020-12-21T15:25:36.000Z","updated_at":"2025-01-23T07:41:33.000Z","dependencies_parsed_at":"2024-08-19T09:06:28.443Z","dependency_job_id":"eff68fed-9b0e-42e6-98dc-05eda5c058a6","html_url":"https://github.com/ScientaNL/shortcut-releasenotes-github-action","commit_stats":null,"previous_names":["scientanl/shortcut-releasenotes-github-action"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ScientaNL/shortcut-releasenotes-github-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScientaNL%2Fshortcut-releasenotes-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScientaNL%2Fshortcut-releasenotes-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScientaNL%2Fshortcut-releasenotes-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScientaNL%2Fshortcut-releasenotes-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScientaNL","download_url":"https://codeload.github.com/ScientaNL/shortcut-releasenotes-github-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScientaNL%2Fshortcut-releasenotes-github-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28737436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T21:19:41.845Z","status":"ssl_error","status_checked_at":"2026-01-24T21:13:38.675Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2024-12-31T19:48:43.454Z","updated_at":"2026-01-24T21:36:37.691Z","avatar_url":"https://github.com/ScientaNL.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shortcut-releasenotes-github-action\n\nScienta's take on release notes using Shortcut:\n\n- Decide which version is the predecessor of this release.\n- Fetch stories from commit messages, pull requests and the comments on those PRs.\n- Add a version label to all completed stories.\n- Render all stories as release notes based on a given `ejs` template.\n\n# Usage with Github Actions\n\nUse this action on a release trigger. In the body of a release you can add a release notes tag. This tag will be substituted with the\ngenerated release notes markdown.\n\n## Example:\nWhile creating a release in Github, add a tag to the release message body. Use the name of the predecessor of this release. All issues between the current release and it's given predecessor will added to the release notes.\n```md\n[rn \u003e 7.2.0]\n```\n\nWill result in: 👇👇👇\n----------------------------\n# Release Notes 7.2.1\n_Release notes are created between releases `7.2.0` and `7.2.1`._\n\n- 👉 [View stories in Shortcut](https://app.shortcut.com/app/label/442)\n- 👉 [View Github diff](https://github.com/owner/repo/compare/7.2.1...7.2.0)\n\n# 🚀 Features\n\n- Create new login page [[236]](https://app.shortcut.com/app/story/236)\n- Add new editor [[237]](https://app.shortcut.com/app/story/237)\n\n# 🐛 Bugs\n\n- Fix broken redirect [[125]](https://app.shortcut.com/app/story/125)\n- undefined is definitely not a function [[308]](https://app.shortcut.com/app/story/308)\n-------------------------------\n👆👆👆\n\n# Development\n\n## Run Docker Stack\nCreate a `.env` file based on the template. The payload of a github action can be retrieved by using [this action](https://github.com/marketplace/actions/debug-action) in your workflow\n\nRun using docker-compose:\n```\ndocker-compose  up -d --force-recreate --remove-orphans\n```\n\n## install dependencies\n```\ndocker exec -ti clubhouse-releasenotes-github-action yarn\n```\n\n## Run\nGithub Actions has the custom to use hyphens for inputs, even though inputs are transported to node using the environment.\nAt first I had the simulate-ga added as an yarn script, but both yarn and npm remove \"invalid\" values from the environment.\n\nUse this bash script instead:\n```\ndocker exec -ti clubhouse-releasenotes-github-action ./simulate-ga.sh\n```\n\n# Templating\n\n## releasenotes-template\nThe following variables are available:\n\n| Variable                 | Description                                                                          | Type                                                      |\n|--------------------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------|\n| `head`                   | Tag name of the release                                                              | `string`                                                  |\n| `base`                   | Tag name of the version to base the release on                                       | `string`                                                  |\n| `stories`                | Shortcut stories                                                                     | `Story[]`                                                 |\n| `labelVersionFilter`     | Filter a Label[] to return only *other* version labels. It's own version is omitted. | `(labels: Label[]) =\u003e Label[]`                            |\n| `createStoryTypeFilter`  | Creates a callback which can be used in `stories.filter` to filter on a story type.  | `(storyType: string) =\u003e ((stories: Story[]) =\u003e Story[])`  |\n| `repositoryOwner`        | Github repository owner                                                              | `string`                                                  |\n| `repository`             | Github repository                                                                    | `string`                                                  |\n\n## no-stories-template\nThe following variables are available:\n\n| Variable                 | Description                                                                          | Type                                                      |\n|--------------------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------|\n| `head`                   | Tag name of the release                                                              | `string`                                                  |\n| `base`                   | Tag name of the version to base the release on                                       | `string`                                                  |\n| `repositoryOwner`        | Github repository owner                                                              | `string`                                                  |\n| `repository`             | Github repository                                                                    | `string`                                                  |\n\n# Github Action\n## Inputs\n| Input                    | Description                                                                     |\n|--------------------------|---------------------------------------------------------------------------------|\n| `github-token`           | Github Personal Access Token                                                    |\n| `clubhouse-token`        | Shortcut API token                                                              |\n| `repository-owner`       | Repository owner where releases are made from                                   |\n| `repository-name`        | Repository where releases are made from                                         |\n| `releasenotes-template`  | ejs-driven markdown template to render the release notes                        |\n| `no-stories-template`    | ejs-driven markdown template to render if there are no completed stories found  |\n\n## action example\n```\nname: Generate release notes\non:\n  release:\n    types: [ created, edited ]\njobs:\n  generate-releasenotes:\n    name: Generate release notes\n    runs-on: ubuntu-latest\n    steps:\n      - $ref: ./partials/checkout.yml\n\n      - name: Read release notes markdown template\n        id: releasenotes-template\n        uses: juliangruber/read-file-action@v1\n        with:\n          path: ./.github/release-notes/releas-notes.template.md\n      - name: Read release notes no stories markdown template\n        id: no-stories-template\n        uses: juliangruber/read-file-action@v1\n        with:\n          path: .github/release-notes/no-stories-found.template.md\n\n      - name: Generate release notes\n        uses: ScientaNL/clubhouse-releasenotes-github-action@main\n        with:\n          github-token: \"${{ secrets.GITHUB_TOKEN }}\"\n          clubhouse-token: \"${{ secrets.CLUBHOUSE_API }}\"\n          repository-owner: \"owner\"\n          repository-name: \"repo\"\n          releasenotes-template: \"${{ steps.releasenotes-template.outputs.content }}\"\n          no-stories-template: \"${{ steps.no-stories-template.outputs.content }}\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscientanl%2Fshortcut-releasenotes-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscientanl%2Fshortcut-releasenotes-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscientanl%2Fshortcut-releasenotes-github-action/lists"}