{"id":21029396,"url":"https://github.com/5monkeys/monkey-release-action","last_synced_at":"2025-06-25T00:37:10.579Z","repository":{"id":45432442,"uuid":"212139736","full_name":"5monkeys/monkey-release-action","owner":"5monkeys","description":"GitHub Action to validate and create GitHub Releases from pull requests","archived":false,"fork":false,"pushed_at":"2025-05-15T12:09:21.000Z","size":16775,"stargazers_count":9,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-16T11:19:19.793Z","etag":null,"topics":["actions","github"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/5monkeys.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}},"created_at":"2019-10-01T16:03:52.000Z","updated_at":"2025-05-15T11:50:43.000Z","dependencies_parsed_at":"2024-11-19T12:14:21.877Z","dependency_job_id":"41b56796-2a1b-4693-8401-8b996316685d","html_url":"https://github.com/5monkeys/monkey-release-action","commit_stats":{"total_commits":39,"total_committers":8,"mean_commits":4.875,"dds":0.3589743589743589,"last_synced_commit":"f4c1bc4b67a6efa434a3aeb04dc2fa94243b9bf6"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/5monkeys/monkey-release-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5monkeys%2Fmonkey-release-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5monkeys%2Fmonkey-release-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5monkeys%2Fmonkey-release-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5monkeys%2Fmonkey-release-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/5monkeys","download_url":"https://codeload.github.com/5monkeys/monkey-release-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5monkeys%2Fmonkey-release-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261782676,"owners_count":23208907,"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":["actions","github"],"created_at":"2024-11-19T12:12:12.619Z","updated_at":"2025-06-25T00:37:10.507Z","avatar_url":"https://github.com/5monkeys.png","language":"JavaScript","readme":"# Monkey Release Action\n\n![](https://github.com/5monkeys/monkey-release-action/workflows/Test/badge.svg)\n\nValidates a pull request intended for creating a [GitHub Release](https://developer.github.com/v3/repos/releases/#create-a-release). When merged the action will then create the release.\n\n## The action flow\n\n* Trigger on [PullRequestEvent](https://developer.github.com/v3/activity/events/types/#pullrequestevent) with type `opened`, `edited` or  `reopened`.\n    * Add a label defined by `release_label` to the PR.\n    * Validate title.\n        * Checks that the PR title matches the defined `release_pattern`.\n        * If `release_pattern` is a [Calver](https://www.google.com/search?client=safari\u0026rls=en\u0026q=Calver\u0026ie=UTF-8\u0026oe=UTF-8) containing named capture groups `\u003cyear\u003e`, `\u003cmonth\u003e` and/or `\u003cday\u003e`\n        it will check that the current date matches.\n        * Check that a release with the same title does not already exist.\n    * Validate that the PR body is not empty.\n    * Validates that the PR is from an allowed branch defined by `head_branch`.\n    * If above checks fails it will review the PR and request changes.\n    * If above checks passes it will approve the PR.\n* Trigger on [PullRequestEvent](https://developer.github.com/v3/activity/events/types/#pullrequestevent) with type `closed` and `merged`.\n    * Create a [GitHub Release](https://developer.github.com/v3/repos/releases/#create-a-release) with the title and body of the PR. The release tag will be constructed as `tag_prefix`/`release`.\n\n\n## Inputs\n\n### `repo_token` **Required**\n\nThe GITHUB_TOKEN. See [details](https://help.github.com/en/articles/virtual-environments-for-github-actions#github_token-secret).\n\n### `base_branch`\n\nThe branch which the release PR will target. Defaults to `master`.\n\n### `head_branch`\n\nThe branch which the release PR originates from. Defaults to `dev`.\n\n#### Can be a glob pattern:\n- Each pattern is trimmed of whitespace.\n- `*` is a wildcard that matches zero or more characters.\n- `,` is a separator for specifying multiple branches.\n\n```yaml\nhead_branch: \"dev, hotfix/*\"\n```\n\n### `release_pattern`\n\nThe pattern to validate the PR title against. If it contains any of the named capture groups `\u003cyear\u003e`, `\u003cmonth\u003e` and/or `\u003cday\u003e` Calver validation will occur to ensure that the date is current.\n\nMake sure it validates against https://regexr.com.\n\nDefaults to `^(?\u003cyear\u003e[0-9]{4})\\.(?\u003cmonth\u003e[0-9]{2})\\.(?\u003cday\u003e[0-9]{2})-\\d$`.\n\n### `tag_prefix`\n\nThe prefix to use when tagging release. Set to null or an empty string to disable tag-prefixing. Defaults to `releases/`.\n\n### `tag_transformer`\n\nApply a transform on the tag before validating and releasing it.\nAvailable choices: \"title\", \"dashes-and-number\".\n\nThe default is `title`, which supplies the PR title as is.\n\nWhen using `dashes-and-number`, a PR with number 32 and title \"Fix thing\" becomes `#32-fix-thing`.\n\n### `approve_releases`\n\nSets if a PR should just be commented upon or approved and request changes depending on the success of validation. Accepts `true` or `false`. Defaults to `true` .\n\n### `release_label`\n\nThe label to add to the release PR. Set to an empty string to disable. Defaults to `release`.\n\n### `prerelease`\n\nCreates a prerelease instead. Defaults to `false`.\n\n### `validate`\n\nValidate name and description of PR according to provided input. Defaults to `true`.\n\n### `create_status`\n\nSets if a [GitHub status](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-status-checks) should\nbe created by the action. This is useful when wanting to restrict merging until the action runs successfully. Since GitHub creates a\ncheck on the PR for every PR event that triggers the action isn't useful to restrict merging by the action checks. Instead use this status specified by `status_name`.\nDefaults to `true`.\n\n### `status_name`\n\nThe name of the status created when `create_status` is set to `true`. Defaults to `Monkey Release`.\n\n### `valid_release_message`\n\nMessage to comment with on valid release PRs. Can be overridden to add custom\ncheerfulness or reminders. Defaults to `Valid release 🍌`.\n\n## Outputs\n\n### `release`\n\nThe release title.\n\n## Example usage\n\n```yaml\non:\n  pull_request:\n    types: [opened, reopened, edited, closed]\n    branches:\n      - master\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: 5monkeys/monkey-release-action@master\n        id: release\n        with:\n          repo_token: ${{ secrets.GITHUB_TOKEN }}\n          base_branch: master\n          head_branch: dev\n          tag_prefix: releases/\n          approve_releases: true\n          release_label: release\n```\n\n# Development\n\n- Install deps: `npm ci`\n- Run tests: `npm run test`\n- Run lint: `npm run lint`\n- Package application `npm run package`. Remember to run this before committing anything.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5monkeys%2Fmonkey-release-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F5monkeys%2Fmonkey-release-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5monkeys%2Fmonkey-release-action/lists"}