Repository: rust-cli/config-rs (language: rust)

Issue:
Add a `cargo check-external-types` lint in CI
`cargo check-external-types` should be added to our CI setup to verify what types are exposed from the `config` API.

This way we can get more confidence when to update dependencies and how we have to release those updates.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/external-types.yml b/.github/workflows/external-types.yml
new file mode 100644
index 00000000..2a74a396
--- /dev/null
+++ b/.github/workflows/external-types.yml
@@ -0,0 +1,22 @@
+on: [push, pull_request]
+
+name: Check-external-types
+
+jobs:
+  check:
+    name: Check
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout sources
+        uses: actions/checkout@v4.1.1
+
+      - name: Install toolchain
+        uses: dtolnay/rust-toolchain@master
+        with:
+          toolchain: nightly
+
+      - name: Install cargo-check-external-types
+        run: cargo install --locked cargo-check-external-types
+
+      - name: Run cargo check-external-types
+        run: cargo check-external-types --config ./external-types.toml
diff --git a/external-types.toml b/external-types.toml
new file mode 100644
index 00000000..d2802ad2
--- /dev/null
+++ b/external-types.toml
@@ -0,0 +1,10 @@
+allowed_external_types = [
+    "convert_case::case::Case",
+    "nom::error::ErrorKind",
+    "serde::de::Deserialize",
+    "serde::de::Deserializer",
+    "serde::de::Error",
+    "serde::ser::Error",
+    "serde::ser::Serialize",
+]
+


Test patch: