Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
01f9aa2
upgrade upload-artifact to v7 and fix dependabot config
PrazwalR Apr 10, 2026
35c9a23
CI stabilization patch
PrazwalR Apr 10, 2026
17c416c
fixing ci issues
PrazwalR Apr 11, 2026
60c2046
ci issues fixed
PrazwalR Apr 11, 2026
84d87d7
fix: release workflow and bump 0.2.1
PrazwalR Apr 12, 2026
2f6fe82
all issues fixed
PrazwalR Apr 12, 2026
058637d
fix: finalize release workflow corrections
PrazwalR Apr 12, 2026
f4a17c9
fix: release workflow compatibility and bump 0.2.3
PrazwalR Apr 12, 2026
3c9c358
fix: use intel mac runner and bump 0.2.4
PrazwalR Apr 12, 2026
7312a65
fix CI versions, MSRV docs, security audit config
PrazwalR Apr 13, 2026
8011c10
issues fixed
PrazwalR Apr 20, 2026
9b76eef
docs: update changelog release date for v0.2.4
PrazwalR May 21, 2026
1b4f486
chore: bump version to v0.2.5 and update changelog
PrazwalR May 21, 2026
a4c54ae
docs: update MSRV to Rust 1.91.1 in README badges and text
PrazwalR May 21, 2026
8dc091c
fix: replace manual checked division with checked_div in audit mod
PrazwalR May 21, 2026
ee10efc
chore: fix fmt and audit configuration
PrazwalR May 21, 2026
8ed6de3
chore: daily commit
PrazwalR Apr 19, 2026
75b3408
chore: daily commit
PrazwalR Apr 19, 2026
64124cc
chore: daily commit
PrazwalR Apr 20, 2026
3945378
chore: daily commit
PrazwalR Apr 21, 2026
5cfaa08
chore: daily commit
PrazwalR Apr 22, 2026
d974f0b
chore: daily commit
PrazwalR Apr 23, 2026
c252a35
chore: daily commit
PrazwalR Apr 24, 2026
dd38f1e
chore: daily commit
PrazwalR Apr 25, 2026
c17ea14
chore: daily commit
PrazwalR Apr 26, 2026
8a3be65
chore: daily commit
PrazwalR Apr 27, 2026
167c1fc
chore: daily commit
PrazwalR Apr 28, 2026
1a39755
chore: daily commit
PrazwalR Apr 29, 2026
75a06f4
chore: daily commit
PrazwalR Apr 30, 2026
6d78949
chore: daily commit
PrazwalR May 1, 2026
2f636e8
chore: daily commit
PrazwalR May 2, 2026
e94d3c6
chore: daily commit
PrazwalR May 3, 2026
2c00015
chore: daily commit
PrazwalR May 4, 2026
f0c7ccc
chore: daily commit
PrazwalR May 5, 2026
e990602
chore: daily commit
PrazwalR May 6, 2026
fcd3832
chore: daily commit
PrazwalR May 7, 2026
9e3d860
chore: daily commit
PrazwalR May 8, 2026
f0b43dd
chore: daily commit
PrazwalR May 9, 2026
7494863
chore: daily commit
PrazwalR May 10, 2026
d699758
chore: daily commit
PrazwalR May 11, 2026
97171a9
chore: daily commit
PrazwalR May 12, 2026
deeaedb
chore: daily commit
PrazwalR May 13, 2026
9beeba4
chore: daily commit
PrazwalR May 14, 2026
d77e26b
chore: daily commit
PrazwalR May 15, 2026
1677289
chore: daily commit
PrazwalR May 16, 2026
3473ab6
chore: daily commit
PrazwalR May 17, 2026
2cf22d5
chore: daily commit
PrazwalR May 18, 2026
4ddaf83
chore: daily commit
PrazwalR May 19, 2026
55be4ee
chore: daily commit
PrazwalR May 20, 2026
8cca0d0
chore: bump version to v0.2.6 and update changelog
PrazwalR May 21, 2026
43e4fdb
chore: daily commit
PrazwalR May 21, 2026
51929b8
deps: bump the rust-minor group across 1 directory with 15 updates
dependabot[bot] May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ ignore = [
"RUSTSEC-2025-0119", # number_prefix (unmaintained)
# Transitive dependency in hyper-rustls 0.24.x.
"RUSTSEC-2025-0134", # rustls-pemfile (unmaintained)
# Transitive dependency through tera, mockito, kube-runtime (rand 0.8.5 unsound).
"RUSTSEC-2026-0097", # rand (unsound with custom logger)
# Transitive rustls-webpki vulnerabilities pulled via kube/aws/reqwest stacks.
# No compatible patched path for all dependency branches on current versions.
"RUSTSEC-2026-0098", # rustls-webpki (name constraints for URI names)
"RUSTSEC-2026-0099", # rustls-webpki (wildcard name constraints)
"RUSTSEC-2026-0104", # rustls-webpki (CRL parsing panic)
]
6 changes: 0 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ updates:
open-pull-requests-limit: 5
commit-message:
prefix: "deps"
labels:
- "dependencies"
- "rust"
reviewers:
- "PrazwalR"
groups:
Expand All @@ -38,6 +35,3 @@ updates:
open-pull-requests-limit: 3
commit-message:
prefix: "ci"
labels:
- "ci"
- "dependencies"
45 changes: 26 additions & 19 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,35 @@ on:
pull_request:
branches: [ main ]

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
test:
name: Test Suite
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, "1.70.0"] # Test MSRV and stable
rust: [stable, "1.91.1"] # Test MSRV and stable
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}

- name: Cache cargo registry
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
Expand All @@ -39,22 +45,22 @@ jobs:
${{ runner.os }}-${{ matrix.rust }}-cargo-

