mod date_time;
mod executors;
mod runner_token;
mod url;
pub use date_time::DateTime;
pub use executors::{Docker, Executor, PullPolicy, SecurityOpt, Service, Sysctls};
pub use runner_token::{RunnerToken, RunnerTokenParseError};
use serde::Serialize;
pub use url::Url;
#[derive(Debug, Serialize)]
pub struct Runner {
pub id: u32,
pub name: String,
pub url: Url,
pub token: RunnerToken,
pub token_obtained_at: DateTime,
pub token_expires_at: DateTime,
pub limit: u32,
#[serde(flatten)]
pub executor: Executor,
pub builds_dir: String,
pub cache_dir: String,
pub environment: Vec<String>,
pub request_concurrency: u32,
pub output_limit: u32,
}
impl Default for Runner {
fn default() -> Self {
Self {
id: 1,
name: "default".to_string(),
url: Url::parse("https://gitlab.com/").expect("given string is a URL"),
token: RunnerToken::parse("glrt-0123456789_abcdefXYZ")
.expect("given string is a valid token"),
token_obtained_at: DateTime::now(),
token_expires_at: DateTime::parse("0001-01-01T00:00:00Z")
.expect("given string is a valid ISO8601 timestamp"),
limit: 0,
executor: Executor::Docker {
docker: Default::default(),
},
builds_dir: "".to_string(),
cache_dir: "".to_string(),
environment: vec![],
request_concurrency: 1,
output_limit: 4096,
}
}
}