Токен личного доступа Azure DevOpsPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Токен личного доступа Azure DevOps

Сообщение Anonymous »

У меня есть PAT и пример кода для запуска проектов в моей организации. Однако когда я пытаюсь использовать команду GET для чтения рабочего элемента, я получаю ответ 203. Большая часть моих поисков в Google привела к трем решениям, ни одно из которых не принесло мне успеха. Один упоминает редактирование моего PAT с использованием base64 и :. Второй говорит, что нужно использовать библиотеку Python oauth2. Третье решение — это код ниже.

Код: Выделить всё

PE_DEVOPS_NAME = "DevOpsArea"

# Fill in with your personal access token and org URL
personal_access_token = ':XXXX'
organization_url = 'https://dev.azure.com/organization/'

post_url = organization_url + PE_DEVOPS_NAME + "/_apis/wit/workitems/$task?api-version=6.0"
get_url = organization_url + PE_DEVOPS_NAME + "/_apis/wit/workitems/60814?api-version=6.0"

# Create a connection to the org
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

# Get a client (the "core" client provides access to projects, teams, etc)
core_client = connection.clients.get_core_client()

# Get the first page of projects
get_projects_response = core_client.get_projects()

for project in get_projects_response.value:
if project.name == PE_DEVOPS_NAME:
print(project.name)

response = requests.get(get_url)
print(get_url)
print(response.json)
Может быть, я что-то упустил в приведенном выше коде, из-за чего мой PAT не будет работать?
Я продолжал искать и нашел следующий код:

Код: Выделить всё

username = ''
personal_access_token = 'XXXX'
login_info = username + ":" + personal_access_token
b64 = base64.b64encode(login_info.encode()).decode()
headers = {"Authorization" : "Basic %s" % b64}

organization_url = 'https://dev.azure.com/organization/'

post_url = organization_url + PE_DEVOPS_NAME + "/_apis/wit/workitems/$task?api-version=6.0"
get_url = organization_url + PE_DEVOPS_NAME + "/_apis/wit/workitems/60814?api-version=6.0"

response = requests.get(get_url, headers=headers)
print(response.json())
Этот код работает для моей команды GET. Я протестирую с помощью POST. Может ли кто-нибудь объяснить, почему это работает, а библиотека Azure Python — нет?

Подробнее здесь: https://stackoverflow.com/questions/692 ... cess-token
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»