{"id":23613686,"url":"https://github.com/freckle/halt-action","last_synced_at":"2025-11-06T09:30:34.255Z","repository":{"id":39884183,"uuid":"485426377","full_name":"freckle/halt-action","owner":"freckle","description":"GitHub Action to halt and un-halt open PRs","archived":false,"fork":false,"pushed_at":"2024-10-30T00:01:11.000Z","size":963,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-10-30T02:43:50.594Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/freckle.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}},"created_at":"2022-04-25T15:24:27.000Z","updated_at":"2024-10-30T00:01:15.000Z","dependencies_parsed_at":"2024-01-02T01:27:08.947Z","dependency_job_id":"fd733f0f-6170-4cc7-83c9-761e50dc5aff","html_url":"https://github.com/freckle/halt-action","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":"freckle/typescript-action-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freckle%2Fhalt-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freckle%2Fhalt-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freckle%2Fhalt-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freckle%2Fhalt-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freckle","download_url":"https://codeload.github.com/freckle/halt-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239491352,"owners_count":19647811,"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-12-27T17:18:46.461Z","updated_at":"2025-11-06T09:30:34.214Z","avatar_url":"https://github.com/freckle.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Halt Action\n\nOccasionally at Freckle, we need to ask Engineers to \"halt the line\" and hold\noff on merging PRs for a moment while we work through an issue in the deployment\npipeline -- to avoid a series of merges piling up.\n\nHistorically, this would be an update to a Slack topic and hope that everyone\nsees it. This Action is an experiment in improving that through automation.\n\n## Usage\n\n```yaml\nname: Halt\n\non:\n  pull_request:\n  push:\n    branches: main\n\njobs:\n  check-halt-status:\n    runs-on: ubuntu-latest\n    steps:\n      - if: ${{ github.event_name == 'push' }}\n        uses: actions/checkout@v3 # needed for knowing changes in push\n\n      - uses: freckle/halt-action@v1\n        with: # all optional, defaults shown\n          default-branch: main\n          halt-file: .github/HALT\n          status-context: halt\n          status-target-url: null\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n## How it works\n\n**When you need to halt the line**:\n\nCommit a file to `main` at `.github/HALT`. The file can be blank, or contain\ncontents about why. The format for these contents is discussed later.\n\nThis Action will see this addition and flip all open PRs to red. When the action\nruns on any PRs after that, as long as this file exists on `main`, those PRs\nwill receive a red status.\n\nMake the configured `status-context` a _Required Status_ to actually \"halt the\nline\".\n\n**When you're ready to get moving**:\n\nRemove the file from `main`. This Action will see this removal and flip all open\nPRs to green. Typically, we'd do this in the same PR that fixes the issue (if it\nwas caused by our code), so that things naturally begin moving again when the\nfix hits `main`.\n\n## Halt File Contents\n\nWhen a \"halt file\" exists, PRs will be halted. If the file is blank, a default\nstatus description is used. However, if the file _does_ have content, the first\nline will become the PR status description. The remaining lines, if there are\nany, will be added as a [Workflow Job Summary][workflow-job-summary].\n\n[workflow-job-summary]: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary\n\n## Inputs \u0026 Outputs\n\nSee [action.yml](./action.yml) for a complete list of inputs and outputs.\n\n## Versioning\n\nVersioned tags will exist, such as `v1.0.0` and `v2.1.1`. Branches will exist\nfor each major version, such as `v1` or `v2` and contain the newest version in\nthat series.\n\n### Release Process\n\nGiven a latest version of v1.0.1,\n\nIs this a new major version?\n\nIf yes,\n\n```console\ngit checkout main\ngit pull\ngit checkout -b v2\ngit tag -s -m v2.0.0 v2.0.0\ngit push --follow-tags\n```\n\nOtherwise,\n\n```console\ngit checkout main\ngit pull\ngit checkout v1\ngit merge --ff-only -\ngit tag -s -m v1.0.2 v1.0.2    # or v1.1.0\ngit push --follow-tags\n```\n\n---\n\n[LICENSE](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreckle%2Fhalt-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreckle%2Fhalt-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreckle%2Fhalt-action/lists"}