Azure DevOps에서 파일의 원시 콘텐츠에 대한 링크를 가질 수 있습니까?
GitHub에서 파일의 원시 콘텐츠에 대한 링크를 생성할 수 있습니다. VSTS/DevOps를 사용할 수 있습니까?
기존 답변을 읽고도 이 부분에 대해서는 조금 어려움을 겪었기 때문에 좀 더 철저한 답변을 남기고 싶었습니다.
다른 사람들이 말했듯이 패턴은 다음과 같습니다(쿼리를 읽기 쉽도록 별도의 줄로 분할).
https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/{{providerName}}/filecontents
?repository={{repository}}
&path={{path}}
&commitOrBranch={{commitOrBranch}}
&api-version=5.0-preview.1
그러나 이러한 변수의 값을 어떻게 찾을 수 있습니까?Azure DevOps에 들어가서 왼쪽 탐색에서 Repos > Files를 선택하고 특정 파일을 선택하면 현재 URL은 다음과 같습니다.
https://dev.azure.com/{{organization}}/{{project}}/_git/{{repository}}?path=%2Fpackage.json
이러한 값은 조직, 프로젝트 및 리포지토리에 사용해야 합니다.경로의 경우 HTTP 인코딩 버전의 유닉스 파일 경로를 볼 수 있습니다. %2F
는 HTTP 의입니딩의 HTTP 입니다./
그래서 그 길은 사실 그냥./package.json
(포스트맨과 같은 도구가 당신을 위해 그 인코딩을 해줄 것입니다.)
설명적입니다. 이 아니면 커밋또분매자다니합명우합다니를 . 값이원야를 사용해야 합니다.master
저는 위의 URL에 있는 api 버전을 "하드 코딩"했습니다. 왜냐하면 그것이 현재 문서가 가리키는 것이기 때문입니다.
는 마막변다같습니다과음이 필요합니다.providerName
말해서, 간히말서, 당은아도를 해야 할 것입니다.TfsGit
소스 공급자 목록을 살펴보고 값이 다음과 같은 공급자를 찾음으로써 이 값을 얻었습니다.true
위해서supportedCapabilities.queryFileContents
.
그러나 이 URL을 요청하기만 하면 인증이 필요하므로 "203 비권한 정보"라는 응답이 반환됩니다.동일한 문서를 다시 참조하면, 사용자 이름에 대한 값과 비밀번호에 대한 개인 액세스 토큰을 포함한 기본 인증을 사용하도록 되어 있습니다.다음 위치에서 개인 액세스 토큰을 만들 수 있습니다.https://dev.azure.com/{{organization}}/_usersSettings/tokens
토큰 관리 - 읽기 및 관리 권한이 있는지 확인합니다.
만약 여러분이 이런 종류의 것에 익숙하지 않다면, 다시 말하지만, 포스트맨은 여러분이 코드를 입력하기 전에 이러한 요청을 실행하는 데 매우 도움이 됩니다.
그래서 만약 당신이 저장소에src
루트에 있는 디렉터리, 그리고 당신은 파일 내용을 얻으려고 합니다.src/package.json
URL은 다음과 같아야 합니다.
https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/TfsGit/filecontents?repository={{repository}}&commitOrBranch=master&api-version={{api-version}}&path=src%2Fpackage.json
그리고 기본 저자를 잊지 마세요!
물론입니다. 다음은 휴식 시간입니다.
GET https://feeds.dev.azure.com/{organization}/_apis/packaging/Feeds/{feedId}/packages/{packageId}?includeAllVersions={includeAllVersions}&includeUrls={includeUrls}&isListed={isListed}&isRelease={isRelease}&includeDeleted={includeDeleted}&includeDescription={includeDescription}&api-version=5.0-preview.1
크롬을 사용하여 원시 URL을 얻을 수 있습니다.
개발자 도구를 켜고 네트워크 탭을 봅니다.
DevOps 포털(콘텐츠 패널)에서 필요한 파일을 확인합니다.컨텐츠 보기가 표시되면 네트워크 탭을 다시 확인하고 "항목?"으로 시작하는 URL을 찾습니다.경로", 필요한 "url:" 요소를 포함하는 json 응답입니다.
저는 이 URL을 사용하여 파일의 원시 내용을 얻을 수 있었습니다.
GET https://dev.azure.com/ {organization}/{project}/_apis/sourceProvidersName}/{providerName}/파일 내용?serviceEndpointId={serviceEndpointId}&repository={repository}&commitOrBranch={commOrBranch}&path={path}&api-version=5.0 미리보기1.1.
이거 여기서 가져왔어요.
대부분의 답변은 이 문제를 잘 해결하지만 익명 액세스가 가능한 공개 보고서의 맥락에서 api는 다릅니다.다음은 이러한 시나리오에서 작동하는 방법입니다.
https://dev.azure.com/{{your_user_name}}/{{project_name}}/_apis/git/repositories/{{repo_name_encoded}}/items?scopePath={{path_to_your_file}}&api-version=6.0
이것은 Github에서 제공하는 "raw" url과 정확히 일치합니다.
첨부 파일 창에서 파일 이름을 끌어 다른 MS 응용 프로그램에 떨어뜨려 원시 URL 또는 연결된 파일 이름을 가져옵니다.
검색 중인 특정 파일의 원시 URL을 빨리 가져오려면 다음과 같은 방법이 유용할 수 있습니다.
- "Undisposition"이라는 이름의 브라우저 확장을 설치합니다.
- 도트 메뉴(오른쪽 위)에서 "다운로드"를 선택합니다. 파일은 URL을 복사할 수 있는 새 브라우저 탭에서 열립니다.
(edit: 안타깝게도 브라우저가 여는 방법을 알고 있는 파일 형식에서만 작동합니다. 그렇지 않으면 다운로드를 계속 제공합니다...)
저는 이것에 대해 상당히 생소하며 Azure DevOps Repo의 원시 파일에 액세스하는 데 문제가 있었습니다.Github에서는 간단합니다.
컬을 사용하여 CMD와 BASH의 파일을 다운로드하고 싶었습니다.먼저 브라우저에서 파일 내용을 찾아 굵은 부분을 메모합니다. https://dev.azure.com/**myOrg**/_git/**myProjectName**?path=%2F**MyFileName.ps1**
그런 다음 위에 @Zach가 올린 것과 유사한 URL을 구성했습니다.
이제 위의 URL을 브라우저에 붙여넣으면 GitHub와 유사한 RAW 형태로 콘텐츠가 표시됩니다.차이점은 My Azure DevOps 계정에서 PAT(개인 액세스 토큰)를 설정한 다음 아래의 DOS/BASH 예제에서 URL을 인증해야 한다는 것입니다.
curl -u "<username>:<password>" "https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository=myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2FMyFileName.ps1" -# -L -o MyFileName.ps1
언급URL : https://stackoverflow.com/questions/54137998/is-it-possible-to-have-a-link-to-raw-content-of-file-in-azure-devops
'programing' 카테고리의 다른 글
SQL 다중 열 순서 지정 (0) | 2023.05.03 |
---|---|
postgresql COUNT(DISTINCT...) 매우 느림 (0) | 2023.05.03 |
디렉토리의 모든 파일 이름을 $filename_h에서 $filename_half로 변경하시겠습니까? (0) | 2023.05.03 |
각 모델에 중첩된 MVC 레이저 뷰 (0) | 2023.05.03 |
"ExtensionlessUrlHandler-Integrated-4.0" 처리기의 모듈 목록에 잘못된 모듈 "ManagedPipelineHandler"가 있음 (0) | 2023.05.03 |