microsoft / microsoft/azure-devops-python-api

git_client.create_repository() Failing with msrest.exceptions.SerializationError

Open
#479 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
684
Forks
218
Avg merge
8d 10h
Merged PRs (30d)
1

Description

I am trying to create a git repository using the azure devops python module.

Here is the script I am using

personal_access_token = 'xxxxxxxxxxxxxxxxxx'
org_url = 'https://dev.azure.com/xxxxxxxxxxxxxxxxxxxxs'
project_name = 'testProject'

credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=org_url, creds=credentials)

git_client = connection.clients.get_git_client()

git_client.create_repository("repotest", project=project_name, source_ref=None)

The create_repository command is failing with the following error:

Traceback (most recent call last):
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1428, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1193, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1222, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
           ^^^^^^^^
AttributeError: 'str' object has no attribute 'get'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 620, in body
    data = deserializer._deserialize(data_type, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1446, in _deserialize
    raise_with_traceback(DeserializationError, msg, err)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\exceptions.py", line 51, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1428, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1193, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1222, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
           ^^^^^^^^
msrest.exceptions.DeserializationError: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\test.py", line 47, in <module>
    git_client.create_repository("infratest", project=project_name, source_ref=None)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\azure\devops\v7_0\git\git_client_base.py", line 2986, in create_repository
    content = self._serialize.body(git_repository_to_create, 'GitRepositoryCreateOptions')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 622, in body
    raise_with_traceback(
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\exceptions.py", line 51, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 620, in body
    data = deserializer._deserialize(data_type, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1446, in _deserialize
    raise_with_traceback(DeserializationError, msg, err)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\exceptions.py", line 51, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1428, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1193, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\<user>\Documents\PycharmProjects\projectCreation\venv\Lib\site-packages\msrest\serialization.py", line 1222, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
           ^^^^^^^^
msrest.exceptions.SerializationError: Unable to build a model: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get', DeserializationError: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get'

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the provided script and inspect the create_repository entry point in azure/devops/v7_0/git/git_client_base.py around line 2986, then trace the model serialization failure through msrest/serialization.py. Done means the same repository-creation call completes without the reported SerializationError; no test file is identified in the issue.

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
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.