diff --git a/README.md b/README.md index 2711d5100..e260bda17 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ usage: openapi-diff --query use query param for authorisation --state Only output diff state: no_changes, incompatible, compatible + --fail-on-incompatible Fail only if API changes broke backward compatibility --trace be extra verbose --version print the version information and exit --warn Print warning information diff --git a/src/main/java/com/qdesrame/openapi/diff/Main.java b/src/main/java/com/qdesrame/openapi/diff/Main.java index 104bbde18..4a254fc39 100644 --- a/src/main/java/com/qdesrame/openapi/diff/Main.java +++ b/src/main/java/com/qdesrame/openapi/diff/Main.java @@ -28,6 +28,11 @@ public static void main(String... args) { .longOpt("state") .desc("Only output diff state: no_changes, incompatible, compatible") .build()); + options.addOption( + Option.builder() + .longOpt("fail-on-incompatible") + .desc("Fail only if API changes broke backward compatibility") + .build()); options.addOption(Option.builder().longOpt("trace").desc("be extra verbose").build()); options.addOption( Option.builder().longOpt("debug").desc("Print debugging information").build()); @@ -179,6 +184,8 @@ public static void main(String... args) { if (line.hasOption("state")) { System.out.println(result.isChanged().getValue()); System.exit(0); + } else if (line.hasOption("fail-on-incompatible")) { + System.exit(result.isCompatible() ? 0 : 1); } else { System.exit(result.isUnchanged() ? 0 : 1); }