mirror of
https://codeberg.org/Toasterson/solstice-ci.git
synced 2026-04-10 21:30:41 +00:00
36 lines
1.2 KiB
Rust
36 lines
1.2 KiB
Rust
use clap::Parser;
|
|
use miette::Result;
|
|
use tracing::{info, warn};
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(name = "solstice-github", version, about = "Solstice CI — GitHub Integration (GitHub App)")]
|
|
struct Opts {
|
|
/// HTTP bind address for GitHub webhooks (e.g., 0.0.0.0:8081)
|
|
#[arg(long, env = "HTTP_ADDR", default_value = "0.0.0.0:8081")]
|
|
http_addr: String,
|
|
|
|
/// GitHub App ID
|
|
#[arg(long, env = "GITHUB_APP_ID")]
|
|
app_id: Option<u64>,
|
|
|
|
/// Path to GitHub App private key (PEM)
|
|
#[arg(long, env = "GITHUB_APP_KEY_PATH")]
|
|
app_key_path: Option<String>,
|
|
|
|
/// OTLP endpoint (e.g., http://localhost:4317)
|
|
#[arg(long, env = "OTEL_EXPORTER_OTLP_ENDPOINT")]
|
|
otlp: Option<String>,
|
|
}
|
|
|
|
#[tokio::main(flavor = "multi_thread")]
|
|
async fn main() -> Result<()> {
|
|
let _t = common::init_tracing("solstice-github-integration")?;
|
|
let opts = Opts::parse();
|
|
info!(http_addr = %opts.http_addr, "github integration starting");
|
|
|
|
// TODO: Start HTTP server, validate signatures, implement GitHub App auth flow
|
|
warn!("github-integration skeleton running; HTTP/GitHub App not implemented yet");
|
|
|
|
tokio::signal::ctrl_c().await.expect("listen for ctrl-c");
|
|
Ok(())
|
|
}
|