- name: Run tests
run: cargo test --verbose --all-features
run: cargo test --verbose --all-features --locked

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- name: Cache cargo
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
Expand All @@ -63,14 +69,14 @@ jobs:
key: ${{ runner.os }}-clippy-${{ hashFiles('**/Cargo.lock') }}

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings
run: cargo clippy --locked --all-targets --all-features -- -D warnings

fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
Expand All @@ -97,13 +103,13 @@ jobs:
binary: apiforge.exe
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
Expand All @@ -112,25 +118,26 @@ jobs:
key: ${{ runner.os }}-release-${{ hashFiles('**/Cargo.lock') }}

- name: Build release
run: cargo build --release --verbose
run: cargo build --release --verbose --locked

- name: Upload artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ${{ matrix.artifact }}
path: target/release/${{ matrix.binary }}

security-audit:
name: Security Audit
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install cargo-audit
run: cargo install cargo-audit --locked

- name: Run security audit
uses: rustsec/audit-check@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
run: cargo audit
35 changes: 20 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:

env:
CARGO_TERM_COLOR: always
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
# First, run tests to ensure quality
Expand All @@ -21,10 +22,10 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Run tests
run: cargo test --all-features
run: cargo test --all-features --locked

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings
run: cargo clippy --locked --all-targets --all-features -- -D warnings

# Build binaries for all platforms
build:
Expand All @@ -38,12 +39,11 @@ jobs:
target: x86_64-unknown-linux-gnu
artifact: apiforge-linux-amd64
binary: apiforge
- os: ubuntu-latest
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
artifact: apiforge-linux-arm64
binary: apiforge
cross: true
- os: macos-latest
- os: macos-15-intel
target: x86_64-apple-darwin
artifact: apiforge-darwin-amd64
binary: apiforge
Expand All @@ -64,17 +64,22 @@ jobs:
with:
targets: ${{ matrix.target }}

- name: Install cross (Linux ARM64)
if: matrix.cross
run: cargo install cross --locked
- name: Install Linux build dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends pkg-config libssl-dev
sudo rm -rf /var/lib/apt/lists/*

- name: Build (native)
if: "!matrix.cross"
run: cargo build --release --target ${{ matrix.target }}
- name: Install macOS build dependencies
if: runner.os == 'macOS'
run: |
brew install openssl@3 pkg-config
echo "OPENSSL_DIR=$(brew --prefix openssl@3)" >> "$GITHUB_ENV"
echo "PKG_CONFIG_PATH=$(brew --prefix openssl@3)/lib/pkgconfig" >> "$GITHUB_ENV"

- name: Build (cross)
if: matrix.cross
run: cross build --release --target ${{ matrix.target }}
- name: Build
run: cargo build --release --target ${{ matrix.target }} --locked

- name: Create archive (Unix)
if: runner.os != 'Windows'
Expand Down Expand Up @@ -109,7 +114,7 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Publish to crates.io
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish --locked --token ${{ secrets.CARGO_REGISTRY_TOKEN }}

# Create GitHub Release with binaries
github-release:
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Rust
/target/
/demo-api/
# Cargo.lock tracked for binary app (needed for security audit)
**/*.rs.bk
*.pdb
Expand Down
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,46 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.6] - 2026-05-21

### Fixed
- rustfmt formatting across dry-run previews and config validation output.
- README MSRV badge and prerequisite text aligned to Rust 1.91.1+.
- cargo-audit config updated to ignore RUSTSEC-2026-0104 (transitive rustls-webpki CRL parsing panic).

## [0.2.5] - 2026-05-21

### Fixed
- CI action versions updated to latest (checkout@v6, upload-artifact@v7, download-artifact@v8).
- MSRV documentation updated to reflect Rust 1.91.1 minimum.
- Security audit configuration stabilized with documented advisory ignores.
- Changelog timestamp formatting improved.

## [0.2.4] - 2026-04-12

### Fixed
- Release workflow now targets `macos-15-intel` for `x86_64-apple-darwin` so the amd64 macOS artifact builds on a native Intel runner.
- Prevents x86_64 macOS link failures caused by building that target on arm64-hosted `macos-latest`.

## [0.2.3] - 2026-04-12

### Fixed
- Release workflow now uses `macos-latest` for both macOS targets to avoid unavailable `macos-13` runner cancellations.
- macOS release builds now install OpenSSL and pkg-config before compiling to prevent `openssl-sys` detection failures.

## [0.2.2] - 2026-04-12

### Fixed
- Release workflow Linux ARM64 build now uses a native ARM runner (`ubuntu-24.04-arm`) instead of cross-compiling through a container lacking OpenSSL dev libraries.
- Release workflow installs Linux build dependencies (`pkg-config`, `libssl-dev`) before compiling to avoid OpenSSL discovery failures.

## [0.2.1] - 2026-04-12

### Fixed
- Release workflow macOS build matrix now uses native runners per architecture:
- `x86_64-apple-darwin` on `macos-13`
- `aarch64-apple-darwin` on `macos-14`

## [0.2.0] - 2026-04-10

### Highlights
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ Thank you for your interest in contributing to Apiforge! This document provides

### Prerequisites

- Rust 1.70 or later
- Rust 1.70.0 or later
- Docker (for building and testing container features)
- kubectl and a Kubernetes cluster (for testing K8s features)
- AWS CLI (optional, for ECR features)

### Building

```bash
git clone https://github.com/your-org/apiforge.git
cd apiforge
git clone https://github.com/PrazwalR/Apiforge.git
cd Apiforge
cargo build
```

Expand Down
Loading
Loading