add enum types in query structs
This commit is contained in:
		
							parent
							
								
									945647baf1
								
							
						
					
					
						commit
						43f853dad3
					
				
					 2 changed files with 524 additions and 65 deletions
				
			
		| 
						 | 
				
			
			@ -41,7 +41,7 @@ pub fn create_struct_for_definition(
 | 
			
		|||
 | 
			
		||||
    if schema._type == Some(SchemaType::One(Primitive::String)) {
 | 
			
		||||
        if let Some(_enum) = &schema._enum {
 | 
			
		||||
            return create_enum(name, schema);
 | 
			
		||||
            return create_enum(name, schema.description.as_deref(), _enum);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -121,31 +121,52 @@ pub fn create_struct_for_definition(
 | 
			
		|||
    Ok(out)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn create_enum(name: &str, schema: &Schema) -> eyre::Result<String> {
 | 
			
		||||
    let _enum = schema
 | 
			
		||||
        ._enum
 | 
			
		||||
        .as_deref()
 | 
			
		||||
        .ok_or_else(|| eyre::eyre!("cannot create enum from non-enum schema"))?;
 | 
			
		||||
fn create_enum(
 | 
			
		||||
    name: &str,
 | 
			
		||||
    desc: Option<&str>,
 | 
			
		||||
    _enum: &[serde_json::Value],
 | 
			
		||||
) -> eyre::Result<String> {
 | 
			
		||||
    let mut variants = String::new();
 | 
			
		||||
 | 
			
		||||
    let docs = create_struct_docs(schema)?;
 | 
			
		||||
    let mut imp = String::new();
 | 
			
		||||
    imp.push_str("match self {");
 | 
			
		||||
    let docs = create_struct_docs_str(desc)?;
 | 
			
		||||
    for variant in _enum {
 | 
			
		||||
        match variant {
 | 
			
		||||
            serde_json::Value::String(s) => {
 | 
			
		||||
                let variant_name = s.to_pascal_case();
 | 
			
		||||
                variants.push_str(&variant_name);
 | 
			
		||||
                variants.push_str(",\n");
 | 
			
		||||
 | 
			
		||||
                writeln!(&mut imp, "{name}::{variant_name} => \"{s}\",")?;
 | 
			
		||||
            }
 | 
			
		||||
            x => eyre::bail!("cannot create enum variant. expected string, got {x:?}"),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    imp.push_str("}");
 | 
			
		||||
 | 
			
		||||
    let out = format!("{docs}#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\npub enum {name} {{\n{variants}}}\n\n");
 | 
			
		||||
    let out = format!(
 | 
			
		||||
        "
 | 
			
		||||
{docs}
 | 
			
		||||
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
pub enum {name} {{
 | 
			
		||||
    {variants}
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
impl {name} {{
 | 
			
		||||
    fn as_str(&self) -> &'static str {{
 | 
			
		||||
        {imp}
 | 
			
		||||
    }}
 | 
			
		||||
}}"
 | 
			
		||||
    );
 | 
			
		||||
    Ok(out)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn create_struct_docs(schema: &Schema) -> eyre::Result<String> {
 | 
			
		||||
    let doc = match &schema.description {
 | 
			
		||||
    create_struct_docs_str(schema.description.as_deref())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn create_struct_docs_str(description: Option<&str>) -> eyre::Result<String> {
 | 
			
		||||
    let doc = match description {
 | 
			
		||||
        Some(desc) => {
 | 
			
		||||
            let mut out = String::new();
 | 
			
		||||
            for line in desc.lines() {
 | 
			
		||||
| 
						 | 
				
			
			@ -203,6 +224,8 @@ fn create_query_struct(op: &Operation) -> eyre::Result<String> {
 | 
			
		|||
        None => return Ok(String::new()),
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let op_name = query_struct_name(op)?;
 | 
			
		||||
    let mut enums = Vec::new();
 | 
			
		||||
    let mut fields = String::new();
 | 
			
		||||
    let mut imp = String::new();
 | 
			
		||||
    for param in params {
 | 
			
		||||
| 
						 | 
				
			
			@ -211,8 +234,35 @@ fn create_query_struct(op: &Operation) -> eyre::Result<String> {
 | 
			
		|||
            MaybeRef::Ref { _ref } => eyre::bail!("todo: add deref parameters"),
 | 
			
		||||
        };
 | 
			
		||||
        if let ParameterIn::Query { param: query_param } = ¶m._in {
 | 
			
		||||
            let ty = crate::methods::param_type(query_param, true)?;
 | 
			
		||||
            let field_name = crate::sanitize_ident(¶m.name);
 | 
			
		||||
            let ty = match &query_param {
 | 
			
		||||
                NonBodyParameter {
 | 
			
		||||
                    _type: ParameterType::String,
 | 
			
		||||
                    _enum: Some(_enum),
 | 
			
		||||
                    ..
 | 
			
		||||
                } => {
 | 
			
		||||
                    let name = format!("{op_name}{}", param.name.to_pascal_case());
 | 
			
		||||
                    let enum_def = create_enum(&name, None, _enum)?;
 | 
			
		||||
                    enums.push(enum_def);
 | 
			
		||||
                    name
 | 
			
		||||
                }
 | 
			
		||||
                NonBodyParameter {
 | 
			
		||||
                    _type: ParameterType::Array,
 | 
			
		||||
                    items:
 | 
			
		||||
                        Some(Items {
 | 
			
		||||
                            _type: ParameterType::String,
 | 
			
		||||
                            _enum: Some(_enum),
 | 
			
		||||
                            ..
 | 
			
		||||
                        }),
 | 
			
		||||
                    ..
 | 
			
		||||
                } => {
 | 
			
		||||
                    let name = format!("{op_name}{}", param.name.to_pascal_case());
 | 
			
		||||
                    let enum_def = create_enum(&name, None, _enum)?;
 | 
			
		||||
                    enums.push(enum_def);
 | 
			
		||||
                    format!("Vec<{name}>")
 | 
			
		||||
                }
 | 
			
		||||
                _ => crate::methods::param_type(query_param, true)?,
 | 
			
		||||
            };
 | 
			
		||||
            if let Some(desc) = ¶m.description {
 | 
			
		||||
                for line in desc.lines() {
 | 
			
		||||
                    fields.push_str("/// ");
 | 
			
		||||
| 
						 | 
				
			
			@ -242,22 +292,32 @@ fn create_query_struct(op: &Operation) -> eyre::Result<String> {
 | 
			
		|||
                )?;
 | 
			
		||||
            }
 | 
			
		||||
            match &query_param._type {
 | 
			
		||||
                ParameterType::String => match query_param.format.as_deref() {
 | 
			
		||||
                    Some("date-time" | "date") => {
 | 
			
		||||
                ParameterType::String => {
 | 
			
		||||
                    if let Some(_enum) = &query_param._enum {
 | 
			
		||||
                        writeln!(
 | 
			
		||||
                            &mut handler,
 | 
			
		||||
                            "write!(f, \"{}={{field_name}}&\", field_name = {field_name}.format(&time::format_description::well_known::Rfc3339).unwrap())?;",
 | 
			
		||||
                            param.name)?;
 | 
			
		||||
                    }
 | 
			
		||||
                    _ => {
 | 
			
		||||
                        writeln!(
 | 
			
		||||
                            &mut handler,
 | 
			
		||||
                            "write!(f, \"{}={{{}}}&\")?;",
 | 
			
		||||
                            param.name,
 | 
			
		||||
                            field_name.strip_prefix("r#").unwrap_or(&field_name)
 | 
			
		||||
                            "write!(f, \"{}={{}}&\", {}.as_str())?;",
 | 
			
		||||
                            param.name, field_name,
 | 
			
		||||
                        )?;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        match query_param.format.as_deref() {
 | 
			
		||||
                            Some("date-time" | "date") => {
 | 
			
		||||
                                writeln!(
 | 
			
		||||
                                    &mut handler,
 | 
			
		||||
                                    "write!(f, \"{}={{field_name}}&\", field_name = {field_name}.format(&time::format_description::well_known::Rfc3339).unwrap())?;",
 | 
			
		||||
                                    param.name)?;
 | 
			
		||||
                            }
 | 
			
		||||
                            _ => {
 | 
			
		||||
                                writeln!(
 | 
			
		||||
                                    &mut handler,
 | 
			
		||||
                                    "write!(f, \"{}={{{}}}&\")?;",
 | 
			
		||||
                                    param.name,
 | 
			
		||||
                                    field_name.strip_prefix("r#").unwrap_or(&field_name)
 | 
			
		||||
                                )?;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                }
 | 
			
		||||
                ParameterType::Number | ParameterType::Integer | ParameterType::Boolean => {
 | 
			
		||||
                    writeln!(
 | 
			
		||||
                        &mut handler,
 | 
			
		||||
| 
						 | 
				
			
			@ -276,23 +336,25 @@ fn create_query_struct(op: &Operation) -> eyre::Result<String> {
 | 
			
		|||
                        .ok_or_else(|| eyre::eyre!("array must have item type defined"))?;
 | 
			
		||||
                    let item_pusher = match item._type {
 | 
			
		||||
                        ParameterType::String => {
 | 
			
		||||
                            match query_param.format.as_deref() {
 | 
			
		||||
                                Some("date-time" | "date") => {
 | 
			
		||||
                                    "write!(f, \"{{date}}\", item.format(&time::format_description::well_known::Rfc3339).unwrap())?;"
 | 
			
		||||
                                },
 | 
			
		||||
                                _ => {
 | 
			
		||||
                                    "write!(f, \"{item}\")?;"
 | 
			
		||||
                            if let Some(_enum) = &item._enum {
 | 
			
		||||
                                "write!(f, \"{}\", item.as_str())?;"
 | 
			
		||||
                            } else {
 | 
			
		||||
                                match query_param.format.as_deref() {
 | 
			
		||||
                                    Some("date-time" | "date") => {
 | 
			
		||||
                                        "write!(f, \"{{date}}\", item.format(&time::format_description::well_known::Rfc3339).unwrap())?;"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    _ => {
 | 
			
		||||
                                        "write!(f, \"{item}\")?;"
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        },
 | 
			
		||||
                        ParameterType::Number |
 | 
			
		||||
                            ParameterType::Integer |
 | 
			
		||||
                            ParameterType::Boolean => {
 | 
			
		||||
                                "write!(f, \"{item}\")?;"
 | 
			
		||||
                            },
 | 
			
		||||
                        }
 | 
			
		||||
                        ParameterType::Number | ParameterType::Integer | ParameterType::Boolean => {
 | 
			
		||||
                            "write!(f, \"{item}\")?;"
 | 
			
		||||
                        }
 | 
			
		||||
                        ParameterType::Array => {
 | 
			
		||||
                            eyre::bail!("nested arrays not supported in query");
 | 
			
		||||
                        },
 | 
			
		||||
                        }
 | 
			
		||||
                        ParameterType::File => eyre::bail!("cannot send file in query"),
 | 
			
		||||
                    };
 | 
			
		||||
                    match format {
 | 
			
		||||
| 
						 | 
				
			
			@ -353,8 +415,7 @@ fn create_query_struct(op: &Operation) -> eyre::Result<String> {
 | 
			
		|||
    let result = if fields.is_empty() {
 | 
			
		||||
        String::new()
 | 
			
		||||
    } else {
 | 
			
		||||
        let op_name = query_struct_name(op)?;
 | 
			
		||||
        format!(
 | 
			
		||||
        let mut out = format!(
 | 
			
		||||
            "
 | 
			
		||||
pub struct {op_name} {{
 | 
			
		||||
    {fields}
 | 
			
		||||
| 
						 | 
				
			
			@ -367,7 +428,13 @@ impl std::fmt::Display for {op_name} {{
 | 
			
		|||
    }}
 | 
			
		||||
}}
 | 
			
		||||
"
 | 
			
		||||
        )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        for _enum in enums {
 | 
			
		||||
            out.push_str(&_enum);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        out
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    Ok(result)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										444
									
								
								src/generated.rs
									
										
									
									
									
								
							
							
						
						
									
										444
									
								
								src/generated.rs
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -7409,6 +7409,7 @@ pub mod structs {
 | 
			
		|||
 | 
			
		||||
    /// indicates what to do with the file
 | 
			
		||||
    ///
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum ChangeFileOperationOperation {
 | 
			
		||||
        Create,
 | 
			
		||||
| 
						 | 
				
			
			@ -7416,6 +7417,15 @@ pub mod structs {
 | 
			
		|||
        Delete,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl ChangeFileOperationOperation {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                ChangeFileOperationOperation::Create => "create",
 | 
			
		||||
                ChangeFileOperationOperation::Update => "update",
 | 
			
		||||
                ChangeFileOperationOperation::Delete => "delete",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// ChangeFilesOptions options for creating, updating or deleting multiple files
 | 
			
		||||
    ///
 | 
			
		||||
    /// Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
 | 
			
		||||
| 
						 | 
				
			
			@ -7762,6 +7772,23 @@ pub mod structs {
 | 
			
		|||
        Packagist,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl CreateHookOptionType {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                CreateHookOptionType::Forgejo => "forgejo",
 | 
			
		||||
                CreateHookOptionType::Dingtalk => "dingtalk",
 | 
			
		||||
                CreateHookOptionType::Discord => "discord",
 | 
			
		||||
                CreateHookOptionType::Gitea => "gitea",
 | 
			
		||||
                CreateHookOptionType::Gogs => "gogs",
 | 
			
		||||
                CreateHookOptionType::Msteams => "msteams",
 | 
			
		||||
                CreateHookOptionType::Slack => "slack",
 | 
			
		||||
                CreateHookOptionType::Telegram => "telegram",
 | 
			
		||||
                CreateHookOptionType::Feishu => "feishu",
 | 
			
		||||
                CreateHookOptionType::Wechatwork => "wechatwork",
 | 
			
		||||
                CreateHookOptionType::Packagist => "packagist",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// CreateHookOptionConfig has all config options in it
 | 
			
		||||
    ///
 | 
			
		||||
    /// required are "content_type" and "url" Required
 | 
			
		||||
| 
						 | 
				
			
			@ -7847,6 +7874,14 @@ pub mod structs {
 | 
			
		|||
        Closed,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl CreateMilestoneOptionState {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                CreateMilestoneOptionState::Open => "open",
 | 
			
		||||
                CreateMilestoneOptionState::Closed => "closed",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// CreateOAuth2ApplicationOptions holds options to create an oauth2 application
 | 
			
		||||
    ///
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -7883,6 +7918,7 @@ pub mod structs {
 | 
			
		|||
 | 
			
		||||
    /// possible values are `public` (default), `limited` or `private`
 | 
			
		||||
    ///
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum CreateOrgOptionVisibility {
 | 
			
		||||
        Public,
 | 
			
		||||
| 
						 | 
				
			
			@ -7890,6 +7926,15 @@ pub mod structs {
 | 
			
		|||
        Private,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl CreateOrgOptionVisibility {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                CreateOrgOptionVisibility::Public => "public",
 | 
			
		||||
                CreateOrgOptionVisibility::Limited => "limited",
 | 
			
		||||
                CreateOrgOptionVisibility::Private => "private",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// CreatePullRequestOption options when creating a pull request
 | 
			
		||||
    ///
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -7994,6 +8039,7 @@ pub mod structs {
 | 
			
		|||
 | 
			
		||||
    /// TrustModel of the repository
 | 
			
		||||
    ///
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum CreateRepoOptionTrustModel {
 | 
			
		||||
        Default,
 | 
			
		||||
| 
						 | 
				
			
			@ -8002,6 +8048,16 @@ pub mod structs {
 | 
			
		|||
        Collaboratorcommitter,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl CreateRepoOptionTrustModel {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                CreateRepoOptionTrustModel::Default => "default",
 | 
			
		||||
                CreateRepoOptionTrustModel::Collaborator => "collaborator",
 | 
			
		||||
                CreateRepoOptionTrustModel::Committer => "committer",
 | 
			
		||||
                CreateRepoOptionTrustModel::Collaboratorcommitter => "collaboratorcommitter",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// CreateStatusOption holds the information needed to create a new CommitStatus for a Commit
 | 
			
		||||
    ///
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -8042,6 +8098,15 @@ pub mod structs {
 | 
			
		|||
        Admin,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl CreateTeamOptionPermission {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                CreateTeamOptionPermission::Read => "read",
 | 
			
		||||
                CreateTeamOptionPermission::Write => "write",
 | 
			
		||||
                CreateTeamOptionPermission::Admin => "admin",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub struct CreateTeamOptionUnitsMap {
 | 
			
		||||
        #[serde(flatten)]
 | 
			
		||||
| 
						 | 
				
			
			@ -8303,6 +8368,7 @@ pub mod structs {
 | 
			
		|||
 | 
			
		||||
    /// possible values are `public`, `limited` or `private`
 | 
			
		||||
    ///
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum EditOrgOptionVisibility {
 | 
			
		||||
        Public,
 | 
			
		||||
| 
						 | 
				
			
			@ -8310,6 +8376,15 @@ pub mod structs {
 | 
			
		|||
        Private,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl EditOrgOptionVisibility {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                EditOrgOptionVisibility::Public => "public",
 | 
			
		||||
                EditOrgOptionVisibility::Limited => "limited",
 | 
			
		||||
                EditOrgOptionVisibility::Private => "private",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// EditPullRequestOption options when modify pull request
 | 
			
		||||
    ///
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -8461,6 +8536,15 @@ pub mod structs {
 | 
			
		|||
        Admin,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl EditTeamOptionPermission {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                EditTeamOptionPermission::Read => "read",
 | 
			
		||||
                EditTeamOptionPermission::Write => "write",
 | 
			
		||||
                EditTeamOptionPermission::Admin => "admin",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub struct EditTeamOptionUnitsMap {
 | 
			
		||||
        #[serde(flatten)]
 | 
			
		||||
| 
						 | 
				
			
			@ -9092,6 +9176,17 @@ pub mod structs {
 | 
			
		|||
        ManuallyMerged,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl MergePullRequestOptionDo {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                MergePullRequestOptionDo::Merge => "merge",
 | 
			
		||||
                MergePullRequestOptionDo::Rebase => "rebase",
 | 
			
		||||
                MergePullRequestOptionDo::RebaseMerge => "rebase-merge",
 | 
			
		||||
                MergePullRequestOptionDo::Squash => "squash",
 | 
			
		||||
                MergePullRequestOptionDo::ManuallyMerged => "manually-merged",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// MigrateRepoOptions options for migrating repository's
 | 
			
		||||
    ///
 | 
			
		||||
    /// this is used to interact with api v1
 | 
			
		||||
| 
						 | 
				
			
			@ -9136,6 +9231,20 @@ pub mod structs {
 | 
			
		|||
        Codebase,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl MigrateRepoOptionsService {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                MigrateRepoOptionsService::Git => "git",
 | 
			
		||||
                MigrateRepoOptionsService::Github => "github",
 | 
			
		||||
                MigrateRepoOptionsService::Gitea => "gitea",
 | 
			
		||||
                MigrateRepoOptionsService::Gitlab => "gitlab",
 | 
			
		||||
                MigrateRepoOptionsService::Gogs => "gogs",
 | 
			
		||||
                MigrateRepoOptionsService::Onedev => "onedev",
 | 
			
		||||
                MigrateRepoOptionsService::Gitbucket => "gitbucket",
 | 
			
		||||
                MigrateRepoOptionsService::Codebase => "codebase",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /// Milestone milestone is a collection of issues on one repository
 | 
			
		||||
    ///
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -9829,6 +9938,17 @@ pub mod structs {
 | 
			
		|||
        Owner,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl TeamPermission {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                TeamPermission::None => "none",
 | 
			
		||||
                TeamPermission::Read => "read",
 | 
			
		||||
                TeamPermission::Write => "write",
 | 
			
		||||
                TeamPermission::Admin => "admin",
 | 
			
		||||
                TeamPermission::Owner => "owner",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub struct TeamUnitsMap {
 | 
			
		||||
        #[serde(flatten)]
 | 
			
		||||
| 
						 | 
				
			
			@ -10587,7 +10707,7 @@ pub mod structs {
 | 
			
		|||
        pub status_types: Option<Vec<String>>,
 | 
			
		||||
        /// filter notifications by subject type
 | 
			
		||||
        ///
 | 
			
		||||
        pub subject_type: Option<Vec<String>>,
 | 
			
		||||
        pub subject_type: Option<Vec<NotifyGetListQuerySubjectType>>,
 | 
			
		||||
        /// Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
 | 
			
		||||
        ///
 | 
			
		||||
        pub since: Option<time::OffsetDateTime>,
 | 
			
		||||
| 
						 | 
				
			
			@ -10620,7 +10740,7 @@ pub mod structs {
 | 
			
		|||
                if !subject_type.is_empty() {
 | 
			
		||||
                    for item in subject_type {
 | 
			
		||||
                        write!(f, "subject-type=")?;
 | 
			
		||||
                        write!(f, "{item}")?;
 | 
			
		||||
                        write!(f, "{}", item.as_str())?;
 | 
			
		||||
                        write!(f, "&")?;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -10654,6 +10774,24 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum NotifyGetListQuerySubjectType {
 | 
			
		||||
        Issue,
 | 
			
		||||
        Pull,
 | 
			
		||||
        Commit,
 | 
			
		||||
        Repository,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl NotifyGetListQuerySubjectType {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                NotifyGetListQuerySubjectType::Issue => "issue",
 | 
			
		||||
                NotifyGetListQuerySubjectType::Pull => "pull",
 | 
			
		||||
                NotifyGetListQuerySubjectType::Commit => "commit",
 | 
			
		||||
                NotifyGetListQuerySubjectType::Repository => "repository",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct NotifyReadListQuery {
 | 
			
		||||
        /// Describes the last point that notifications were checked. Anything updated since this time will not be updated.
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -10991,7 +11129,7 @@ pub mod structs {
 | 
			
		|||
        pub limit: Option<u32>,
 | 
			
		||||
        /// package type filter
 | 
			
		||||
        ///
 | 
			
		||||
        pub r#type: Option<String>,
 | 
			
		||||
        pub r#type: Option<ListPackagesQueryRType>,
 | 
			
		||||
        /// name filter
 | 
			
		||||
        ///
 | 
			
		||||
        pub q: Option<String>,
 | 
			
		||||
| 
						 | 
				
			
			@ -11006,7 +11144,7 @@ pub mod structs {
 | 
			
		|||
                write!(f, "limit={limit}&")?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(r#type) = &self.r#type {
 | 
			
		||||
                write!(f, "type={type}&")?;
 | 
			
		||||
                write!(f, "type={}&", r#type.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(q) = &self.q {
 | 
			
		||||
                write!(f, "q={q}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -11016,6 +11154,58 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum ListPackagesQueryRType {
 | 
			
		||||
        Alpine,
 | 
			
		||||
        Cargo,
 | 
			
		||||
        Chef,
 | 
			
		||||
        Composer,
 | 
			
		||||
        Conan,
 | 
			
		||||
        Conda,
 | 
			
		||||
        Container,
 | 
			
		||||
        Cran,
 | 
			
		||||
        Debian,
 | 
			
		||||
        Generic,
 | 
			
		||||
        Go,
 | 
			
		||||
        Helm,
 | 
			
		||||
        Maven,
 | 
			
		||||
        Npm,
 | 
			
		||||
        Nuget,
 | 
			
		||||
        Pub,
 | 
			
		||||
        Pypi,
 | 
			
		||||
        Rpm,
 | 
			
		||||
        Rubygems,
 | 
			
		||||
        Swift,
 | 
			
		||||
        Vagrant,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl ListPackagesQueryRType {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                ListPackagesQueryRType::Alpine => "alpine",
 | 
			
		||||
                ListPackagesQueryRType::Cargo => "cargo",
 | 
			
		||||
                ListPackagesQueryRType::Chef => "chef",
 | 
			
		||||
                ListPackagesQueryRType::Composer => "composer",
 | 
			
		||||
                ListPackagesQueryRType::Conan => "conan",
 | 
			
		||||
                ListPackagesQueryRType::Conda => "conda",
 | 
			
		||||
                ListPackagesQueryRType::Container => "container",
 | 
			
		||||
                ListPackagesQueryRType::Cran => "cran",
 | 
			
		||||
                ListPackagesQueryRType::Debian => "debian",
 | 
			
		||||
                ListPackagesQueryRType::Generic => "generic",
 | 
			
		||||
                ListPackagesQueryRType::Go => "go",
 | 
			
		||||
                ListPackagesQueryRType::Helm => "helm",
 | 
			
		||||
                ListPackagesQueryRType::Maven => "maven",
 | 
			
		||||
                ListPackagesQueryRType::Npm => "npm",
 | 
			
		||||
                ListPackagesQueryRType::Nuget => "nuget",
 | 
			
		||||
                ListPackagesQueryRType::Pub => "pub",
 | 
			
		||||
                ListPackagesQueryRType::Pypi => "pypi",
 | 
			
		||||
                ListPackagesQueryRType::Rpm => "rpm",
 | 
			
		||||
                ListPackagesQueryRType::Rubygems => "rubygems",
 | 
			
		||||
                ListPackagesQueryRType::Swift => "swift",
 | 
			
		||||
                ListPackagesQueryRType::Vagrant => "vagrant",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct IssueSearchIssuesQuery {
 | 
			
		||||
        /// whether issue is open or closed
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -11413,10 +11603,10 @@ pub mod structs {
 | 
			
		|||
    pub struct RepoListStatusesByRefQuery {
 | 
			
		||||
        /// type of sort
 | 
			
		||||
        ///
 | 
			
		||||
        pub sort: Option<String>,
 | 
			
		||||
        pub sort: Option<RepoListStatusesByRefQuerySort>,
 | 
			
		||||
        /// type of state
 | 
			
		||||
        ///
 | 
			
		||||
        pub state: Option<String>,
 | 
			
		||||
        pub state: Option<RepoListStatusesByRefQueryState>,
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
        pub page: Option<u32>,
 | 
			
		||||
| 
						 | 
				
			
			@ -11428,10 +11618,10 @@ pub mod structs {
 | 
			
		|||
    impl std::fmt::Display for RepoListStatusesByRefQuery {
 | 
			
		||||
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | 
			
		||||
            if let Some(sort) = &self.sort {
 | 
			
		||||
                write!(f, "sort={sort}&")?;
 | 
			
		||||
                write!(f, "sort={}&", sort.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(state) = &self.state {
 | 
			
		||||
                write!(f, "state={state}&")?;
 | 
			
		||||
                write!(f, "state={}&", state.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(page) = &self.page {
 | 
			
		||||
                write!(f, "page={page}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -11444,6 +11634,47 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListStatusesByRefQuerySort {
 | 
			
		||||
        Oldest,
 | 
			
		||||
        Recentupdate,
 | 
			
		||||
        Leastupdate,
 | 
			
		||||
        Leastindex,
 | 
			
		||||
        Highestindex,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListStatusesByRefQuerySort {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListStatusesByRefQuerySort::Oldest => "oldest",
 | 
			
		||||
                RepoListStatusesByRefQuerySort::Recentupdate => "recentupdate",
 | 
			
		||||
                RepoListStatusesByRefQuerySort::Leastupdate => "leastupdate",
 | 
			
		||||
                RepoListStatusesByRefQuerySort::Leastindex => "leastindex",
 | 
			
		||||
                RepoListStatusesByRefQuerySort::Highestindex => "highestindex",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListStatusesByRefQueryState {
 | 
			
		||||
        Pending,
 | 
			
		||||
        Success,
 | 
			
		||||
        Error,
 | 
			
		||||
        Failure,
 | 
			
		||||
        Warning,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListStatusesByRefQueryState {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListStatusesByRefQueryState::Pending => "pending",
 | 
			
		||||
                RepoListStatusesByRefQueryState::Success => "success",
 | 
			
		||||
                RepoListStatusesByRefQueryState::Error => "error",
 | 
			
		||||
                RepoListStatusesByRefQueryState::Failure => "failure",
 | 
			
		||||
                RepoListStatusesByRefQueryState::Warning => "warning",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct RepoGetContentsListQuery {
 | 
			
		||||
        /// The name of the commit/branch/tag. Default the repository’s default branch (usually master)
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -11633,7 +11864,7 @@ pub mod structs {
 | 
			
		|||
    pub struct IssueListIssuesQuery {
 | 
			
		||||
        /// whether issue is open or closed
 | 
			
		||||
        ///
 | 
			
		||||
        pub state: Option<String>,
 | 
			
		||||
        pub state: Option<IssueListIssuesQueryState>,
 | 
			
		||||
        /// comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded
 | 
			
		||||
        ///
 | 
			
		||||
        pub labels: Option<String>,
 | 
			
		||||
| 
						 | 
				
			
			@ -11642,7 +11873,7 @@ pub mod structs {
 | 
			
		|||
        pub q: Option<String>,
 | 
			
		||||
        /// filter by type (issues / pulls) if set
 | 
			
		||||
        ///
 | 
			
		||||
        pub r#type: Option<String>,
 | 
			
		||||
        pub r#type: Option<IssueListIssuesQueryRType>,
 | 
			
		||||
        /// comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded
 | 
			
		||||
        ///
 | 
			
		||||
        pub milestones: Option<String>,
 | 
			
		||||
| 
						 | 
				
			
			@ -11672,7 +11903,7 @@ pub mod structs {
 | 
			
		|||
    impl std::fmt::Display for IssueListIssuesQuery {
 | 
			
		||||
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | 
			
		||||
            if let Some(state) = &self.state {
 | 
			
		||||
                write!(f, "state={state}&")?;
 | 
			
		||||
                write!(f, "state={}&", state.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(labels) = &self.labels {
 | 
			
		||||
                write!(f, "labels={labels}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -11681,7 +11912,7 @@ pub mod structs {
 | 
			
		|||
                write!(f, "q={q}&")?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(r#type) = &self.r#type {
 | 
			
		||||
                write!(f, "type={type}&")?;
 | 
			
		||||
                write!(f, "type={}&", r#type.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(milestones) = &self.milestones {
 | 
			
		||||
                write!(f, "milestones={milestones}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -11724,6 +11955,37 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum IssueListIssuesQueryState {
 | 
			
		||||
        Closed,
 | 
			
		||||
        Open,
 | 
			
		||||
        All,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl IssueListIssuesQueryState {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                IssueListIssuesQueryState::Closed => "closed",
 | 
			
		||||
                IssueListIssuesQueryState::Open => "open",
 | 
			
		||||
                IssueListIssuesQueryState::All => "all",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum IssueListIssuesQueryRType {
 | 
			
		||||
        Issues,
 | 
			
		||||
        Pulls,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl IssueListIssuesQueryRType {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                IssueListIssuesQueryRType::Issues => "issues",
 | 
			
		||||
                IssueListIssuesQueryRType::Pulls => "pulls",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct IssueGetRepoCommentsQuery {
 | 
			
		||||
        /// if provided, only comments updated since the provided time are returned.
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -12161,7 +12423,7 @@ pub mod structs {
 | 
			
		|||
        pub status_types: Option<Vec<String>>,
 | 
			
		||||
        /// filter notifications by subject type
 | 
			
		||||
        ///
 | 
			
		||||
        pub subject_type: Option<Vec<String>>,
 | 
			
		||||
        pub subject_type: Option<Vec<NotifyGetRepoListQuerySubjectType>>,
 | 
			
		||||
        /// Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
 | 
			
		||||
        ///
 | 
			
		||||
        pub since: Option<time::OffsetDateTime>,
 | 
			
		||||
| 
						 | 
				
			
			@ -12194,7 +12456,7 @@ pub mod structs {
 | 
			
		|||
                if !subject_type.is_empty() {
 | 
			
		||||
                    for item in subject_type {
 | 
			
		||||
                        write!(f, "subject-type=")?;
 | 
			
		||||
                        write!(f, "{item}")?;
 | 
			
		||||
                        write!(f, "{}", item.as_str())?;
 | 
			
		||||
                        write!(f, "&")?;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -12228,6 +12490,24 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum NotifyGetRepoListQuerySubjectType {
 | 
			
		||||
        Issue,
 | 
			
		||||
        Pull,
 | 
			
		||||
        Commit,
 | 
			
		||||
        Repository,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl NotifyGetRepoListQuerySubjectType {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                NotifyGetRepoListQuerySubjectType::Issue => "issue",
 | 
			
		||||
                NotifyGetRepoListQuerySubjectType::Pull => "pull",
 | 
			
		||||
                NotifyGetRepoListQuerySubjectType::Commit => "commit",
 | 
			
		||||
                NotifyGetRepoListQuerySubjectType::Repository => "repository",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct NotifyReadRepoListQuery {
 | 
			
		||||
        /// If true, mark all notifications on this repo. Default value is false
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -12277,10 +12557,10 @@ pub mod structs {
 | 
			
		|||
    pub struct RepoListPullRequestsQuery {
 | 
			
		||||
        /// State of pull request: open or closed (optional)
 | 
			
		||||
        ///
 | 
			
		||||
        pub state: Option<String>,
 | 
			
		||||
        pub state: Option<RepoListPullRequestsQueryState>,
 | 
			
		||||
        /// Type of sort
 | 
			
		||||
        ///
 | 
			
		||||
        pub sort: Option<String>,
 | 
			
		||||
        pub sort: Option<RepoListPullRequestsQuerySort>,
 | 
			
		||||
        /// ID of the milestone
 | 
			
		||||
        ///
 | 
			
		||||
        pub milestone: Option<u64>,
 | 
			
		||||
| 
						 | 
				
			
			@ -12298,10 +12578,10 @@ pub mod structs {
 | 
			
		|||
    impl std::fmt::Display for RepoListPullRequestsQuery {
 | 
			
		||||
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | 
			
		||||
            if let Some(state) = &self.state {
 | 
			
		||||
                write!(f, "state={state}&")?;
 | 
			
		||||
                write!(f, "state={}&", state.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(sort) = &self.sort {
 | 
			
		||||
                write!(f, "sort={sort}&")?;
 | 
			
		||||
                write!(f, "sort={}&", sort.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(milestone) = &self.milestone {
 | 
			
		||||
                write!(f, "milestone={milestone}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -12326,6 +12606,45 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListPullRequestsQueryState {
 | 
			
		||||
        Closed,
 | 
			
		||||
        Open,
 | 
			
		||||
        All,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListPullRequestsQueryState {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListPullRequestsQueryState::Closed => "closed",
 | 
			
		||||
                RepoListPullRequestsQueryState::Open => "open",
 | 
			
		||||
                RepoListPullRequestsQueryState::All => "all",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListPullRequestsQuerySort {
 | 
			
		||||
        Oldest,
 | 
			
		||||
        Recentupdate,
 | 
			
		||||
        Leastupdate,
 | 
			
		||||
        Mostcomment,
 | 
			
		||||
        Leastcomment,
 | 
			
		||||
        Priority,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListPullRequestsQuerySort {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListPullRequestsQuerySort::Oldest => "oldest",
 | 
			
		||||
                RepoListPullRequestsQuerySort::Recentupdate => "recentupdate",
 | 
			
		||||
                RepoListPullRequestsQuerySort::Leastupdate => "leastupdate",
 | 
			
		||||
                RepoListPullRequestsQuerySort::Mostcomment => "mostcomment",
 | 
			
		||||
                RepoListPullRequestsQuerySort::Leastcomment => "leastcomment",
 | 
			
		||||
                RepoListPullRequestsQuerySort::Priority => "priority",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct RepoDownloadPullDiffOrPatchQuery {
 | 
			
		||||
        /// whether to include binary file changes. if true, the diff is applicable with `git apply`
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -12382,7 +12701,7 @@ pub mod structs {
 | 
			
		|||
        pub skip_to: Option<String>,
 | 
			
		||||
        /// whitespace behavior
 | 
			
		||||
        ///
 | 
			
		||||
        pub whitespace: Option<String>,
 | 
			
		||||
        pub whitespace: Option<RepoGetPullRequestFilesQueryWhitespace>,
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
        pub page: Option<u32>,
 | 
			
		||||
| 
						 | 
				
			
			@ -12397,7 +12716,7 @@ pub mod structs {
 | 
			
		|||
                write!(f, "skip-to={skip_to}&")?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(whitespace) = &self.whitespace {
 | 
			
		||||
                write!(f, "whitespace={whitespace}&")?;
 | 
			
		||||
                write!(f, "whitespace={}&", whitespace.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(page) = &self.page {
 | 
			
		||||
                write!(f, "page={page}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -12410,6 +12729,24 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoGetPullRequestFilesQueryWhitespace {
 | 
			
		||||
        IgnoreAll,
 | 
			
		||||
        IgnoreChange,
 | 
			
		||||
        IgnoreEol,
 | 
			
		||||
        ShowAll,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoGetPullRequestFilesQueryWhitespace {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoGetPullRequestFilesQueryWhitespace::IgnoreAll => "ignore-all",
 | 
			
		||||
                RepoGetPullRequestFilesQueryWhitespace::IgnoreChange => "ignore-change",
 | 
			
		||||
                RepoGetPullRequestFilesQueryWhitespace::IgnoreEol => "ignore-eol",
 | 
			
		||||
                RepoGetPullRequestFilesQueryWhitespace::ShowAll => "show-all",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct RepoListPullReviewsQuery {
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -12435,19 +12772,33 @@ pub mod structs {
 | 
			
		|||
    pub struct RepoUpdatePullRequestQuery {
 | 
			
		||||
        /// how to update pull request
 | 
			
		||||
        ///
 | 
			
		||||
        pub style: Option<String>,
 | 
			
		||||
        pub style: Option<RepoUpdatePullRequestQueryStyle>,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl std::fmt::Display for RepoUpdatePullRequestQuery {
 | 
			
		||||
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | 
			
		||||
            if let Some(style) = &self.style {
 | 
			
		||||
                write!(f, "style={style}&")?;
 | 
			
		||||
                write!(f, "style={}&", style.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Ok(())
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoUpdatePullRequestQueryStyle {
 | 
			
		||||
        Merge,
 | 
			
		||||
        Rebase,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoUpdatePullRequestQueryStyle {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoUpdatePullRequestQueryStyle::Merge => "merge",
 | 
			
		||||
                RepoUpdatePullRequestQueryStyle::Rebase => "rebase",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct RepoListPushMirrorsQuery {
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			@ -12567,10 +12918,10 @@ pub mod structs {
 | 
			
		|||
    pub struct RepoListStatusesQuery {
 | 
			
		||||
        /// type of sort
 | 
			
		||||
        ///
 | 
			
		||||
        pub sort: Option<String>,
 | 
			
		||||
        pub sort: Option<RepoListStatusesQuerySort>,
 | 
			
		||||
        /// type of state
 | 
			
		||||
        ///
 | 
			
		||||
        pub state: Option<String>,
 | 
			
		||||
        pub state: Option<RepoListStatusesQueryState>,
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
        pub page: Option<u32>,
 | 
			
		||||
| 
						 | 
				
			
			@ -12582,10 +12933,10 @@ pub mod structs {
 | 
			
		|||
    impl std::fmt::Display for RepoListStatusesQuery {
 | 
			
		||||
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | 
			
		||||
            if let Some(sort) = &self.sort {
 | 
			
		||||
                write!(f, "sort={sort}&")?;
 | 
			
		||||
                write!(f, "sort={}&", sort.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(state) = &self.state {
 | 
			
		||||
                write!(f, "state={state}&")?;
 | 
			
		||||
                write!(f, "state={}&", state.as_str())?;
 | 
			
		||||
            }
 | 
			
		||||
            if let Some(page) = &self.page {
 | 
			
		||||
                write!(f, "page={page}&")?;
 | 
			
		||||
| 
						 | 
				
			
			@ -12598,6 +12949,47 @@ pub mod structs {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListStatusesQuerySort {
 | 
			
		||||
        Oldest,
 | 
			
		||||
        Recentupdate,
 | 
			
		||||
        Leastupdate,
 | 
			
		||||
        Leastindex,
 | 
			
		||||
        Highestindex,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListStatusesQuerySort {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListStatusesQuerySort::Oldest => "oldest",
 | 
			
		||||
                RepoListStatusesQuerySort::Recentupdate => "recentupdate",
 | 
			
		||||
                RepoListStatusesQuerySort::Leastupdate => "leastupdate",
 | 
			
		||||
                RepoListStatusesQuerySort::Leastindex => "leastindex",
 | 
			
		||||
                RepoListStatusesQuerySort::Highestindex => "highestindex",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 | 
			
		||||
    pub enum RepoListStatusesQueryState {
 | 
			
		||||
        Pending,
 | 
			
		||||
        Success,
 | 
			
		||||
        Error,
 | 
			
		||||
        Failure,
 | 
			
		||||
        Warning,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    impl RepoListStatusesQueryState {
 | 
			
		||||
        fn as_str(&self) -> &'static str {
 | 
			
		||||
            match self {
 | 
			
		||||
                RepoListStatusesQueryState::Pending => "pending",
 | 
			
		||||
                RepoListStatusesQueryState::Success => "success",
 | 
			
		||||
                RepoListStatusesQueryState::Error => "error",
 | 
			
		||||
                RepoListStatusesQueryState::Failure => "failure",
 | 
			
		||||
                RepoListStatusesQueryState::Warning => "warning",
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    pub struct RepoListSubscribersQuery {
 | 
			
		||||
        /// page number of results to return (1-based)
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue