#azure #authentication #azure-devops #oauth-2.0 #puppeteer
Вопрос:
У меня есть задача автоматизировать процесс сохранения рабочих элементов Azure DevOps в виде PDF-документов. После некоторых исследований Кукловод кажется лучшим вариантом. Проверил несколько руководств, написал немного кода:
const puppeteer = require ('puppeteer')
describe('My first puppeteer test', () => {
it('Should launch the browser', async function()
{
// create basic auth info here
const user = 'someUser'
const pwd = 'hisPassword'
const url = 'https://dev.azure.com/projectName/_workitems/edit/12345/'
const headers = new Map();
headers.set(
'Authorization',
`Bearer SomeTokenValueHere`
);
const browser = await puppeteer.launch({headless: true})
const page = await browser.newPage()
await page.setExtraHTTPHeaders(headers);
await page.goto(url)
//await page.authenticate({username:user, password:pwd});
await page.waitForTimeout(15000)
await page.pdf({path: 'page.pdf', format: 'A3'})
await browser.close()
})
})
Хотя документ, который я вижу, всегда находится на странице входа. Как вы также можете видеть, я попробовал page.authenticate() с пользователем службы, у которого не включен MFA, — не работает.
Как я знаю, вы можете проходить аутентификацию только с помощью инструментов автоматизации против Azure DevOps с использованием oauth2, но я не нашел никакой документации об использовании oauth2 на официальном сайте. Подход, который я использую с заголовками, был найден где-то во время поиска в Google…