Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
사용자가 프로비전된(프로젝트) 또는 게시된(코드) wiki를 실수로 삭제한 경우 복원할 수 있습니다. UI에는 위키를 삭제하는 옵션이 없지만 사용자는 REST API를 사용하여 위키와 연결된 Git 리포지토리를 삭제할 수 있습니다.
메모
삭제된 리포지토리는 30일 동안 휴지통에 남아 있으며, 그 후에는 영구적으로 삭제되며 복원할 수 없습니다.
필수 구성 요소
| 범주 | 요구 사항 |
|---|---|
| 프로젝트 액세스 | 위키가 있는 프로젝트의 구성원입니다. 액세스 권한이 없는 경우 프로젝트 관리자에게 요청합니다. 팀 프로젝트에 액세스할 수 있는 모든 사용자는 이해 관계자를 포함하여 위키를 볼 수 있습니다. |
| 사용 권한 | - 위키 페이지를 추가하거나 편집하려면: 기여자 그룹의 구성원입니다. - 코드를 wiki로 게시하려면 리포지토리 권한을 만듭니다. 기본적으로 이 권한은 프로젝트 관리자 그룹멤버에 대해 설정됩니다. |
| 액세스 수준 | 적어도 기본 액세스. |
전체 위키 복원
프로젝트와 코드 모두 Wiki는 Azure DevOps의 프로젝트에 리포지토리로 저장됩니다. REST API를 사용하여 전체 wiki를 복원하려면 다음 단계를 완료합니다.
git 리포지토리 가져오기: 리포지토리 목록 보기.
includeHidden=true매개 변수를 사용하여 위키 리포지토리를 확인합니다.GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories?includeHidden=true&api-version=7.1-preview.1{ "id": "978e3886-64a8-4b6f-96da-6afc2936b04b", "name": "fabrikamfiber.wiki", "url": https://dev.azure.com/christiechurch/052a83ac-af70-4194-b53f-df073e5f1786/_apis/git/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b, "project": { "id": "052a83ac-af70-4194-b53f-df073e5f1786", "name": "fabrikamfiber", "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786, "state": "wellFormed", "revision": 421800049, "visibility": "organization", "lastUpdateTime": "2023-07-18T12:25:29.3Z" }, "defaultBranch": "refs/heads/wikiMaster", "size": 193, "remoteUrl": https://christiechurch@dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki, "sshUrl": git@ssh.dev.azure.com:v3/christiechurch/fabrikamfiber/fabrikamfiber.wiki, "webUrl": https://dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki, "isDisabled": false, "isInMaintenance": false }리포지토리에 대한 휴지통 검색합니다.
GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories?api-version=7.1-preview.1보통
.wiki이라고 이름이 붙여진 리포지토리를 찾으면, 리포지토리 ID를 적어두세요.{ "value": [ { "id": "978e3886-64a8-4b6f-96da-6afc2936b04b", "name": "fabrikamfiber.wiki", "project": { "id": "052a83ac-af70-4194-b53f-df073e5f1786", "name": "fabrikamfiber", "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786, "state": "wellFormed", "revision": 421800049, "visibility": "organization", "lastUpdateTime": "2023-07-18T12:25:29.3Z" }, "deletedBy": { "displayName": "Christie Church", "url": https://spsprodeus23.vssps.visualstudio.com/A1df9d653-bdfb-459b-a0c7-725052b2f944/_apis/Identities/0a0a4b55-9671-440d-87bf-26644f200d8a, "_links": { "avatar": { "href": https://dev.azure.com/christiechurch/_apis/GraphProfile/MemberAvatars/aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh } }, "id": "0a0a4b55-9671-440d-87bf-26644f200d8a", "uniqueName": christiechurch@fabrikam.com, "imageUrl": https://dev.azure.com/christiechurch/_api/_common/identityImage?id=0a0a4b55-9671-440d-87bf-26644f200d8a, "descriptor": "aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh" }, "createdDate": "2023-07-18T12:23:55.64Z", "deletedDate": "2023-07-18T12:41:38.737Z" } ], "count": 1 }-
PATCH https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b?api-version=7.1-preview.1{ "deleted": false }
리포지토리 콘텐츠가 복원됩니다. 위키 UI가 자동으로 다시 나타나지 않으면 복원된 리포지토리를 wiki로 게시하거나 Wiki REST API를 통해 위키를 만들어 프로젝트에 다시 등록합니다.
위키 페이지 복원
리포지토리의 URL로 이동합니다.
https://dev.azure.com/<OrgName>/<ProjectName>/_git/classicreleaseoption.wiki.메인 브랜치
wikiMain의 기록을 검색합니다.삭제된 파일이 있는 커밋을 찾아 선택합니다.
추가 작업을 선택한 다음 되돌리기.끌어오기 요청을 만들고 완료합니다.
위키 페이지가 복원됩니다.
CLI를 사용하여 위키 페이지 복원
명령줄 옵션을 선호하는 경우 다음 단계를 수행합니다.
- 위키를 로컬 컴퓨터에 복제합니다.
- 페이지를 삭제한 커밋을 찾아보세요.
- 커밋을 확인합니다.
- 페이지를 복사하여 새 커밋을 만듭니다.
위키 페이지가 복원됩니다.
리포지토리 삭제
DELETE https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories/052a83ac-af70-4194-b53f-df073e5f1786?api-version=7.1-preview.1
복원된 위키 다시 연결
휴지통 복원은 Git 리포지토리(위키 페이지 및 기록)를 복구하지만 UI에서 위키 등록 또는 파일 이름 연결을 항상 다시 만들지는 않습니다.
리포지토리를 복원한 후 위키가 표시되지 않으면 다음 두 가지 옵션이 있습니다.
옵션 1: UI를 통해 다시 게시
- 프로젝트에서 Wiki 개요>로 이동합니다.
- 위키가 표시되지 않으면 코드를 위키로 게시를 선택합니다.
- 복원된 리포지토리 및 분기(일반적으로
wikiMaster)를 선택합니다. - 필요한 경우 위키 이름 및 폴더 경로를 제공합니다.
- 게시를 선택합니다.
자세한 단계는 Wiki에 Git 리포지토리 게시를 참조하세요.
옵션 2: REST API를 사용하여 Wiki 등록 다시 만들기
Wikis를 사용하여 새 Wiki 만들기 - REST API 만들기 :
POST https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis?api-version=7.1-preview.2요청 본문:
{ "type": "codeWiki", "name": "Fabrikam Fiber Wiki", "projectId": "052a83ac-af70-4194-b53f-df073e5f1786", "repositoryId": "978e3886-64a8-4b6f-96da-6afc2936b04b", "mappedPath": "/", "version": { "version": "wikiMaster" } }다음 값을 바꿉니다.
-
{organization}: Azure DevOps 조직 이름 -
{project}: 프로젝트 이름 또는 ID -
name: 위키의 표시 이름 -
projectId: 2단계의 프로젝트 ID -
repositoryId: 2단계의 리포지토리 ID -
mappedPath: 루트 폴더 경로(일반적으로/) -
version: 분기 이름(일반적으로wikiMaster)
-
위키 등록을 확인하십시오Wikis - List REST API를 사용하여 위키를 나열하여:
GET https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis?api-version=7.1-preview.2
복원 후 확인
두 옵션 중 하나를 사용한 후:
- 프로젝트의 Repos 섹션에 리포지토리 및 분기가 있는지 확인합니다.
- 위키 개요 아래>의 프로젝트에위키가 표시되는지 확인합니다.
- 이전 위키를 참조한 권한, 링크 및 위젯을 확인합니다.
메모
- 휴지통 및 일부 wiki 등록 API는 미리 보기이며 비프로덕션 조직에서 테스트하고 사용자 환경에 대해 문서화된 api 버전을 사용하여 변경할 수 있습니다.
- 프로젝트 위키(프로비전된 wiki)에서는 REST API 호출에서
type: "projectWiki"를 사용하고,"codeWiki"대신repositoryId및mappedPath속성을 생략합니다.