Frequently Changed Logs



  • Add cwd parameter to define the current working directory @f-meloni - #333








  • Fix GitLabDSL parsing (missing arguments) @fortmarek - #283
  • Protect bitbucket cloud inline comment with all options being optional @khoogheem - #280


  • Make bitbucket cloud inline comment from optional @f-meloni - #278





  • Release only made for GitHub Actions - @orta



  • Make BitBucketServerUser emailAddress optional @f-meloni - #257



  • Allow nil GitHub milestone descriptions @smalljd - #253
  • Handle not existing PR commit author and contributor @f-meloni - #252




  • GitLab support @f-meloni - #246 (Requires DangerJS 8.0.0+, remember to export the DANGER_GITLAB_API_TOKEN before use it)


  • Remove free floating “mutating” keyword from DangerDSL @sunshinejr - #241



  • Copy DangerExecutor dependency file when installing with make @f-meloni - #229






  • Make danger edit compile in the projects that are not the Danger main project @f-meloni - #204
  • Create imported files if not present on edit command @f-meloni - #202
  • Import correctly the files when one of the files contains an emoji @f-meloni - #198
  • Improve file type parsing @f-meloni - #197
  • Refactor code to fix SwiftLint warnings @ChaosCoder - #196
  • Add ability to run swiftlint in strict mode @FabioTacke - #195


  • Support unregistered users on BitbucketServer @f-meloni - #193
  • Reset markdowns on the resetDangerResults method @f-meloni - #192


  • Set github as var to make danger compile with swift 5 @f-meloni - #191






  • Make globalResults private by @f-meloni
  • Make swiftlint rule id code on the message by @f-meloni
  • Append Swiftlint rule id to the Swiftlint danger messages by @f-meloni
  • Run Swiftlint from SPM by default when available by @f-meloni


It’s time, Danger Swift now has enough to be useful to nearly everyone and is in use in production environments today.

As of 1.0.0, Danger Swift is fully documented at and sits as a peer with Ruby and JavaScript. Most of the documentation lives here in this repo, and the reference is auto-generated.

It’s been over a year of work, so I’m (orta) really glad to see this get out and be a first-class citizen for the iOS community.

There are still some big upcoming features planned:

  • A revised version of the plugin system (#139)
  • A synchronous GitHub API client (#99)

  • @orta and @f-meloni

This release also includes:

  • Improve invalid DSL error message @f-meloni
  • Fail if danger-js version is below the minimum supported version by @f-meloni
  • Add method to get all the lines that contain a word on a file by @f-meloni



  • Whoah! The SwiftLint plugin has been merged into Danger by @orta

This is not my work, really, it’s the work of the contributors to the Danger SwiftLint plugin (which, yes, I am a contributor, so…) - but it’s mainly the work of @ashfurrow @sunshinejr @Killectro and @thii.

This is discussed in where I pitched that maybe we should just inline this dependency because so many people are going to use this. The Swift community is likely the only community using Danger Swift, so why not make this version have a bit more focus on what people are doing with it?

  • Docs, lots of lots of docs by @orta

This is a blocker on 1.0ing Danger Swift. So, we’re getting there now.

  • Internal faffing, and splitting of some test-related code so that Plugins can have an elegant test API by @orta

This revises the way in which you can write tests in Danger plugins. Should be much easier now.

  • Adds some utils functions for doing one-off commands in the terminal by @orta

danger.utils.exec will return the string of the STDOUT outputted by that command, use this for things you’re sure aren’t going to fail.

danger.utils.spawn is a throwable version of the above which includes all the essential error information if the command fails.



  • Fix BitbucketServer JSON parsing #129 by @f-meloni
  • Uses Danger JS’s new --passURLForDSL for grabbing the DSL JSON - @orta
  • Adds danger.utils which has danger.utils.readFile(file: File) to make it easy to filter files - @orta
  • Adds –help option support to danger-swift #122 by @f-meloni




  • –dangerfile argument support #100 by @f-meloni
  • Add Github API client #95 by @f-meloni
  • Improve danger-swift edit #94 by @f-meloni
  • When working on danger, you cna now use swift run danger-swift xx to try commands - @orta


  • Ability to import files on the Dangerfile #93 by @f-meloni
  • Added Shellout files on the Makefile #91 by @f-meloni
  • Restored danger-swift edit functionality - #90 by @f-meloni
  • Expose Danger report results - #89 by @f-meloni

  • Adds three new commands:

    • danger-swift ci - handles running Danger
    • danger-swift pr [] - Let’s you run Danger against a PR for local dev
    • `danger-swift local - Let’s you run Danger against the diff from your branch to master
  • Prepares for Danger JS 5.0 - #84 by @orta


  • Use CaseIterable to take advantage of compiler-generated allCases in enum by yhkaplan (requires Swift 4.2)


  • Change modifiedFiles, createdFiles, deletedFiles to be of type File, adding Name and FileType properties - #81 by yhkaplan
  • Remove Sourcery-based code generation in favor of Swift 4.1’s native Equatable conformance generation - #78 by yhkaplan
  • [BitbucketServer] Make description, commiter and committerTimestamp optional. #79 by @acecilia
  • [Github] Make repository description optional. #73 by @hiragram
  • [Github] Make commit author and committer optional. #75 by @Sega-Zero


  • Add Support for Bitbucket Server - thomasraith


  • Add Swift 4.1 support - sunshinejr


  • DSL improvments - yhkaplan
  • You can now warn, fail, message and markdown - sunshinejr


  • Reordering how Runner args are routed to Danger - rockbruno


  • Fixes for the CLI arg order from danger-js - sunshinejr


  • Add milestone model to issue and pull request. - d-date
  • Change date string type from String to Date using iso8601 date decoding strategy. - d-date
  • Adds the Logger struct together with the --verbose and --silent arguments - rockbruno
  • Add support for GitHub’s new review requests payload. - hirad



  • Supports the command: danger-swift edit to generate an Xcodeproj which you can edit your Dangerfile in - @orta
  • Adds plugin infrastructure to danger-swift - @orta

There aren’t any plugins yet, but there is infrastructure for them. By suffixing package: [url] to any import, you can directly import Swift PM package as a dependency, which is basically how plugins will work.

So, one of these days:

  import SwiftLint // package:



  • Support the beta formatting of the JSON DSL ( it now is { "danger": { [DSL] }}, instead of a root element) - @orta


  • Fix install paths for libDanger when using homebrew - @orta


  • First release via homebrew - eneko


  • Supports a Dangerfile in both: “/Dangerfile.swift”, “/danger/Dangerfile.swift” or “/Danger/Dangerfile.swift” to handle SPM rules on Swift files in the root - @orta
  • Adds a CHANGELOG, renames project to danger-swift - @orta


  • Initialish versions - @orta, SD10

Got improvements? Help improve this document via sending PRs.