Merge pull request 'strongly type repository default merge style' (#48) from enum-repo-merge-style into main
Reviewed-on: https://codeberg.org/Cyborus/forgejo-api/pulls/48
This commit is contained in:
commit
1d321c66e3
|
@ -72,12 +72,21 @@ fn schema_type_name(
|
||||||
match ty {
|
match ty {
|
||||||
SchemaType::One(prim) => {
|
SchemaType::One(prim) => {
|
||||||
let name = match 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::Date",
|
||||||
Some("date-time") => "time::OffsetDateTime",
|
Some("date-time") => "time::OffsetDateTime",
|
||||||
_ => "String",
|
_ => "String",
|
||||||
}
|
}
|
||||||
.to_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() {
|
Primitive::Number => match schema.format.as_deref() {
|
||||||
Some("float") => "f32",
|
Some("float") => "f32",
|
||||||
Some("double") => "f64",
|
Some("double") => "f64",
|
||||||
|
|
|
@ -793,6 +793,19 @@ pub struct Cron {
|
||||||
pub schedule: Option<String>,
|
pub schedule: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[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
|
/// DeleteEmailOption options when deleting email addresses
|
||||||
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
|
||||||
pub struct DeleteEmailOption {
|
pub struct DeleteEmailOption {
|
||||||
|
@ -1039,8 +1052,7 @@ pub struct EditRepoOption {
|
||||||
pub default_branch: Option<String>,
|
pub default_branch: Option<String>,
|
||||||
/// set to `true` to delete pr branch after merge by default
|
/// set to `true` to delete pr branch after merge by default
|
||||||
pub default_delete_branch_after_merge: Option<bool>,
|
pub default_delete_branch_after_merge: Option<bool>,
|
||||||
/// 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<DefaultMergeStyle>,
|
||||||
pub default_merge_style: Option<String>,
|
|
||||||
/// a short description of the repository.
|
/// a short description of the repository.
|
||||||
pub description: Option<String>,
|
pub description: Option<String>,
|
||||||
/// enable prune - remove obsolete remote-tracking references
|
/// enable prune - remove obsolete remote-tracking references
|
||||||
|
@ -2212,7 +2224,7 @@ pub struct Repository {
|
||||||
pub default_allow_maintainer_edit: Option<bool>,
|
pub default_allow_maintainer_edit: Option<bool>,
|
||||||
pub default_branch: Option<String>,
|
pub default_branch: Option<String>,
|
||||||
pub default_delete_branch_after_merge: Option<bool>,
|
pub default_delete_branch_after_merge: Option<bool>,
|
||||||
pub default_merge_style: Option<String>,
|
pub default_merge_style: Option<DefaultMergeStyle>,
|
||||||
pub description: Option<String>,
|
pub description: Option<String>,
|
||||||
pub empty: Option<bool>,
|
pub empty: Option<bool>,
|
||||||
pub external_tracker: Option<ExternalTracker>,
|
pub external_tracker: Option<ExternalTracker>,
|
||||||
|
|
16
src/lib.rs
16
src/lib.rs
|
@ -253,3 +253,19 @@ fn none_if_blank_url<'de, D: serde::Deserializer<'de>>(
|
||||||
|
|
||||||
deserializer.deserialize_str(EmptyUrlVisitor)
|
deserializer.deserialize_str(EmptyUrlVisitor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<structs::DefaultMergeStyle> 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -17622,6 +17622,16 @@
|
||||||
},
|
},
|
||||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||||
},
|
},
|
||||||
|
"DefaultMergeStyle": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"merge",
|
||||||
|
"rebase",
|
||||||
|
"rebase-merge",
|
||||||
|
"squash",
|
||||||
|
"fast-forward-only"
|
||||||
|
]
|
||||||
|
},
|
||||||
"DeleteEmailOption": {
|
"DeleteEmailOption": {
|
||||||
"description": "DeleteEmailOption options when deleting email addresses",
|
"description": "DeleteEmailOption options when deleting email addresses",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -18269,9 +18279,7 @@
|
||||||
"x-go-name": "DefaultDeleteBranchAfterMerge"
|
"x-go-name": "DefaultDeleteBranchAfterMerge"
|
||||||
},
|
},
|
||||||
"default_merge_style": {
|
"default_merge_style": {
|
||||||
"description": "set to a merge style to be used by this repository: \"merge\", \"rebase\", \"rebase-merge\", \"squash\", or \"fast-forward-only\".",
|
"$ref": "#/definitions/DefaultMergeStyle"
|
||||||
"type": "string",
|
|
||||||
"x-go-name": "DefaultMergeStyle"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"description": "a short description of the repository.",
|
"description": "a short description of the repository.",
|
||||||
|
@ -21151,8 +21159,7 @@
|
||||||
"x-go-name": "DefaultDeleteBranchAfterMerge"
|
"x-go-name": "DefaultDeleteBranchAfterMerge"
|
||||||
},
|
},
|
||||||
"default_merge_style": {
|
"default_merge_style": {
|
||||||
"type": "string",
|
"$ref": "#/definitions/DefaultMergeStyle"
|
||||||
"x-go-name": "DefaultMergeStyle"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|
Loading…
Reference in a new issue