为什么缺少一个字段?
Why is a field missing?
有一个 Python 脚本应该设置清理 Docker 个图像的策略
headers = {"PRIVATE-TOKEN": TOKEN}
data_binary = {
"container_expiration_policy_attributes": {
"cadence": "1month",
"enabled": "true",
"keep_n": "1",
"older_than": "14d",
"name_regex": "",
"name_regex_delete": ".*",
"name_regex_keep": ".*-master"
}
}
url = f"https://hidden/api/v4/projects/{str(project_id)}"
r = requests.put(url, headers=headers, data=json.dumps(data_binary))
json_data = r.json()
pprint.pprint(json_data)
它returns启动时出错
{'error': 'allow_merge_on_skipped_pipeline, autoclose_referenced_issues, '
'auto_devops_enabled, auto_devops_deploy_strategy, '
'auto_cancel_pending_pipelines, build_coverage_regex, '
'build_git_strategy, build_timeout, builds_access_level, '
'ci_config_path, ci_default_git_depth, '
'ci_forward_deployment_enabled, container_registry_enabled, '
'container_expiration_policy_attributes, default_branch, '
'description, emails_disabled, forking_access_level, '
'issues_access_level, lfs_enabled, merge_requests_access_level, '
'merge_method, name, '
'only_allow_merge_if_all_discussions_are_resolved, '
'only_allow_merge_if_pipeline_succeeds, pages_access_level, path, '
'printing_merge_request_link_enabled, public_builds, '
'remove_source_branch_after_merge, repository_access_level, '
'request_access_enabled, resolve_outdated_diff_discussions, '
'shared_runners_enabled, snippets_access_level, tag_list, '
'visibility, wiki_access_level, avatar, suggestion_commit_message, '
'repository_storage, compliance_framework_setting, packages_enabled, '
'service_desk_enabled, issues_enabled, jobs_enabled, '
'merge_requests_enabled, wiki_enabled, snippets_enabled, '
'approvals_before_merge, '
'external_authorization_classification_label, import_url, '
'fallback_approvals_required are missing, at least one parameter '
'must be provided'}
据我了解,关键如下
...container_expiration_policy_attributes... are missing
虽然我指出了这个领域。有什么问题?
解决方法是添加Content-type
headers = {"PRIVATE-TOKEN": TOKEN,
"Content-type": "application/json;charset=UTF-8"}
有一个 Python 脚本应该设置清理 Docker 个图像的策略
headers = {"PRIVATE-TOKEN": TOKEN}
data_binary = {
"container_expiration_policy_attributes": {
"cadence": "1month",
"enabled": "true",
"keep_n": "1",
"older_than": "14d",
"name_regex": "",
"name_regex_delete": ".*",
"name_regex_keep": ".*-master"
}
}
url = f"https://hidden/api/v4/projects/{str(project_id)}"
r = requests.put(url, headers=headers, data=json.dumps(data_binary))
json_data = r.json()
pprint.pprint(json_data)
它returns启动时出错
{'error': 'allow_merge_on_skipped_pipeline, autoclose_referenced_issues, '
'auto_devops_enabled, auto_devops_deploy_strategy, '
'auto_cancel_pending_pipelines, build_coverage_regex, '
'build_git_strategy, build_timeout, builds_access_level, '
'ci_config_path, ci_default_git_depth, '
'ci_forward_deployment_enabled, container_registry_enabled, '
'container_expiration_policy_attributes, default_branch, '
'description, emails_disabled, forking_access_level, '
'issues_access_level, lfs_enabled, merge_requests_access_level, '
'merge_method, name, '
'only_allow_merge_if_all_discussions_are_resolved, '
'only_allow_merge_if_pipeline_succeeds, pages_access_level, path, '
'printing_merge_request_link_enabled, public_builds, '
'remove_source_branch_after_merge, repository_access_level, '
'request_access_enabled, resolve_outdated_diff_discussions, '
'shared_runners_enabled, snippets_access_level, tag_list, '
'visibility, wiki_access_level, avatar, suggestion_commit_message, '
'repository_storage, compliance_framework_setting, packages_enabled, '
'service_desk_enabled, issues_enabled, jobs_enabled, '
'merge_requests_enabled, wiki_enabled, snippets_enabled, '
'approvals_before_merge, '
'external_authorization_classification_label, import_url, '
'fallback_approvals_required are missing, at least one parameter '
'must be provided'}
据我了解,关键如下
...container_expiration_policy_attributes... are missing
虽然我指出了这个领域。有什么问题?
解决方法是添加Content-type
headers = {"PRIVATE-TOKEN": TOKEN,
"Content-type": "application/json;charset=UTF-8"}