{"id":15020776,"url":"https://github.com/electron/unreleased","last_synced_at":"2025-07-20T02:07:04.880Z","repository":{"id":34990672,"uuid":"179745999","full_name":"electron/unreleased","owner":"electron","description":"Checks for and reports commits unreleased for a specific release branch.","archived":false,"fork":false,"pushed_at":"2025-04-03T05:36:19.000Z","size":717,"stargazers_count":14,"open_issues_count":1,"forks_count":15,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-08T10:47:05.998Z","etag":null,"topics":[],"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/electron.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-05T19:55:23.000Z","updated_at":"2025-04-04T04:03:18.000Z","dependencies_parsed_at":"2023-02-19T06:30:33.490Z","dependency_job_id":"8c038609-8ed7-4c1a-bfd9-c5b0794e33cb","html_url":"https://github.com/electron/unreleased","commit_stats":{"total_commits":212,"total_committers":15,"mean_commits":"14.133333333333333","dds":"0.37735849056603776","last_synced_commit":"9b744b5f849180bb647c677846e0b310436526df"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/electron/unreleased","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Funreleased","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Funreleased/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Funreleased/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Funreleased/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/electron","download_url":"https://codeload.github.com/electron/unreleased/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Funreleased/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265124257,"owners_count":23714903,"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":[],"created_at":"2024-09-24T19:55:36.810Z","updated_at":"2025-07-20T02:07:04.828Z","avatar_url":"https://github.com/electron.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Electron Unreleased Commit Audit\n\n[![Test](https://github.com/electron/unreleased/actions/workflows/test.yml/badge.svg)](https://github.com/electron/unreleased/actions/workflows/test.yml)\n[![Perform Manual Backport Audit](https://github.com/electron/unreleased/actions/workflows/needs-manual-audit.yml/badge.svg)](https://github.com/electron/unreleased/actions/workflows/needs-manual-audit.yml)\n[![Perform Unreleased Audit](https://github.com/electron/unreleased/actions/workflows/unreleased-audit.yml/badge.svg)](https://github.com/electron/unreleased/actions/workflows/unreleased-audit.yml)\n\nThis repository allows users to query information relating to release branches on a desired repository.\n\nThere are four potential actions possible:\n1. Reporting commits unreleased for a specific release branch.\n2. Reporting pull requests targeting a specific release branch that have not yet been merged.\n3. Reporting pull requests which need to be manually backported to a particular release line.\n4. Perform a pre-release audit combining actions 2 and 3.\n\nAn unreleased commit audit is triggered automatically via cron job on Monday mornings at 9AM PST for all supported release branches of your repository.\n\n### Setup\n\nThis tool will default to setting the organization and repository name to [`electron/electron`](https://github.com/electron/electron), but you can set your own by setting `ORGANIZATION_NAME` and `REPO_NAME` as environment variables.\n\nYou can also set the number of currently supported release lines with the `NUM_SUPPORTED_VERSIONS` env var.\n\n### Check Unreleased\n\nAn unreleased commit audit can be triggered via Slack using the following:\n\n```sh\n/check-unreleased \u003cbranch_name\u003e\n```\n\nwhere `branch-name` matches the name of a release line branch of the desired repository.\n\nExample:\n\n```sh\n/check-unreleased 9-x-y\n```\n\nTo manually query the status of all currently supported release branches:\n\n```sh\n/check-unreleased all\n```\n\n### Check Unmerged\n\nAn unmerged pull request audit can be triggered via Slack using the following:\n\n```sh\n/check-unmerged \u003cbranch_name\u003e\n```\n\nwhere `branch-name` matches the name of a release line branch of the repository.\n\nExample:\n\n```sh\n/check-unmerged 10-x-y\n```\n\n### Check Needs Manual\n\nAn audit of pull requests needing manual backport to a particular release line can be triggered via Slack using the following:\n\n```sh\n/check-needs-manual \u003cbranch_name\u003e \u003cauthor\u003e \u003cremind\u003e\n```\n\nwhere `branch_name` matches the name of a release line branch of the repository.\n\nExample:\n\n```sh\n/check-needs-manual 8-x-y\n```\n\n### Verify Upcoming Release Type\n\nAn verification of the semver type of the next release for a given branch can be triggered via Slack using the following:\n\n```sh\n/verify-semver \u003cbranch_name\u003e\n```\n\nwhere `branch_name` matches the name of a release line branch of the repository.\n\nExample:\n\n```sh\n/verify-semver \u003cbranch_name\u003e\n```\n\nExample output:\n\n\u003e Next release type for `12-x-y` is: **semver/patch**\n\n#### Scoping By Author \n\nThis command can be scoped by author of the original PR. For example:\n\n```sh\n/check-needs-manual 8-x-y codebytere\n```\n\nwill return all pull requests needing manual backport to a particular release line where the author of the original PR was @codebytere\n\n```\nPRs needing manual backport to 8-x-y (from @codebytere):\n* #23782 - fix: volume key globalShortcut registration\n* #23776 - fix: asynchronous URL loading in BW Proxy\n* #22342 - fix: don't run environment bootstrapper\nThere are 3 PR(s) needing manual backport to 8-x-y!\n```\n\n#### Reminding Authors\n\nYou can `@mention` authors in the audit to remind them of the manual backports they need to handle:\n\n```sh\n/check-needs-manual 8-x-y remind\n```\n\nThis will produce a list similar to the following:\n\n```\nPR(s) needing manual backport to 8-x-y (from @codebytere):\n* #23782 - fix: volume key globalShortcut registration (@codebytere)\n* #23776 - fix: asynchronous URL loading in BW Proxy (@codebytere)\n* #23678 - fix: read GTK dark theme setting on Linux (@zcbenz)\n* #23653 - docs: errors in isolated world are not dispatched to foreign worlds (@zcbenz)\n* #23415 - test: skip \"handles Promise timeouts correctly\" when ELECTRON_RUN_AS_NODE is disabled (@miniak)\n* #22342 - fix: don't run environment bootstrapper (@codebytere)\nThere are 6 PR(s) needing manual backport to 8-x-y!\n```\n\n### Perform Pre-Release Audit\n\nA pre-release audit combines the needs-manual audit with the unmerged audit to return a full list of action items that may needs to occur before a beta or stable release.\n\n```sh\n/audit-pre-release \u003cbranch_name\u003e\n```\n\nwhere `branch_name` matches the name of a release line branch of the repository.\n\nExample:\n\n```sh\n/audit-pre-release 8-x-y\n```\n\n## Environment Variables\n\nIf you would like to use `unreleased`, there are several environment variables you will need to leverage to customize it to serve your needs.\n\n* `ORGANIZATION_NAME` - the name of your organization, e.g. `electron`.\n* `REPO_NAME` - the name of the repository to run audits in, e.g. `electron`.\n* `NUM_SUPPORTED_VERSIONS` - the number of supported backport release lines (default is 4).\n* `UNRELEASED_GITHUB_APP_CREDS` - private key credentials generated for a GitHub App (required).\n* `SLACK_BOT_TOKEN` - the token that will be used to post audit result into a Slack workspace channel (required).\n* `BLOCKS_RELEASE_LABEL` - the GitHub label used to denote unmerged pull requests that should block a release (default is `blocks-release`).\n* `AUDIT_POST_CHANNEL` - the Slack workspace channel in which to post audit results.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron%2Funreleased","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectron%2Funreleased","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron%2Funreleased/lists"}