{"id":19820724,"url":"https://github.com/ecampidoglio/auto-release-draft","last_synced_at":"2025-05-01T11:33:54.013Z","repository":{"id":41973956,"uuid":"230602535","full_name":"ecampidoglio/auto-release-draft","owner":"ecampidoglio","description":":octocat::pencil: Drafts a GitHub release with the changes introduced by a newly created version tag.","archived":false,"fork":false,"pushed_at":"2023-10-19T13:46:51.000Z","size":3113,"stargazers_count":15,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T11:05:57.732Z","etag":null,"topics":["github-actions","javascript-action","pluralsight","release-automation","release-notes"],"latest_commit_sha":null,"homepage":"https://www.pluralsight.com/courses/building-custom-github-actions","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/ecampidoglio.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}},"created_at":"2019-12-28T11:45:06.000Z","updated_at":"2024-10-24T13:16:27.000Z","dependencies_parsed_at":"2023-01-11T17:22:09.691Z","dependency_job_id":"21301a52-3e5a-4424-bc90-800d955f6e3e","html_url":"https://github.com/ecampidoglio/auto-release-draft","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"actions/typescript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecampidoglio%2Fauto-release-draft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecampidoglio%2Fauto-release-draft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecampidoglio%2Fauto-release-draft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecampidoglio%2Fauto-release-draft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecampidoglio","download_url":"https://codeload.github.com/ecampidoglio/auto-release-draft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251869469,"owners_count":21657268,"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":["github-actions","javascript-action","pluralsight","release-automation","release-notes"],"created_at":"2024-11-12T10:24:28.121Z","updated_at":"2025-05-01T11:33:53.631Z","avatar_url":"https://github.com/ecampidoglio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auto Release Draft\n\nA GitHub action that automatically drafts a GitHub release based on a newly created version tag.\n\nThe commit messages between the created version tag and the one that came before it will become the release notes.\n\nHere's an example. Let's assume the history of your repository looks like this:\n\n```\n    ┌────┐      ╔════╗\n    │ v1 │      ║ v2 ║           # Release Notes\n    └────┘      ╚════╝\n       │           │     ━━━━▶   - D\n       ▼           ▼             - C\n A ─ ─ B ─ ─ C ─ ─ D\n```\n\nHere, `v2` is the last created version tag. When `auto-release-draft` runs, it will draft a release with the commit messages for `C` and `D` as the release notes.\n\nIf the created version tag is the first one in the repository, then all commit messages from the beginning of the repository's history will be included in the release notes:\n\n```\n                ╔════╗           # Release Notes\n                ║ v1 ║\n                ╚════╝           - D\n                   │     ━━━━▶   - C\n                   ▼             - B\n A ─ ─ B ─ ─ C ─ ─ D             - A\n```\n\nIn this case, the release notes will contain the messages for `A`, `B`, `C` and `D`.\n\nA version tag is an [annotated tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging#_annotated_tags) whose name starts with the prefix `v` followed by one or more characters. This means `v1`, `v.1`, `v1.0.0` and `v1.0.0-beta1` are all valid version tags. If you don't know which versioning scheme to adopt for your project, [Semantic Versioning](https://semver.org) is a very good choice.\n\n## Inputs\n\n### `repo-token`\n\n**(Required)** The `GITHUB_TOKEN` used to access the current repository from the GitHub REST API.\n\n## Outputs\n\n### `release-url`\n\nThe URL of the GitHub release that was drafted. Defaults to an empty string.\n\n## Usage\n\nHere's an example of a workflow that listens for the `create` event and automatically creates a release draft with the commit messages as release notes. It also prints the URL of the release page to the build log.\n\n```yaml\nname: Test\non:\n  create:\njobs:\n  release:\n    name: Release\n    runs-on: ubuntu-latest\n    steps:\n      - name: Create a release draft for a version tag\n        id: create-release-draft\n        uses: ecampidoglio/auto-release-draft@v1\n        with:\n          repo-token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Print the URL of the release draft\n        if: steps.create-release-draft.outputs.release-url != ''\n        run: echo ${{ steps.create-release-draft.outputs.release-url }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecampidoglio%2Fauto-release-draft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecampidoglio%2Fauto-release-draft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecampidoglio%2Fauto-release-draft/lists"}