12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- use serde::{Serialize, Deserialize};
- use std::collections::HashMap;
- #[derive(Serialize, Deserialize)]
- pub struct Config {
- #[serde(rename(serialize = "repo_type", deserialize = "repo_type"), default)]
- repo_types: HashMap<String,RepoType>,
- #[serde(rename(serialize = "repository", deserialize = "repository"), default)]
- repositories: HashMap<String,Repository>,
- #[serde(rename(serialize = "action", deserialize = "action"), default)]
- actions: HashMap<String,Action>,
- #[serde(rename(serialize = "group", deserialize = "group"), default)]
- groups: HashMap<String, Group>,
- }
- #[derive(Serialize, Deserialize)]
- pub struct RepoType {
- #[serde(default)]
- name: String,
- #[serde(default)]
- description: String,
- #[serde(default)]
- create: String,
- #[serde(default)]
- inward: String,
- #[serde(default)]
- outward: String,
- }
- #[derive(Serialize, Deserialize)]
- pub struct Repository {
- #[serde(default)]
- name: String,
- #[serde(default)]
- location: String,
- #[serde(default)]
- repo_type: String,
- #[serde(default)]
- auto_create: bool,
- #[serde(default)]
- disabled: bool,
- #[serde(default)]
- options: HashMap<String, String>
- }
- #[derive(Serialize, Deserialize)]
- pub struct Action {
- #[serde(default)]
- name: String,
- #[serde(default)]
- command: String,
- #[serde(default)]
- disabled: bool,
- }
- #[derive(Serialize, Deserialize)]
- pub struct Group {
- #[serde(default)]
- name: String,
- #[serde(default)]
- actions_after: Vec<String>,
- #[serde(default)]
- members: Vec<String>
- }
|