• Stars
    star
    458
  • Rank 95,591 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

☢️ Serious and immediate danger.

per·il ˈperəl noun

  1. serious and immediate danger. "their family was in peril".

Peril is a tool that takes GitHub webhooks, and makes it easy to build one-off actions. It does this by having a per-account settings JSON, that connects JavaScript files to events from webhooks. So, for example, you can write a rule which runs when closing an issue in GitHub that looks for associated Jira tickets and resolves them. Peril provides no implicit actions like that, it instead offers a JavaScript runtime environment optimised to this domain so you can make actions to fit your needs.

Want to understand what the plan is? Consult the VISION.md


Peril uses Danger JS under the hood, Danger is a tool built for adding extra tests inside Pull Requests that can work at a different level of abstraction to unit and integration tests. For example, you could write tests which:

  • Enforce CHANGELOGs
  • Enforce links to Trello/JIRA in PR/MR bodies
  • Enforce using descriptive labels
  • Look out for common anti-patterns
  • Highlight interesting build artifacts
  • Give warnings when specific files change

... and any other rules specific to your team's culture and needs.


Peril vs GitHub Actions.

80% of Peril is available today in GitHub Actions. Key things which are not:

  • Multi-repo support (which is on the Actions roadmap)
  • Pre-workflow evaluation on webhook data (basically the ability to refuse to run the workflow unless something is set in the webhook JSON)
  • Triggering delayed jobs from webhooks (e.g. do this thing in 5m)

Is this enough to warrant self-hosting? Maybe, but it's pushing it a bit if you aren't comfortable hosting a JS project. Danger got extended with a lot of Peril's features in order to better support GitHub Actions during the alpha.

Given 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.


I want to use Peril

You have two choices:

  • Wait for me to ship Peril to production (probably mid-2019)
  • Self-host your own Peril

I want to run Peril for my org

OK, I made a quick tutorial for running a private Peril against your org - this is for Heroku, but the underlying principles work for all of them.

I want to hack on Peril!

Ace, 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 find out more here.

This Repo

This repo is a mono-repo with three main responsibilities:

  • api - The Peril WebHook + API
  • dashboard - The Admin Panel for logged in users
  • web - A static website for the public

Docs

More Repositories

1

danger

🚫 Stop saying "you forgot to …" in code review (in Ruby)
Ruby
5,457
star
2

danger-js

⚠️ Stop saying "you forgot to …" in code review
TypeScript
5,001
star
3

swift

⚠️ Stop saying "you forgot to …" in code review
Swift
958
star
4

kotlin

⚠️ Stop saying "you forgot to …" in code review
Kotlin
496
star
5

awesome-danger

An awesome list of all things Danger
317
star
6

python

⚠️ Stop saying "you forgot to …" in code review
Python
91
star
7

rust

⚠️ Stop saying "you forgot to …" in code review
Rust
42
star
8

dart

Dart
41
star
9

danger-mention

Danger plugin to automatically mention potential reviewers on pull requests
Ruby
29
star
10

design

Design Work and Media Kit
20
star
11

danger-plugin-template

An opinionated template for creating a Danger plugin
Ruby
19
star
12

danger-gitlab-gem

A gem that holds the GitLab specific dependency tree
Ruby
9
star
13

danger.systems

Old website for Danger.Systems -> New website =
HTML
9
star
14

peril.systems

Migrated into the main peril repo
TypeScript
7
star
15

generator-danger-plugin

Yeoman generator to generate a Danger plugin
JavaScript
6
star
16

peril-settings

🔎 The danger org's instance of Peril's settings
TypeScript
6
star
17

danger-plugin-api

A gem for Danger plugin authors to use to use for SemVer on the API
Ruby
5
star
18

hazmat

Web infrastructure management for Peril - migrated into the peril repo
TypeScript
5
star
19

danger-ts

An npx-able mix of Danger and TypeScript
JavaScript
4
star
20

homebrew-tap

The homebrew repo for Danger projects
Ruby
4
star
21

java

4
star
22

danger-js-gem

A gem that exists to ensure all dependencies are set up for Danger when using a JS Dangerfile.
Ruby
4
star
23

peril-settings-linter

A node module for listing the settings file
TypeScript
3
star
24

dangerfile-gem-template

A gem template for Dangerfile gems.
Ruby
2
star
25

dashboard.peril.systems

Migrated into the peril repo
TypeScript
1
star