본문 바로가기
DEBUG/Cloud

Visual Studio Team Services에서 REST API 사용하기

by 에디83 2017. 2. 9.

Visual Studio Team Services를 이용하여 C# Build를 구성하였다.


특별히 설정한 부분은 없었고 Repository에 commit된 Sources를 잘 가져다가 build 하고 artifact 까지 별다른 설정 없이 처리가 가능했다.



만들어진 artifact를 AzureBlob File Copy하면서 설정이 필요하였지만 이 이야기는 다음에 하고 

오늘은 REST API를 이용하여 Build Detail Info를 가져오는 방법에 대해서 이야기 해보겠다.


https://www.visualstudio.com/en-us/docs/integrate/api/overview


위에 있는 사이트를 보면 rest api spec에 대해 자세히 나와있다.

Get a list of builds

GET https://{instance}/DefaultCollection/{project}/_apis/build/builds?api-version={version}[&definitions={string}][&queues={string}][&buildNumber={string}][&type={string}][&minFinishTime={DateTime}][&maxFinishTime={DateTime}][&requestedFor={string}][&reasonFilter={string}][&statusFilter={string}][&tagFilters={string}][&propertyFilters={string}][&$top={int}][&continuationToken={string}]


요약하면 위와 같은 query string을 사용할 수 있고 아래와 같이 사용하면 build에 대한 자세한 정보를 알 수 있다.


GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/Fabrikam-Fiber-Git/_apis/build/builds/391?api-version=2.0


하지만 REST API를 호출 할때 Header에 Auth 정보를 같이 넣어서 보내야 정상적인 결과를 받아 올수 있다.


그냥 호출하게 되면 아래와 같이 203 status를 받게 된다.



아래 링크를 보게 되면 header에 auth정보를 넣어야 한다고 나와있다.


https://www.visualstudio.com/en-us/docs/integrate/get-started/rest/basics



그럼 어떻게 만들 것인가?


username:personalaccesstoken 을 가지고 BASE64 Convert 하여

Header에 Authorization 을 key로 하여 value에 Convert된 BASE64 value를 넣어 보내면 된다.


Personal access token은 자기 계정의 Security메뉴에서 만들 수 있다.


Add 버튼을 눌러서 Token을 만들자.

이때 생성되는 Token은 최초 한번만 확인을 할 수 있으니 잘 복사해서 사용을 하자


그리고 인코딩해야 하는데


https://www.base64encode.org/


위 사이트를 이용하면 BASE64로 인코딩 할 수 있다. 


변환된 값을 가지고 아래와 같이 Header에 넣으면 정상적으로 호출이 가능해진다.


Authorization: Basic BASE64PATSTRING



https://{team}.visualstudio.com/DefaultCollection/{project}/_apis/build/builds?$top=1


위에 있는 REST API를 호출하게 되면 현재 build 목록중에 가장 상단에 있는 build를 가지고 오게 된다.

(가장 최신 build 정보를 가져오게 된다.)


좀더 자세한 REST API 호출 Spec은 아래를 참고하자.


https://www.visualstudio.com/en-us/docs/integrate/api/overview



'DEBUG > Cloud' 카테고리의 다른 글

Amazon API Gateway에서 Request Path를 사용한 REST API 만들기  (0) 2017.01.19

댓글