{"id":15870923,"url":"https://github.com/int128/wait-for-deployment-action","last_synced_at":"2026-05-23T22:02:20.676Z","repository":{"id":59946171,"uuid":"539861027","full_name":"int128/wait-for-deployment-action","owner":"int128","description":"Action to wait for GitHub Deployments of target commit","archived":false,"fork":false,"pushed_at":"2026-05-23T16:25:01.000Z","size":24849,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T18:15:47.745Z","etag":null,"topics":["deployment","github-actions"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/int128.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":"2022-09-22T07:48:19.000Z","updated_at":"2026-05-23T16:24:38.000Z","dependencies_parsed_at":"2024-06-01T20:17:52.174Z","dependency_job_id":"ac7263f0-b389-4442-abd1-411ec98be234","html_url":"https://github.com/int128/wait-for-deployment-action","commit_stats":{"total_commits":676,"total_committers":2,"mean_commits":338.0,"dds":"0.041420118343195256","last_synced_commit":"47dc6ee3669fce696357c4a5131057112947ff3a"},"previous_names":["int128/wait-for-deployment-action"],"tags_count":91,"template":false,"template_full_name":"int128/typescript-action","purl":"pkg:github/int128/wait-for-deployment-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fwait-for-deployment-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fwait-for-deployment-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fwait-for-deployment-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fwait-for-deployment-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/int128","download_url":"https://codeload.github.com/int128/wait-for-deployment-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fwait-for-deployment-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33413623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["deployment","github-actions"],"created_at":"2024-10-06T00:40:56.644Z","updated_at":"2026-05-23T22:02:20.636Z","avatar_url":"https://github.com/int128.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wait-for-deployment-action [![ts](https://github.com/int128/wait-for-deployment-action/actions/workflows/ts.yaml/badge.svg)](https://github.com/int128/wait-for-deployment-action/actions/workflows/ts.yaml)\n\nThis is an action to wait for the GitHub Deployment.\n\n## Getting Started\n\nTo create a comment when all deployments are succeeded,\n\n```yaml\nname: wait-for-deployment-succeeded\n\non:\n  pull_request:\n\njobs:\n  notify:\n    runs-on: ubuntu-latest\n    timeout-minutes: 30\n    steps:\n      - uses: int128/wait-for-deployment-action@v1\n        id: deployment\n        with:\n          until: succeeded\n          deployment-sha: ${{ github.event.pull_request.head.sha || github.sha }}\n      - uses: int128/comment-action@v1\n        with:\n          post: |\n            ## Deployed successfully\n            ${{ steps.deployment.outputs.summary }}\n```\n\nTo create a comment when all deployments are completed or timed out,\n\n```yaml\nname: wait-for-deployment-succeeded\n\non:\n  pull_request:\n\njobs:\n  notify:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    steps:\n      - uses: int128/wait-for-deployment-action@v1\n        id: deployment\n        with:\n          timeout-seconds: 300\n          until: completed\n          deployment-sha: ${{ github.event.pull_request.head.sha || github.sha }}\n      - if: steps.deployment.outputs.succeeded == 'true'\n        uses: int128/comment-action@v1\n        with:\n          post: |\n            ## :white_check_mark: Deployed successfully\n            ${{ steps.deployment.outputs.summary }}\n      - if: steps.deployment.outputs.progressing == 'true'\n        uses: int128/comment-action@v1\n        with:\n          post: |\n            ## :construction: Deployment is in progress\n            ${{ steps.deployment.outputs.summary }}\n      - if: steps.deployment.outputs.failed == 'true'\n        uses: int128/comment-action@v1\n        with:\n          post: |\n            ## :x: Deployment failed\n            ${{ steps.deployment.outputs.summary }}\n```\n\n### Wait for the condition\n\nIf `until` is set to `succeeded`,\n\n- When **all** deployments are succeeded, this action exits successfully.\n- When **any** deployment is failed, this action exits with an error.\n- When no deployment is found, this action exits successfully.\n\nIf `until` is set to `completed`,\n\n- When **all** deployments are completed, this action exits successfully.\n- When no deployment is found, this action exits successfully.\n\n### Set a timeout\n\nIf `timeout-seconds` is set, this action stops after the timeout.\nThis action determines the exit code based on the condition at the timeout.\n\nIf `timeout-seconds` is not set, this action waits forever until the condition is met.\n\n## Specification\n\n### Inputs\n\n| Name                      | Default        | Description                                             |\n| ------------------------- | -------------- | ------------------------------------------------------- |\n| `filter-environments`     | -              | Filter deployments by environment patterns              |\n| `exclude-environments`    | -              | Exclude deployments by environment patterns             |\n| `filter-tasks`            | -              | Filter deployments by task patterns                     |\n| `until`                   | (required)     | Either `completed` or `succeeded`                       |\n| `initial-delay-seconds`   | 10             | Initial delay before polling in seconds                 |\n| `period-seconds`          | 15             | Polling interval in seconds                             |\n| `timeout-seconds`         | -              | If set, poll until the timeout                          |\n| `deployment-sha`          | (required)     | Find the deployments of the commit                      |\n| `summary-markdown-flavor` | `github`       | Flavor of `summary` output. Either `github` or `slack`. |\n| `token`                   | `github.token` | GitHub token                                            |\n\n### Outputs\n\n| Name          | Description                               |\n| ------------- | ----------------------------------------- |\n| `completed`   | Whether **all** deployments are completed |\n| `succeeded`   | Whether **all** deployments are succeeded |\n| `progressing` | Whether **any** deployment is progressing |\n| `failed`      | Whether **any** deployment is failed      |\n| `total-count` | Total number of deployments               |\n| `summary`     | Markdown list of all deployments          |\n| `json`        | JSON representation of all deployments    |\n\nWhen no deployment is found, this action sets `completed` and `succeeded` to true.\n\nThis action determines the outputs as below table.\n\n| GitHub deployment state | Completed | Succeeded | Progressing | Failed |\n| ----------------------- | --------- | --------- | ----------- | ------ |\n| QUEUED                  | -         | -         | x           | -      |\n| IN_PROGRESS             | -         | -         | x           | -      |\n| ACTIVE                  | x         | x         | -           | -      |\n| SUCCESS                 | x         | x         | -           | -      |\n| FAILURE                 | x         | -         | -           | x      |\n| ERROR                   | x         | -         | -           | x      |\n| (others)                | -         | -         | -           | -      |\n\nx: This action maps the state of GitHub deployment to the corresponding column.\n\n#### `json` output\n\nHere is an example of the `json` output.\n\n```json\n{\n  \"deployments\": [\n    {\n      \"environment\": \"pr-1\",\n      \"state\": \"ACTIVE\",\n      \"url\": \"https://argocd.example.com/pr-1\"\n    }\n  ]\n}\n```\n\nSee [deployments.ts](src/deployments.ts) for the type definition.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fwait-for-deployment-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fint128%2Fwait-for-deployment-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fwait-for-deployment-action/lists"}