{"id":18710682,"url":"https://github.com/apify/release-pr-action","last_synced_at":"2026-02-01T02:31:36.432Z","repository":{"id":45284433,"uuid":"421149578","full_name":"apify/release-pr-action","owner":"apify","description":"This action simplify creating of release PR","archived":false,"fork":false,"pushed_at":"2026-01-20T10:52:51.000Z","size":3895,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-20T19:50:19.727Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apify.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":"2021-10-25T18:59:06.000Z","updated_at":"2025-12-12T13:50:44.000Z","dependencies_parsed_at":"2024-08-28T15:29:30.610Z","dependency_job_id":"400bdb13-fdbb-4f33-8246-0dad9dc58d17","html_url":"https://github.com/apify/release-pr-action","commit_stats":{"total_commits":26,"total_committers":3,"mean_commits":8.666666666666666,"dds":"0.46153846153846156","last_synced_commit":"a87ef5acb826be322bd92f926c5775dc0c767cc6"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/apify/release-pr-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Frelease-pr-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Frelease-pr-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Frelease-pr-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Frelease-pr-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apify","download_url":"https://codeload.github.com/apify/release-pr-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Frelease-pr-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28965350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T02:14:24.993Z","status":"ssl_error","status_checked_at":"2026-02-01T02:13:55.706Z","response_time":56,"last_error":"SSL_read: 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-11-07T12:35:17.044Z","updated_at":"2026-02-01T02:31:36.408Z","avatar_url":"https://github.com/apify.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Release pull request action\n\nThis action is used to create release from commit history with\n\n- Title based on release branch name or latest github release\n- Description containing changelog based on commit messages (conventional commits messages)\n\n## What it does\n\n- It creates pull request with title of release branch version\n- It generates change log from commits history, which can be shared in slack\n- It creates github release\n- It posts changelog to slack\n\n## Action input\n\n| Name                                | Description                                                                     | Example                       | Default        | Required |\n|-------------------------------------|---------------------------------------------------------------------------------|-------------------------------|----------------|----------|\n| `github-token`                      | Github token with repository scope permissions                                  | `${{ secrets.GITHUB_TOKEN }}` | NO DEFAULT     | yes      |\n| `changelog-scopes`                  | Scopes, that will be show in changelog                                          | `{\"Worker\": [\"worker\"]}`      | NO DEFAULT     | yes      |\n| `changelog-method`                  | Source from which to create changelog                                           | `pull_request_description`    | NO DEFAULT     | yes      |\n| `slack-token`                       | Slack token with sufficient scopes                                              | `${{ secrets.SLACK_TOKEN }}`  | NO DEFAULT     | no       |\n| `slack-channel`                     | Slack channel ID                                                                | `XXXXXX`                      | NO DEFAULT     | no       |\n| `release-name-method`               | Whether to fetch release name from branch name or bump minor of last release    | `branch`                      | `branch`       | no       |\n| `create-release-pull-request`       | Whether to create release pull request                                          | `true`                        | `false`        | no       |\n| `create-github-release      `       | Whether to create github release                                                | `true`                        | `false`        | no       |\n| `base-branch`                       | Based branch where pull request will be created                                 | `master`                      | `master`       | no       |\n| `release-name-prefix`               | Prepend prefix to release name (version)                                        | `v`                           | `v`            | no       |\n| `github-changelog-file-destination` | Where to store github changelog on filesystem                                   | `github_changelog.md`         | `changelog.md` | no       |\n| `open-ai-token`                     | Experimental feature see section [experimental feature](#experimental-feature). | `token`                       | NO_DEFAULT     | no       |\n| `fetch-author-slack-ids`            | Fetch Slack IDs of commit authors in the changelog                              | `true`                        | `false`        | no       |\n\n\n### Input details\n\n* `changelog-method` can be one of:\n  * `pull_request_description` - Changelog will taken from pull request's description (for `pull_request` trigger). Description can be edited manually.\n                                 The resulting changelog text is taken from between `\u003c!-- CHANGELOG --\u003e` comments\n  * `pull_request_commits`     - Changelog will taken from pull request's commit messages (for `pull_request` trigger)\n  * `pull_request_title`       - Changelog will be taken from pull request's title (for `pull_request` trigger)\n  * `commits_compare`          - Changelog will taken from comparison of commit messages between 2 branches\n\n* both `slack-token` and `slack-channel` must be set to send message to Slack (plus the token needs `chat.postMessage` scope)\n* `slack-token` must be set to fetch user Slack IDs (plus the token needs `users:read` and `users:read.email` scopes)\n* `release-name-method` can be on of:\n  * `branch` - parse release name from branch name (i.e. `release/v1.2.3` -\u003e `v.1.2.3`)\n  * `tag`    - parse release name from latest and bump minor (i.e. `v1.2.3` -\u003e `v.1.3.3`)\n* `github-changelog-file-destination` controls the `github-changelog-file-destination` output\n\n## Action output\n\n| Name                                | Description                             | Example                                                                      |\n|-------------------------------------|-----------------------------------------|------------------------------------------------------------------------------|\n| `github-changelog`                  | Changelog content                       | `some cool feature`                                                          |\n| `github-changelog-file-destination` | Changelog file destination              | `./changelog.md`                                                             |\n| `github-changelog-authors`          | Changelog commit authors as JSON string | `[{name:\"Tobiáš Potoček\",email:\"tobias.potocek@apify.com\",slackId:\"U0xyz\"}]` |\n\n## Experimental feature\n\nAn experimental feature will rewrite the final changelog using GPT-3 davinci language model.\nIf you want to try, you need to pass the `open-ai-token` action input with your API token from [openai.com](https://beta.openai.com/).\n\n## Example usage\n\nExample bellow opens pull request from head to base branch with changelog in it's description\n\n```yaml\nname: Release pull request\n\non:\n  push:\n    branches:\n      - release/**\n\njobs:\n  open-release-pr:\n    runs-on: ubuntu-latest\n    steps:\n      - name: run release-pr-action\n        uses: apify/release-pr-action\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          changelog-scopes: '{\"Worker\": [\"worker\"]}'\n          create-release-pull-request: true\n          changelog-method: commits_compare\n```\n\nExample bellow gets pull request description, parses changelog out of it, creates github release and sends changelog to slack\n\n```yaml\nname: Release pull request\n\non:\n  push:\n    branches:\n      - release/**\n\njobs:\n  open-release-pr:\n    runs-on: ubuntu-latest\n    steps:\n      - name: run release-pr-action\n        uses: apify/release-pr-action\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          slack-token: ${{ secrets.slackToken }}\n          changelog-scopes: '{\"Worker\": [\"worker\"]}'\n          slack-channel: 'XXXCCCVVVV'\n          changelog-method: pull_request_description\n          create-github-release: true\n```\n\n## Contribution\n\nDeveloping Github Actions is tricky. You have essentially two options:\n\n1. Use something like [`act`](https://github.com/nektos/act) to run actions and workflows locally.\n2. Push changes to GitHub and let it run there.\n\nFor the second option, this repo contains a [test workflow](./.github/workflows/test_action.yaml) that will run the\n`release-pr-action` on every PR push. As the action will run on your actual PR, `create-release-pull-request` is by\ndefault `false` so that it doesn't override your PR title and description.\n\nNote that you need to **manually build the code and commit the `dist` folder with the built code**.\n\n### Local setup\n\n1. Run `fnm use` (or `nvm`, or any other node manager you use).\n2. Run `npm install`.\n3. Run `npm run watch`.\n\n### Development workflow\n\n1. Update code in `./src`.\n2. Wait for build to finish.\n3. Commit all changes including `./dist` folder.\n4. Push changes to GitHub.\n5. Observe the action results.\n6. Repeat.\n\nFeel free to change the [test workflow](./.github/workflows/test_action.yaml) to suit your needs, but before merging\nmake sure it's configured with some reasonable defaults that will work for the next person making changes.\n\n**Tip:** To avoid constantly switching to GitHub UI, you can use an IDE integration, such\nas [GitHub Actions Manager](https://plugins.jetbrains.com/plugin/19347-github-actions-manager) for\nWebStorm, or [GitHub Actions](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions) for\nVSCode.\n\n### Submit changes\n\n1. If needed, run `npm run build` and commit and push any remaining changes.\n2. Run `npm run test`.\n3. Merge the PR.\n4. Publish a new version of action using new release (It needs to be done manually).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Frelease-pr-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapify%2Frelease-pr-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Frelease-pr-action/lists"}