{"id":13825650,"url":"https://github.com/neverendingqs/netlify-deployment-hours-plugin","last_synced_at":"2025-08-25T22:02:43.193Z","repository":{"id":36185901,"uuid":"222170412","full_name":"neverendingqs/netlify-deployment-hours-plugin","owner":"neverendingqs","description":"Block deployment if it is outside of deployment hours.","archived":false,"fork":false,"pushed_at":"2023-03-05T20:17:24.000Z","size":734,"stargazers_count":10,"open_issues_count":8,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-19T22:51:38.696Z","etag":null,"topics":["netlify","netlify-plugin"],"latest_commit_sha":null,"homepage":"","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/neverendingqs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"neverendingqs","ko_fi":"neverendingqs"}},"created_at":"2019-11-16T23:06:13.000Z","updated_at":"2022-01-03T19:48:29.000Z","dependencies_parsed_at":"2024-01-18T04:04:53.348Z","dependency_job_id":null,"html_url":"https://github.com/neverendingqs/netlify-deployment-hours-plugin","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/neverendingqs/netlify-deployment-hours-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverendingqs%2Fnetlify-deployment-hours-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverendingqs%2Fnetlify-deployment-hours-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverendingqs%2Fnetlify-deployment-hours-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverendingqs%2Fnetlify-deployment-hours-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neverendingqs","download_url":"https://codeload.github.com/neverendingqs/netlify-deployment-hours-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverendingqs%2Fnetlify-deployment-hours-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259330033,"owners_count":22841537,"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":["netlify","netlify-plugin"],"created_at":"2024-08-04T09:01:24.754Z","updated_at":"2025-06-11T20:05:50.504Z","avatar_url":"https://github.com/neverendingqs.png","language":"JavaScript","funding_links":["https://github.com/sponsors/neverendingqs","https://ko-fi.com/neverendingqs"],"categories":["JavaScript"],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/neverendingqs/netlify-deployment-hours-plugin.svg?style=svg)](https://circleci.com/gh/neverendingqs/netlify-deployment-hours-plugin)\n[![npm\nversion](https://badge.fury.io/js/netlify-deployment-hours-plugin.svg)](https://badge.fury.io/js/netlify-deployment-hours-plugin)\n[![Coverage Status](https://coveralls.io/repos/github/neverendingqs/netlify-deployment-hours-plugin/badge.svg?branch=master)](https://coveralls.io/github/neverendingqs/netlify-deployment-hours-plugin?branch=master)\n\n# netlify-deployment-hours-plugin\n\nA Netlify build plugin that blocks deployment if it is outside of deployment\nhours.\n\n## Usage\n\nTo install, add the following lines to your `netlify.toml` file:\n\n```toml\n[[plugins]]\npackage = \"netlify-deployment-hours-plugin\"\n```\n\nNote: The `[[plugins]]` line is required for each plugin, even if you have other\nplugins in your `netlify.toml` file already.\n\nThere are two `inputs` required to configure this plugin:\n\n```toml\n[[plugins]]\npackage = \"netlify-deployment-hours-plugin\"\n\n  [plugins.inputs]\n  # Optional: a comma-separated list of deploy contexts this plugin should monitor (default: \"production\")\n  contexts = \"production\"   # default value\n  # A cron-like expression that expresses when a deployment can occur\n  expression = \"* * * * *\"\n  # tz database value that expresses the timezone of the expression\n  timezone = \"America/Toronto\"\n```\n\nBoth are passed into\n[cron-allowed-range](https://github.com/neverendingqs/cron-allowed-range) to\ndetermine if a deployment should proceed. See the [`cron-allowed-range`\ndocumentation](https://github.com/neverendingqs/cron-allowed-range) for more\ndetails on how to form the cron-like expression.\n\nThe required `inputs` can be overridden with environment variables for scenarios\nwhere emergency deploys were required outside of regular deployment hours:\n\n```\n* `DEPLOYMENT_HOURS_EXPRESSION`\n* `DEPLOYMENT_HOURS_TIMEZONE`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverendingqs%2Fnetlify-deployment-hours-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneverendingqs%2Fnetlify-deployment-hours-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverendingqs%2Fnetlify-deployment-hours-plugin/lists"}