Gitea labels are now passed with both names and IDs to more easily support services that use one or the other.

This commit is contained in:
Jamie Greunbaum
2024-05-31 23:40:15 -04:00
parent d4d59c957c
commit d763eb48fe
3 changed files with 45 additions and 29 deletions
+13 -4
View File
@@ -77,7 +77,7 @@ func __prepare_form_thread(callback:Callable) -> void:
assert(http_client.get_status() == HTTPClient.STATUS_BODY or http_client.get_status() == HTTPClient.STATUS_CONNECTED)
var response_string : String = __get_http_client_chunk_response(http_client)
var response_data := JSON.parse_string(response_string)
var response_data : Variant = JSON.parse_string(response_string)
if __validate_server_response(response_data) != Error.OK:
return
@@ -140,18 +140,27 @@ func __send_form_data_thread(data:Dictionary, map_name:String, bug_position:Vect
for label_in:Dictionary in response_data:
if label_in["name"] == bug_label or label_in["name"] == status_label:
labels.append(label_in["id"])
(data["labels"] as Array).append_array(labels)
if data["labels"].has("version"): labels.append(data["labels"]["version"]["id"])
if data["labels"].has("hardware"): labels.append(data["labels"]["hardware"]["id"])
if data["labels"].has("os"): labels.append(data["labels"]["os"]["id"])
if data["labels"].has("component"): labels.append(data["labels"]["component"]["id"])
if data["labels"].has("severity"): labels.append(data["labels"]["severity"]["id"])
var marker_data : Dictionary = {
"map_name": map_name,
"bug_position": [bug_position.x, bug_position.y, bug_position.z],
"bug_normal": [bug_normal.x, bug_normal.y, bug_normal.z]
}
data["body"] += "\n\n" + JSON.stringify(marker_data, "", false)
var post_data : Dictionary = {
"title": data["title"],
"body": data["body"] + "\n\n" + JSON.stringify(marker_data, "", false),
"labels": labels
}
# Post issue to Gitea
api_url = __build_url_string("issues")
var post_data_string : String = JSON.stringify(data)
var post_data_string : String = JSON.stringify(post_data)
header_data = __create_header_data(post_data_string.length())
error = http_client.request(HTTPClient.METHOD_POST, api_url, header_data, post_data_string)
assert(error == Error.OK)