microsoft / microsoft/azure-devops-python-api
append_log_content returns HTTP 400 (Content-Length not set)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 684
- Forks
- 218
- Avg merge
- 8d 10h
- Merged PRs (30d)
- 1
Description
When using append_log_content, it returns HTTP 400 status code, and '{"count":55,"value":"ContentLength header must be specified to create a log."}'
DevOps: Azure DevOps Server 2020 update 1.1
azure-devops-python-api: 6.0.0b4
I workaround it with an explicit Content-Length header:
def append_log_content(self, content, scope_identifier, hub_name, plan_id, log_id):
"""AppendLogContent.
:param bytes content: The content to be append
:param str scope_identifier: The project GUID to scope the request
:param str hub_name: The name of the server hub: "build" for the Build server or "rm" for the Release Management server
:param str plan_id:
:param int log_id:
:rtype: :class:`<TaskLog> <azure.devops.v5_1.task.models.TaskLog>`
"""
route_values = {}
if scope_identifier is not None:
route_values['scopeIdentifier'] = self._serialize.url('scope_identifier', scope_identifier, 'str')
if hub_name is not None:
route_values['hubName'] = self._serialize.url('hub_name', hub_name, 'str')
if plan_id is not None:
route_values['planId'] = self._serialize.url('plan_id', plan_id, 'str')
if log_id is not None:
route_values['logId'] = self._serialize.url('log_id', log_id, 'int')
response = self._send(http_method='POST',
location_id='46f5667d-263a-4684-91b1-dff7fdcf64e2',
version='5.1',
route_values=route_values,
content=content,
media_type='application/octet-stream',
additional_headers={"Content-Length": len(content)})
return self._deserialize('TaskLog', response)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the append_log_content entry point shown in the issue and inspect how its _send call constructs headers for application/octet-stream content. Reproduce the Azure DevOps Server 2020 request, then verify that the request includes Content-Length and no longer returns HTTP 400.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100