Project

threat

0.0
The project is in a healthy, maintained state
Collection of useful Danger plugins
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

= 9.4.3
~> 2.5
 Project Readme

Threat

Collection of useful Danger plugins which intends to help you get up and running with Danger faster

Danger itself - https://danger.systems

Usage

All you need to do to start using Threat is:

  1. Add it to your Gemfile
group :development, :test do
  gem 'threat', require: false
end
  1. Bundle
bundle install
  1. Import it into your Dangerfile
danger.import_dangerfile(gem: 'threat')
  1. Create a GitHub workflow which will run your Dangerfile when the PR is opened/updated
# .github/workflows/ci.yml

name: CI

on:
  pull_request:
    branches:
      - master

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
permissions:
  actions: write
  checks: write
  contents: read
  statuses: write
  pull-requests: write

jobs:
  danger:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.3.1
          bundler-cache: true

      - name: Run Danger
        env:
          DANGER_GITHUB_API_TOKEN: ${{ github.token }}
        run: bundle exec danger

Available plugins

  1. PR Title

Validates that the Pull Request title is in correct format, containing JIRA ticket number and a meaningful short description. This works best when combined with "use pr title" + squash and merge strategy in GitHub

# Dangerfile

danger.import_dangerfile(gem: 'threat')

pr_title.run!
  1. TODO

Checks if there are TODOs in PR diff. Can be improved by adding logic that will check if TODO was introduced in the PR itself, in this case warning message could be rephrased

# Dangerfile

danger.import_dangerfile(gem: 'threat')

todo.run!
  1. Confetti 🎉

Just add the following line at the bottom of your Dangerfile to celebrate a good run!

# Dangerfile

danger.import_dangerfile(gem: 'threat')

# The rest of your Dangerfile goes here...

confetti.run! unless failed?

P.S Raycast and macOS is required (not a paid promotion) (sorry @dhh)

Contributing

Yes, please 🥺