问题描述
有一个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)
启动时返回错误
{'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
尽管我指出了这个领域。有什么问题吗?
解决方法
解决方案是添加内容类型
headers = {"PRIVATE-TOKEN": TOKEN,"Content-type": "application/json;charset=UTF-8"}