Chamar a interface do gitlab para mesclar a solicitação de mesclagem relata um erro 406 branch não pode ser mesclado

fundo do problema

Chame a interface de solicitação de mesclagem do gitlab e o valor de retorno é 406 branch não pode ser mesclado

etapas de resolução de problemas

  1. Consultar se o token do usuário não concede a autoridade de operação correspondente
  2. Consulta se é um ramo de proteção e uma série de perguntas

Depois de verificar os dois problemas acima, descobri que o mesmo erro ainda foi relatado, então decidi solicitar a interface de detalhes da solicitação de mesclagem e listar os resultados retornados da solicitação para comparação detalhada. Finalmente encontrei o problema.

{
	"status_code": 200,
	"message": {
		"id": 9652,
		"iid": 4,
		"project_id": 876,
		"title": "333",
		"state": "opened",
		"created_at": "2023-07-20T17:51:55.941+08:00",
		"updated_at": "2023-07-20T17:51:55.941+08:00",
		"target_branch": "master",
		"source_branch": "branch002",
		"user_notes_count": 0,
		"upvotes": 0,
		"downvotes": 0,
		"author": {
			"id": 438,
			"username": "ext.qinghua.wu2",
			"name": "EXT Wu Qinghua(吴庆华)(UAES-XE/GST)",
			"state": "active",
			"avatar_url": "https://www.gravatar.com/avatar/4055081926d7684b91ec5a9fb8a439df?s=80&d=identicon",
			"web_url": "http://xe-git.uaes.com/ext.qinghua.wu2"
		},
		"assignees": [],
		"reviewers": [],
		"source_project_id": 876,
		"target_project_id": 876,
		"labels": [],
		"draft": false,
		"work_in_progress": false,
		"merge_when_pipeline_succeeds": false,
		"merge_status": "checking",
		"sha": "a52845acb2f4ed504a3d3f193db7769b1b322ac8",
		"reference": "!4",
		"references": {
			"short": "!4",
			"relative": "!4",
			"full": "test_community/lvjing0720Test03!4"
		},
		"web_url": "http://xe-git.uaes.com/test_community/lvjing0720Test03/-/merge_requests/4",
		"time_stats": {
			"time_estimate": 0,
			"total_time_spent": 0
		},
		"squash": false,
		"task_completion_status": {
			"count": 0,
			"completed_count": 0
		},
		"has_conflicts": false,
		"blocking_discussions_resolved": true,
		"subscribed": true,
		"changes_count": "1",
		"diff_refs": {
			"base_sha": "9ef8d915c2d20fdb7b0d06f0d1fe43c95445e13b",
			"head_sha": "a52845acb2f4ed504a3d3f193db7769b1b322ac8",
			"start_sha": "fccc7616173917873b254b2bd072d89839994acb"
		},
		"first_contribution": false,
		"user": {
			"can_merge": true
		}
	}
}

Você pode ver que há um campo chamado merge_status nos resultados retornados acima, e o valor está verificando, o que significa que o gitlab está verificando se o código tem conflitos, etc., e se pode ser mesclado. Olhando para merge_status no momento, vejo três situações, a saber, not_be_merged, verificação e can_be_merged. Somente no caso de can_be_merged a interface de chamada pode ser mesclada corretamente, caso contrário, um erro 406 branch não pode ser mesclado ou outros erros serão relatados.

Link de referência relacionado: https://gitlab.com/gitlab-org/gitlab/-/issues/196962

Acho que você gosta

Origin blog.csdn.net/weixin_44388689/article/details/131839008
Recomendado
Clasificación