mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-09 03:20:56 +00:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
e9daf2db3a
6 changed files with 76 additions and 44 deletions
15
.github/workflows/release.yml
vendored
15
.github/workflows/release.yml
vendored
|
|
@ -66,6 +66,10 @@ jobs:
|
|||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential pkg-config libssl-dev
|
||||
|
||||
- name: Install musl toolchain for x86_64-musl tests
|
||||
if: matrix.target == 'x86_64-unknown-linux-musl'
|
||||
run: sudo apt-get install -y musl-tools
|
||||
|
||||
- name: Set up Rust
|
||||
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
||||
with:
|
||||
|
|
@ -85,11 +89,20 @@ jobs:
|
|||
|
||||
- uses: taiki-e/install-action@773334c0e05d7e699e4d78234494308223f3a2cf # nextest
|
||||
|
||||
- name: Test (x86_64-musl)
|
||||
# nextest still shells through cargo test for this target, so
|
||||
# build.rs C code needs an explicit musl compiler/linker.
|
||||
if: matrix.target == 'x86_64-unknown-linux-musl'
|
||||
env:
|
||||
CC_x86_64_unknown_linux_musl: musl-gcc
|
||||
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER: musl-gcc
|
||||
run: cargo nextest run --workspace --target ${{ matrix.target }} --release --status-level slow --profile ci
|
||||
|
||||
- name: Test
|
||||
# aarch64-musl test runs have not been validated on the compile
|
||||
# runner yet; shipping binary is exercised via Docker smoke tests.
|
||||
# Re-enable after verifying the workspace passes on this target.
|
||||
if: matrix.target != 'aarch64-unknown-linux-musl'
|
||||
if: matrix.target != 'aarch64-unknown-linux-musl' && matrix.target != 'x86_64-unknown-linux-musl'
|
||||
run: cargo nextest run --workspace --target ${{ matrix.target }} --release --status-level slow --profile ci
|
||||
|
||||
- name: Build (musl via cargo-zigbuild)
|
||||
|
|
|
|||
72
Cargo.lock
generated
72
Cargo.lock
generated
|
|
@ -1473,7 +1473,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-agent"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
@ -1509,7 +1509,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-api"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"openapiv3",
|
||||
|
|
@ -1527,7 +1527,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-auth"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
@ -1548,7 +1548,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-checkpoint"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"fabro-types",
|
||||
|
|
@ -1562,7 +1562,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-cli"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"assert_cmd",
|
||||
|
|
@ -1647,7 +1647,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-config"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
|
@ -1668,7 +1668,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-core"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"fabro-types",
|
||||
|
|
@ -1683,7 +1683,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-devcontainer"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"fabro-http",
|
||||
"fabro-util",
|
||||
|
|
@ -1699,7 +1699,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-github"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"chrono",
|
||||
|
|
@ -1715,7 +1715,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-graphviz"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"fabro-types",
|
||||
|
|
@ -1728,7 +1728,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-hooks"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"fabro-agent",
|
||||
|
|
@ -1751,7 +1751,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-http"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"http",
|
||||
"reqwest 0.13.2",
|
||||
|
|
@ -1760,7 +1760,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-interview"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"dialoguer",
|
||||
|
|
@ -1774,7 +1774,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-llm"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
@ -1803,7 +1803,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-macros"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
@ -1812,7 +1812,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-mcp"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"fabro-config",
|
||||
|
|
@ -1828,7 +1828,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-model"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"insta",
|
||||
"serde",
|
||||
|
|
@ -1837,7 +1837,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-oauth"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"base64",
|
||||
|
|
@ -1855,7 +1855,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-proc"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
|
|
@ -1864,7 +1864,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-retro"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
|
@ -1882,7 +1882,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-sandbox"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
@ -1913,7 +1913,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-server"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
|
|
@ -1979,7 +1979,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-slack"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"fabro-http",
|
||||
"fabro-interview",
|
||||
|
|
@ -1998,14 +1998,14 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-spa"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"rust-embed",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fabro-store"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
|
|
@ -2027,7 +2027,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-telemetry"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
|
@ -2052,7 +2052,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-template"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"fabro-util",
|
||||
|
|
@ -2064,7 +2064,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-test"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"axum",
|
||||
|
|
@ -2085,7 +2085,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-tracker"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"fabro-github",
|
||||
|
|
@ -2098,7 +2098,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-types"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"clap",
|
||||
|
|
@ -2118,7 +2118,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-util"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"anyhow",
|
||||
|
|
@ -2139,7 +2139,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-validate"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"fabro-graphviz",
|
||||
"fabro-model",
|
||||
|
|
@ -2149,7 +2149,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-vault"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"serde",
|
||||
|
|
@ -2160,7 +2160,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "fabro-workflow"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"assert_cmd",
|
||||
|
|
@ -6750,7 +6750,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "twin-github"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"base64",
|
||||
|
|
@ -6768,7 +6768,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "twin-openai"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ resolver = "2"
|
|||
|
||||
[workspace.package]
|
||||
edition = "2021"
|
||||
version = "0.208.0-nightly.0"
|
||||
version = "0.208.0-nightly.1"
|
||||
license = "MIT"
|
||||
|
||||
[workspace.dependencies]
|
||||
|
|
|
|||
|
|
@ -34,6 +34,11 @@ impl Storage {
|
|||
self.root.join("logs")
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn cache_dir(&self) -> PathBuf {
|
||||
self.root.join("cache")
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn secrets_path(&self) -> PathBuf {
|
||||
self.root
|
||||
|
|
@ -164,6 +169,10 @@ mod tests {
|
|||
storage.logs_dir(),
|
||||
std::path::Path::new("/tmp/fabro-data/logs")
|
||||
);
|
||||
assert_eq!(
|
||||
storage.cache_dir(),
|
||||
std::path::Path::new("/tmp/fabro-data/cache")
|
||||
);
|
||||
assert_eq!(
|
||||
storage.secrets_path(),
|
||||
std::path::Path::new("/tmp/fabro-data/vaults/default/secrets.json")
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ use axum::response::{IntoResponse, Response};
|
|||
use fabro_types::settings::server::{
|
||||
IpAllowEntry, ServerIpAllowlistOverrideSettings, ServerIpAllowlistSettings,
|
||||
};
|
||||
use fabro_util::Home;
|
||||
use ipnet::IpNet;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tracing::warn;
|
||||
|
|
@ -61,11 +60,11 @@ impl GitHubMetaResolver {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn from_home() -> Result<Self> {
|
||||
pub fn from_cache_dir(cache_dir: &Path) -> Result<Self> {
|
||||
Ok(Self::new(
|
||||
fabro_http::http_client().context("building GitHub meta HTTP client")?,
|
||||
GITHUB_META_URL.to_string(),
|
||||
github_meta_cache_path(Home::from_env().root()),
|
||||
github_meta_cache_path(cache_dir),
|
||||
))
|
||||
}
|
||||
|
||||
|
|
@ -315,8 +314,8 @@ fn normalize_ip(ip: IpAddr) -> IpAddr {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn github_meta_cache_path(home: &Path) -> PathBuf {
|
||||
home.join("cache/github-meta-hooks.json")
|
||||
pub fn github_meta_cache_path(cache_dir: &Path) -> PathBuf {
|
||||
cache_dir.join("github-meta-hooks.json")
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
@ -408,6 +407,17 @@ mod tests {
|
|||
assert!(allowlist.contains(&"::ffff:10.1.2.3".parse().unwrap()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn github_meta_resolver_uses_storage_cache_dir() {
|
||||
let cache_dir = tempfile::tempdir().unwrap();
|
||||
let resolver = GitHubMetaResolver::from_cache_dir(cache_dir.path()).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
resolver.cache_path,
|
||||
cache_dir.path().join("github-meta-hooks.json")
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn resolve_ip_allowlist_config_expands_github_meta_hooks() {
|
||||
let mock_server = MockServer::start_async().await;
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ where
|
|||
(auth_mode, max_concurrent_runs)
|
||||
};
|
||||
let web_enabled = router_web_enabled(&resolved_server_settings);
|
||||
let github_meta_resolver = GitHubMetaResolver::from_home()?;
|
||||
let github_meta_resolver = GitHubMetaResolver::from_cache_dir(&storage.cache_dir())?;
|
||||
|
||||
let (object_store, slatedb_prefix, flush_interval, disk_cache) =
|
||||
build_slatedb_store(&resolved_server_settings)?;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue