diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b552a855..0d157f0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,14 @@ jobs: name: "build" steps: - uses: actions/checkout@v4 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + components: clippy, rustfmt + - name: Cache dependencies + uses: swatinem/rust-cache@v2 + - name: Security Audit + uses: actions-rust-lang/audit@v1 - name: Check formatting run: cargo fmt --check - name: Check clippy diff --git a/CHANGELOG.md b/CHANGELOG.md index 86d7841a..31d3e339 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## v0.7.2-dev + +### Ci + +- add security audit step +- enable dependency caching +- use dtolnay/rust-toolchain for stable environment + +### Fix + +- **providers**: migrate openai to structured logging + ## v0.7.1 (2025-08-10) ### Fix diff --git a/Cargo.lock b/Cargo.lock index 8ae8a30d..70850d11 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2322,7 +2322,7 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hub" -version = "0.7.1" +version = "0.7.2" dependencies = [ "anyhow", "async-stream", diff --git a/src/providers/openai/provider.rs b/src/providers/openai/provider.rs index 52f611ff..7c82ec2f 100644 --- a/src/providers/openai/provider.rs +++ b/src/providers/openai/provider.rs @@ -11,7 +11,7 @@ use axum::http::StatusCode; use reqwest::Client; use reqwest_streams::*; use serde::{Deserialize, Serialize}; -use tracing::info; +use tracing::error; #[derive(Serialize, Deserialize, Clone)] struct OpenAIChatCompletionRequest { @@ -101,7 +101,7 @@ impl Provider for OpenAIProvider { .send() .await .map_err(|e| { - eprintln!("OpenAI API request error: {e}"); + error!("OpenAI API request error: {e}"); StatusCode::INTERNAL_SERVER_ERROR })?; @@ -117,12 +117,12 @@ impl Provider for OpenAIProvider { .await .map(ChatCompletionResponse::NonStream) .map_err(|e| { - eprintln!("OpenAI API response error: {e}"); + error!("OpenAI API response error: {e}"); StatusCode::INTERNAL_SERVER_ERROR }) } } else { - info!( + error!( "OpenAI API request error: {}", response.text().await.unwrap() ); @@ -143,18 +143,18 @@ impl Provider for OpenAIProvider { .send() .await .map_err(|e| { - eprintln!("OpenAI API request error: {e}"); + error!("OpenAI API request error: {e}"); StatusCode::INTERNAL_SERVER_ERROR })?; let status = response.status(); if status.is_success() { response.json().await.map_err(|e| { - eprintln!("OpenAI API response error: {e}"); + error!("OpenAI API response error: {e}"); StatusCode::INTERNAL_SERVER_ERROR }) } else { - eprintln!( + error!( "OpenAI API request error: {}", response.text().await.unwrap() ); @@ -175,18 +175,18 @@ impl Provider for OpenAIProvider { .send() .await .map_err(|e| { - eprintln!("OpenAI API request error: {e}"); + error!("OpenAI API request error: {e}"); StatusCode::INTERNAL_SERVER_ERROR })?; let status = response.status(); if status.is_success() { response.json().await.map_err(|e| { - eprintln!("OpenAI API response error: {e}"); + error!("OpenAI API response error: {e}"); StatusCode::INTERNAL_SERVER_ERROR }) } else { - eprintln!( + error!( "OpenAI API request error: {}", response.text().await.unwrap() );