mirror of
https://github.com/go-gitea/gitea
synced 2025-07-31 22:58:35 +00:00
Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562)
Extract from #34531 ## Move Commit status state to a standalone package Move the state from `structs` to `commitstatus` package. It also introduce `CommitStatusStates` so that the combine function could be used from UI and API logic. ## Combined commit status Changed This PR will follow Github's combined commit status. Before this PR, every commit status could be a combined one. According to https://docs.github.com/en/rest/commits/statuses?apiVersion=2022-11-28#get-the-combined-status-for-a-specific-reference > Additionally, a combined state is returned. The state is one of: > failure if any of the contexts report as error or failure > pending if there are no statuses or a context is pending > success if the latest status for all contexts is success This PR will follow that rule and remove the `NoBetterThan` logic. This also fixes the inconsistent between UI and API. In the API convert package, it has implemented this which is different from the UI. It also fixed the missing `URL` and `CommitURL` in the API. ## `CalcCommitStatus` return nil if there is no commit statuses The behavior of `CalcCommitStatus` is changed. If the parameter commit statuses is empty, it will return nil. The reference places should check the returned value themselves.
This commit is contained in:
41
templates/swagger/v1_json.tmpl
generated
41
templates/swagger/v1_json.tmpl
generated
@@ -21030,7 +21030,17 @@
|
||||
"x-go-name": "SHA"
|
||||
},
|
||||
"state": {
|
||||
"$ref": "#/definitions/CommitStatusState"
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pending",
|
||||
"success",
|
||||
"error",
|
||||
"failure",
|
||||
"warning",
|
||||
"skipped"
|
||||
],
|
||||
"x-go-enum-desc": "pending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped",
|
||||
"x-go-name": "State"
|
||||
},
|
||||
"statuses": {
|
||||
"type": "array",
|
||||
@@ -21258,7 +21268,17 @@
|
||||
"x-go-name": "ID"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/definitions/CommitStatusState"
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pending",
|
||||
"success",
|
||||
"error",
|
||||
"failure",
|
||||
"warning",
|
||||
"skipped"
|
||||
],
|
||||
"x-go-enum-desc": "pending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped",
|
||||
"x-go-name": "State"
|
||||
},
|
||||
"target_url": {
|
||||
"type": "string",
|
||||
@@ -21276,11 +21296,6 @@
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"CommitStatusState": {
|
||||
"description": "CommitStatusState holds the state of a CommitStatus\nIt can be \"pending\", \"success\", \"error\" and \"failure\"",
|
||||
"type": "string",
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"CommitUser": {
|
||||
"type": "object",
|
||||
"title": "CommitUser contains information of a user in the context of a commit.",
|
||||
@@ -22329,7 +22344,17 @@
|
||||
"x-go-name": "Description"
|
||||
},
|
||||
"state": {
|
||||
"$ref": "#/definitions/CommitStatusState"
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pending",
|
||||
"success",
|
||||
"error",
|
||||
"failure",
|
||||
"warning",
|
||||
"skipped"
|
||||
],
|
||||
"x-go-enum-desc": "pending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped",
|
||||
"x-go-name": "State"
|
||||
},
|
||||
"target_url": {
|
||||
"type": "string",
|
||||
|
Reference in New Issue
Block a user