import requests from urllib.parse import urljoin DEVOPS_SCOPE = "https://app.vssps.visualstudio.com/.default" DEVOPS_API_VERSION = "7.1" class Client: def __init__(self, org_url: str, token: str, api_version: str = DEVOPS_API_VERSION): self._org_url = org_url self._token = token self._api_version = api_version def get(self, url: str, params: dict = {}): p = { "api-version": self._api_version, **params } r = requests.get(url=urljoin(self._org_url, url), params=p, headers={ "Authorization": f"Bearer {self._token}" }) return r def get_projects(self): r = self.get("_apis/projects") r.raise_for_status() return r.json()