Giter VIP home page Giter VIP logo

danger's Introduction

Danger 🚫

License Gem

Formalize your Pull Request etiquette.


What is Danger?Helping OutPlugin Development


What is Danger?

Danger runs after your CI, and gives teams the chance to automate common code review chores.

This provides another logical step in your process, through this Danger can help lint your rote tasks in daily code review.

You can use Danger to codify your teams norms. Leaving humans to think about harder problems.

For example?

  • 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 specific files have extra focus

Danger simply provides the glue to let you build out the rules specific to your team's culture. Offering a lot of useful metadata, and a comprehensive plugin system to share common issues.

Getting Started

Alright. So, actually, you may be in the wrong place. From here on in, this README is going to be for people who are interested in working on / improving on Danger.

We keep all of the end-user documentation inside http://danger.systems.

Some quick links: Guides Index, DSL Reference, Getting Started and What does Danger Do?.

I'm here to help out!

Brilliant. So, let's get you set up.

git clone https://github.com/danger/danger.git
cd danger
bundle install
bundle exec rake spec

This sets everything up and runs all of the tests.

Theory

Danger has a VISION.md file, this sums up the ideas around what Danger is. It's the lower bounds of what Danger means. Orta has written on handling, and creating Danger on the Artsy blog too.

Documentation

The code you write may end up in the public part of the website, the easiest way to tell is that it is vastly overdocumented. If you are working in a space that looks over-documented, please be extra considerate to add documentation. We expect the consumers of that documentation to be non-rubyists, thus avoid specific jargon and try to provide duplicate overlapping examples.

Testing

So far, we've not really figured out the right way to make tests for our CLI commands. When we have done so, they've ended up brittle. So ideally, try to move any logic that would go into a command into separate classes, and test those. We're OK with the command not having coverage, but ideally the classes that make up what it does do.

I'd strongly recommend using bundle exec guard to run your tests as you work. Any changes you make in the lib, or specs will have corresponding tests run instantly.

Debugging

Ruby is super dynamic, one of the best ways to debug is by using pry. We include pry for developers, when you have a problem copy these two lines just before your problem and follow the instructions from "I Want To Be A Danger Wizard."

require 'pry'      
binding.pry

Tell me of these Plugins

License, Contributor's Guidelines and Code of Conduct

We try to keep as much discussion as possible in GitHub issues, but also have a pretty inactive slack, if you'd like an invite ping @Orta a DM on twitter with your email. It's mostly interesting if you want to stay on top of Danger without all of the emails from GitHub.

This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs.

This project subscribes to the Moya Contributors Guidelines which TLDR: means we give out push access easily and often.

Contributors subscribe to the Contributor Code of Conduct based on the Contributor Covenant version 1.3.0.

danger's People

Contributors

orta avatar krausefx avatar marcelofabri avatar dbgrandi avatar jeroenvisser101 avatar justmaku avatar segiddins avatar endocrimes avatar antondomashnev avatar jamtur01 avatar anaisbetts avatar keithpitt avatar unlobito avatar starsirius avatar ffittschen avatar gabro avatar nwest avatar neonichu avatar amonshiz avatar ashfurrow avatar epologee avatar jhersh avatar lumaxis avatar mfurtak avatar readmecritic avatar

Stargazers

Felipe Monteiro avatar

Watchers

Rafael Prenzier avatar Matías Blasi avatar Oleh Burkhay avatar Hernán Flores Leyes avatar Bruno Elia avatar Daniel Rabinovich avatar mrege avatar  avatar Mariano Labarinas avatar  avatar  avatar Jose Garcia avatar Federico avatar  avatar LorenaPressiani avatar mpozzer avatar  avatar Pablo Matías Di Gregorio avatar Mariano avatar  avatar  avatar  avatar Leandro Quintana avatar Kusi avatar  avatar  avatar Federico avatar Federico avatar Diego avatar Luis Darío Simonassi avatar Julian avatar heraldo Rodriguez avatar  avatar Martin Vanni avatar Eric Kohan avatar  avatar Pablo Nazareno avatar Ernesto Rodriguez avatar Alejandro Zalazar avatar Ale avatar Alejandro Quadrini avatar Reinaldo Oliveira Yamauti avatar Bjornn Borg avatar  avatar  avatar Marcelo Busico avatar Matias Soria avatar Patricia avatar Wesley Cintra do Nascimento avatar  avatar Pablo Sortino avatar  avatar Fernando Cambarieri avatar Gonzalo Oliva avatar  avatar  avatar  avatar James Cloos avatar Horacio "Kah" Casatti avatar  avatar Nrubio avatar  avatar Mauricio Furlong avatar Lucas avatar  avatar Luciana Gatica avatar Pablo DN avatar  avatar Marcos avatar  avatar Juan Sanzone avatar Alejandro Cáceres Prado avatar  avatar Santiago Leopardo avatar pmdiazz avatar  avatar Ariel Seferian avatar  avatar Marcos Caceres avatar Victoria Mesa Alcorta avatar  avatar  avatar Robson Cardoso avatar Wilker Moura avatar Ignacio Barbieri avatar Nicolas Pessolani avatar  avatar Diego Narducci avatar Diego Leandro Velazquez avatar Gabriela Segura Guzmán avatar Daniel Bellini avatar  avatar Angeles de la Torre avatar  avatar Cristian Bustos avatar  avatar Natalia Torres avatar  avatar  avatar Antonio Andres Alvarez Poli avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.