diff --git a/generator/src/main.rs b/generator/src/main.rs index 64173bf..5d9d2c7 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -72,12 +72,21 @@ fn schema_type_name( match ty { SchemaType::One(prim) => { let name = match prim { - Primitive::String => match schema.format.as_deref() { + Primitive::String if schema._enum.is_none() => match schema.format.as_deref() { Some("date") => "time::Date", Some("date-time") => "time::OffsetDateTime", _ => "String", } .to_string(), + Primitive::String => { + match (&schema.title, definition_name) { + // Some of the titles are actually descriptions; not sure why + // Checking for a space filters that out + (Some(title), _) if !title.contains(' ') => title.to_string(), + (_, Some(definition_name)) => definition_name.to_string(), + (_, None) => "String".to_string(), + } + } Primitive::Number => match schema.format.as_deref() { Some("float") => "f32", Some("double") => "f64", diff --git a/src/generated/structs.rs b/src/generated/structs.rs index a4d920c..bcb8682 100644 --- a/src/generated/structs.rs +++ b/src/generated/structs.rs @@ -793,6 +793,19 @@ pub struct Cron { pub schedule: Option, } +#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub enum DefaultMergeStyle { + #[serde(rename = "merge")] + Merge, + #[serde(rename = "rebase")] + Rebase, + #[serde(rename = "rebase-merge")] + RebaseMerge, + #[serde(rename = "squash")] + Squash, + #[serde(rename = "fast-forward-only")] + FastForwardOnly, +} /// DeleteEmailOption options when deleting email addresses #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct DeleteEmailOption { @@ -1039,8 +1052,7 @@ pub struct EditRepoOption { pub default_branch: Option, /// set to `true` to delete pr branch after merge by default pub default_delete_branch_after_merge: Option, - /// set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", "squash", or "fast-forward-only". - pub default_merge_style: Option, + pub default_merge_style: Option, /// a short description of the repository. pub description: Option, /// enable prune - remove obsolete remote-tracking references @@ -2212,7 +2224,7 @@ pub struct Repository { pub default_allow_maintainer_edit: Option, pub default_branch: Option, pub default_delete_branch_after_merge: Option, - pub default_merge_style: Option, + pub default_merge_style: Option, pub description: Option, pub empty: Option, pub external_tracker: Option, diff --git a/src/lib.rs b/src/lib.rs index 3a53fcb..90d1137 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -253,3 +253,19 @@ fn none_if_blank_url<'de, D: serde::Deserializer<'de>>( deserializer.deserialize_str(EmptyUrlVisitor) } + +impl From for structs::MergePullRequestOptionDo { + fn from(value: structs::DefaultMergeStyle) -> Self { + match value { + structs::DefaultMergeStyle::Merge => structs::MergePullRequestOptionDo::Merge, + structs::DefaultMergeStyle::Rebase => structs::MergePullRequestOptionDo::Rebase, + structs::DefaultMergeStyle::RebaseMerge => { + structs::MergePullRequestOptionDo::RebaseMerge + } + structs::DefaultMergeStyle::Squash => structs::MergePullRequestOptionDo::Squash, + structs::DefaultMergeStyle::FastForwardOnly => { + structs::MergePullRequestOptionDo::FastForwardOnly + } + } + } +} diff --git a/swagger.v1.json b/swagger.v1.json index 274063a..299afd3 100644 --- a/swagger.v1.json +++ b/swagger.v1.json @@ -17622,6 +17622,16 @@ }, "x-go-package": "code.gitea.io/gitea/modules/structs" }, + "DefaultMergeStyle": { + "type": "string", + "enum": [ + "merge", + "rebase", + "rebase-merge", + "squash", + "fast-forward-only" + ] + }, "DeleteEmailOption": { "description": "DeleteEmailOption options when deleting email addresses", "type": "object", @@ -18269,9 +18279,7 @@ "x-go-name": "DefaultDeleteBranchAfterMerge" }, "default_merge_style": { - "description": "set to a merge style to be used by this repository: \"merge\", \"rebase\", \"rebase-merge\", \"squash\", or \"fast-forward-only\".", - "type": "string", - "x-go-name": "DefaultMergeStyle" + "$ref": "#/definitions/DefaultMergeStyle" }, "description": { "description": "a short description of the repository.", @@ -21151,8 +21159,7 @@ "x-go-name": "DefaultDeleteBranchAfterMerge" }, "default_merge_style": { - "type": "string", - "x-go-name": "DefaultMergeStyle" + "$ref": "#/definitions/DefaultMergeStyle" }, "description": { "type": "string",