{"id":13452518,"url":"https://github.com/danger/peril","last_synced_at":"2025-04-05T02:09:07.983Z","repository":{"id":14536538,"uuid":"76698280","full_name":"danger/peril","owner":"danger","description":"☢️ Serious and immediate danger.","archived":false,"fork":false,"pushed_at":"2022-05-03T20:10:38.000Z","size":21063,"stargazers_count":461,"open_issues_count":52,"forks_count":57,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T01:08:04.642Z","etag":null,"topics":["ci","danger","express","node","nodejs","wehbooks"],"latest_commit_sha":null,"homepage":"https://danger.systems","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/danger.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-17T02:03:10.000Z","updated_at":"2025-03-12T21:30:35.000Z","dependencies_parsed_at":"2022-07-27T05:16:27.885Z","dependency_job_id":null,"html_url":"https://github.com/danger/peril","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danger%2Fperil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danger%2Fperil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danger%2Fperil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danger%2Fperil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danger","download_url":"https://codeload.github.com/danger/peril/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276164,"owners_count":20912288,"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":["ci","danger","express","node","nodejs","wehbooks"],"created_at":"2024-07-31T07:01:26.409Z","updated_at":"2025-04-05T02:09:07.958Z","avatar_url":"https://github.com/danger.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"http://danger.systems/images/js/peril-logo-hero-cachable@2x.png\" width=250/\u003e\n\u003c/p\u003e\n\n[per·il](https://en.oxforddictionaries.com/definition/peril) **ˈperəl** _noun_\n\n1.  serious and immediate danger. _\"their family was in peril\"_.\n\n---\n\nPeril is a tool that takes GitHub webhooks, and makes it easy to build one-off actions. It does this by having a\nper-account settings JSON, that connects JavaScript files to events from webhooks. So, for example, you can write a rule\nwhich runs when closing an issue in GitHub that looks for associated Jira tickets and resolves them. Peril provides no\nimplicit actions like that, it instead offers a JavaScript runtime environment optimised to this domain so you can make\nactions to fit your needs.\n\nWant to understand what the plan is? Consult the [VISION.md](/VISION.md)\n\n---\n\nPeril uses [Danger JS](https://github.com/danger/danger-js) under the hood, Danger is a tool built for adding extra\ntests inside Pull Requests that can work at a different level of abstraction to unit and integration tests. For example,\nyou could write tests which:\n\n- Enforce CHANGELOGs\n- Enforce links to Trello/JIRA in PR/MR bodies\n- Enforce using descriptive labels\n- Look out for common anti-patterns\n- Highlight interesting build artifacts\n- Give warnings when specific files change\n\n... and any other rules specific to your team's culture and needs.\n\n---\n\n### Peril vs GitHub Actions. \n\n80% of Peril is available today in GitHub Actions. Key things which are not:\n\n- Multi-repo support ([which is on the Actions roadmap](https://twitter.com/chrisrpatterson/status/1162531343248633858))\n- Pre-workflow evaluation on webhook data (basically the ability to refuse to run the workflow unless something is set in the webhook JSON)\n- Triggering delayed jobs from webhooks (e.g. do this thing in 5m)\n\nIs this enough to warrant self-hosting? Maybe, but it's pushing it a bit if you aren't comfortable hosting a JS project.\nDanger got extended with a [lot of Peril's features](https://github.com/danger/danger-js/blob/master/CHANGELOG.md#500) in order to better support GitHub Actions during the alpha. \n\nGiven that I, Orta, can't install Peril on the Microsoft GitHub org, and GitHub Actions has most of Peril's features - it's unlikely that I'll be building much more into the core. I'll keep it ticking though, it's not much work.\n\n---\n\n### I want to use Peril\n\nYou have two choices:\n\n- Wait for me to ship Peril to production (probably mid-2019)\n- Self-host your own Peril\n\n### I want to run Peril for my org\n\nOK, I made a quick tutorial for [running a private Peril against your org](./docs/setup_for_org.md) - this is for\nHeroku, but the underlying principles work for all of them.\n\n### I want to hack on Peril!\n\nAce, great, cool. So, it's a bit of a process. I'm not sure if this will get easier in time. It's a complex app. You can\nfind out [more here](./docs/local_dev.md).\n\n### This Repo\n\nThis repo is a mono-repo with three main responsibilities:\n\n- [api](/api) - The Peril WebHook + API\n- [dashboard](/dashboard) - The Admin Panel for logged in users\n- [web](/web) - A static website for the public\n\n### Docs\n\n- [Introducing Peril to the Artsy Org](http://artsy.github.io/blog/2017/09/04/Introducing-Peril/)\n- [On the obsessive statelessness of Peril](http://artsy.github.io/blog/2018/06/18/On-Obsessive-Statelessness/)\n- [Reference: Terminology](https://github.com/danger/peril/blob/master/docs/terminology.md)\n- [Reference: Settings Repo JSON](https://github.com/danger/peril/blob/master/docs/settings_repo_info.md)\n- [Reference: Running Peril Locally](https://github.com/danger/peril/blob/master/docs/local_dev.md)\n","funding_links":[],"categories":["Continuous Integration","TypeScript","What is Peril?"],"sub_categories":["Messaging","Swift (danger-swift)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanger%2Fperil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanger%2Fperil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanger%2Fperil/lists"}