solstice-ci/crates/github-integration/src/main.rs
Till Wegmueller a71f9cc7d1
Initial Commit
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-10-25 20:01:08 +02:00

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(())
}