27 lines
		
	
	
		
			762 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			762 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 |