diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 50c10d1..09d7fc6 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -8,6 +8,17 @@ on: - cron: '0 18 * * *' jobs: + pre_commit: + timeout-minutes: 5 + name: prek + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + # tools used in pre-commit hooks + # /tools + - id: prek + uses: rusticata/ci-action-prek@v1 + check: name: Check runs-on: ubuntu-latest @@ -18,8 +29,9 @@ jobs: - 1.63.0 - nightly steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master + - uses: actions/checkout@v5 + - name: Install ${{ matrix.rust }} toolchain + uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - name: Cargo update @@ -37,7 +49,7 @@ jobs: - --features=serialize - --features=integers steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable - run: cargo test ${{ matrix.features }} @@ -46,8 +58,9 @@ jobs: name: Rustfmt runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@v5 + - name: Install stable rustfmt + uses: dtolnay/rust-toolchain@stable with: components: rustfmt - run: cargo fmt --all -- --check @@ -56,8 +69,9 @@ jobs: name: Clippy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly + - uses: actions/checkout@v5 + - name: Install nightly clippy + uses: dtolnay/rust-toolchain@nightly with: components: clippy - run: cargo clippy -- -D warnings @@ -68,8 +82,9 @@ jobs: env: RUSTDOCFLAGS: --cfg docsrs steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly + - uses: actions/checkout@v5 + - name: Install nightly rust + uses: dtolnay/rust-toolchain@nightly - run: cargo doc --workspace --no-deps --all-features semver: @@ -77,7 +92,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v2 @@ -86,11 +101,6 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v4 - - name: Install rust toolchain - uses: dtolnay/rust-toolchain@master - with: - toolchain: nightly-2025-08-06 - # ^ sync with https://github.com/awslabs/cargo-check-external-types/blob/main/rust-toolchain.toml - - run: cargo install cargo-check-external-types - - run: cargo check-external-types + uses: actions/checkout@v5 + - id: cargo-rdme + uses: rusticata/ci-action-check-external-types@v1 diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index c8e58c0..a4845b8 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -9,7 +9,7 @@ jobs: security_audit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: rustsec/audit-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..36e1fb9 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,33 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +fail_fast: true + +exclude: | + (?x)^( + .*/(assets)/.*| + )$ + +repos: + - repo: 'https://github.com/pre-commit/pre-commit-hooks' + rev: v6.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + + - repo: local + hooks: + - id: cargo-fmt + name: cargo fmt + entry: cargo fmt -- + language: system + types: [rust] + pass_filenames: false # This makes it a lot faster + + - id: cargo-clippy + name: cargo clippy + language: system + types: [rust] + pass_filenames: false + entry: cargo clippy --all-targets --all-features -- -D warnings diff --git a/README.md b/README.md index a219316..f68f0c7 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# ssh-parser - +![Maintenance](https://img.shields.io/badge/maintenance-activly--developed-brightgreen.svg) [![LICENSE](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](LICENSE) [![Build Status](https://github.com/rusticata/ssh-parser/actions/workflows/rust.yml/badge.svg)](https://github.com/rusticata/ssh-parser/actions/workflows/rust.yml) [![Crates.io Version](https://img.shields.io/crates/v/ssh-parser.svg)](https://crates.io/crates/ssh-parser) +# ssh-parser ## Overview