microsoft / microsoft/azure-devops-python-api

AttributeError: 'dict' object has no attribute 'version_type' when trying to use git_client.get_commits search_criteria

オープン
#526 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Python
スター
684
フォーク
218
平均マージ
8日 10時間
マージ済み PR(30日)
1

説明

When trying to get all the commits on a branch I get an attribute error.

Code:
from azure.devops.connection import Connection
from azure.devops.v7_0.git import GitClient
from azure.devops.v7_0.git.models import GitQueryCommitsCriteria
from msrest.authentication import BasicAuthentication

cm_search_criteria = GitQueryCommitsCriteria(
item_version={"version": branch_name,"versionType": 'branch'}
)

        print (f"search critera")
        print (cm_search_criteria)
        print (f"search critera")
        
        commits = git_client.get_commits(
            repo_name,
            project=project_name,
            search_criteria=cm_search_criteria
        )    

Results:
Traceback (most recent call last):
File "C:\PythonWork\Tool Connectivity\ADO_ALL_REPOS_BRANCHES_COMMITS.py", line 66, in
commits = git_client.get_commits(
repo_name,
project=project_name,
search_criteria=cm_search_criteria
)
File "C:\Users\tmoran\AppData\Local\Programs\Python\Python313\Lib\site-packages\azure\devops\v7_0\git\git_client_base.py", line 361, in get_commits
if search_criteria.item_version.version_type is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'version_type'

I cannot see anything wrong with the code, but it is throwing an error, does any one see an error?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

azure/devops/v7_0/git/git_client_base.py の361行目付近と、get_commits が使用する GitQueryCommitsCriteria モデルから始めます。想定される item_version モデルの形状と、例で提供されている辞書を比較します。完了条件は、AttributeError を発生させずにブランチ条件を get_commits に渡せ、コミットクエリが完了することです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
azure, python
領域
api, devops
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。