기여 및 멤버십 재배정
GitLab v19.4Offering: GitLab.com
요약
최상위 그룹의 Owner 권한이 있는 사용자는 플레이스홀더 사용자의 기여와 멤버십을 기존의 활성 상태인 비봇 사용자에게 재배정할 수 있습니다. GitLab Self-Managed와 GitLab Dedicated에서는 관리자가 사용자 확인 없이 활성 및 비활성 비봇 사용자에게 기여와 멤버십을 즉시 재배정할 수 있습니다.
최상위 그룹의 Owner 권한이 있는 사용자는 플레이스홀더 사용자의 기여와 멤버십을 기존의 활성 상태인 비봇 사용자에게 재배정할 수 있습니다. 대상 인스턴스에서 최상위 그룹의 Owner 권한이 있는 사용자는 다음을 수행할 수 있습니다.
- 기여와 멤버십의 재배정을 검토하도록 UI에서 또는 CSV 파일로 사용자에게 요청합니다. 플레이스홀더 사용자가 많은 경우에는 CSV 파일을 사용합니다. 두 경우 모두 사용자는 재배정을 수락하거나 거부하라는 요청을 이메일로 받습니다. 재배정은 선택된 사용자가 재배정 요청을 수락한 뒤에만 시작됩니다.
- 기여와 멤버십을 재배정하지 않고 플레이스홀더 사용자에게 배정된 상태로 유지합니다.
GitLab Self-Managed와 GitLab Dedicated에서는 관리자가 사용자 확인 없이 활성 및 비활성 비봇 사용자에게 기여와 멤버십을 즉시 재배정할 수 있습니다. 자세한 내용은 관리자가 플레이스홀더 사용자를 재배정할 때 확인 건너뛰기를 참고합니다. 관리자에게 기여와 멤버십을 재배정하려면 관리자에 대한 기여 매핑 허용을 참고합니다.
플레이스홀더 사용자 재배정 시 확인 우회#
히스토리
- GitLab 18.1에서
group_owner_placeholder_confirmation_bypass라는 기능 플래그와 함께 GitLab.com에 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 18.4에서 GitLab.com에 활성화되었습니다.
- GitLab 18.7에서 GitLab.com에 일반 공급되었습니다.
group_owner_placeholder_confirmation_bypass기능 플래그가 제거되었습니다.
사전 요구 사항:
- 그룹에 대한 Owner 권한이 있어야 합니다.
플레이스홀더를 재배정할 때 엔터프라이즈 사용자에 대한 확인을 우회하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Permissions and group features를 확장합니다.
- Placeholder user confirmation에서 Reassign placeholders to enterprise users without user confirmation 체크박스를 선택합니다.
- When to restore user confirmation에서 사용자 확인 우회를 종료할 날짜를 선택합니다. 기본값은 1일입니다.
- Save changes를 선택합니다.
여러 플레이스홀더 사용자의 기여 재배정#
하나의 플레이스홀더 사용자에게 처음 배정된 모든 기여는 대상 인스턴스의 활성 일반 사용자, 서비스 계정, 프로젝트 봇, 그룹 봇 중 한 대상에게 재배정할 수 있습니다. 하나의 플레이스홀더 사용자에게 배정된 기여를 여러 사용자에게 나눌 수는 없습니다.
플레이스홀더 사용자가 다음 조건에 해당하면 여러 플레이스홀더 사용자의 기여를 대상 인스턴스의 같은 사용자에게 재배정할 수 있습니다.
- 서로 다른 소스 인스턴스에서 온 경우
- 같은 소스 인스턴스에서 왔지만 대상 인스턴스의 서로 다른 최상위 그룹으로 가져온 경우
배정된 사용자가 재배정 요청을 수락하기 전에 비활성 상태가 되면, 대기 중인 재배정은 해당 사용자가 수락할 때까지 그 사용자에게 연결된 상태로 남습니다.
재배정 요청을 받은 사용자는 다음을 수행할 수 있습니다.
- 요청을 수락합니다. 이전에 플레이스홀더 사용자에게 귀속되어 있던 모든 기여와 멤버십이 수락한 사용자에게 다시 귀속됩니다. 이 과정은 기여 수에 따라 몇 분이 걸릴 수 있습니다.
- 요청을 거부하거나 스팸으로 신고합니다. 이 방법은 재배정 요청 이메일에서 제공됩니다.
서비스 계정, 프로젝트 봇, 그룹 봇에 기여를 재배정하면 재배정 요청이 자동으로 승인됩니다.
같은 최상위 그룹으로 이후에 가져오기를 수행하면, 같은 소스 사용자에게 속한 기여와 멤버십은 그 소스 사용자에 대해 이전에 재배정을 수락한 사용자에게 자동으로 매핑됩니다.
GitLab Self-Managed와 GitLab Dedicated에서는 관리자가 사용자 확인 없이 활성 및 비활성 비봇 사용자에게 기여와 멤버십을 즉시 재배정할 수 있습니다. 자세한 내용은 관리자가 플레이스홀더 사용자를 재배정할 때 확인 건너뛰기를 참고합니다. 관리자에게 기여와 멤버십을 재배정하려면 관리자에 대한 기여 매핑 허용을 참고합니다.
재배정 완료#
다음 작업을 수행하기 전에 재배정 절차를 완전히 마쳐야 합니다.
- 가져온 그룹을 같은 GitLab 인스턴스 안에서 이동합니다.
- 가져온 프로젝트를 다른 그룹으로 이동합니다.
- 가져온 이슈를 복제합니다.
- 가져온 이슈를 에픽으로 승격합니다.
절차를 마치지 않으면 플레이스홀더 사용자에게 배정된 기여를 실제 사용자에게 재배정할 수 없고, 해당 기여는 플레이스홀더 사용자와 연결된 상태로 남습니다.
보안 고려 사항#
기여 및 멤버십 재배정은 되돌릴 수 없으므로 시작하기 전에 모든 내용을 꼼꼼히 확인합니다.
잘못된 사용자에게 기여와 멤버십을 재배정하면 해당 사용자가 그룹의 구성원이 되므로 보안 위협이 됩니다. 그 결과 볼 수 없어야 할 정보를 열람할 수 있습니다.
관리자 액세스 권한이 있는 사용자에게 기여를 재배정하는 기능은 기본적으로 비활성화되어 있으며, 필요하면 활성화할 수 있습니다.
멤버십 보안 고려 사항#
GitLab 권한 모델 때문에, 기존 상위 그룹으로 그룹이나 프로젝트를 가져오면 상위 그룹의 구성원에게 가져온 그룹 또는 프로젝트의 상속된 멤버십이 부여됩니다.
가져온 그룹이나 프로젝트에 이미 상속된 멤버십이 있는 사용자를 기여 및 멤버십 재배정 대상으로 선택하면, 해당 사용자에게 멤버십이 재배정되는 방식이 달라질 수 있습니다.
GitLab에서는 하위 프로젝트나 그룹의 멤버십 권한이 상속된 멤버십 권한보다 낮을 수 없습니다. 배정 대상 사용자의 가져온 멤버십 권한이 기존 상속된 멤버십 권한보다 낮으면, 가져온 멤버십은 해당 사용자에게 재배정되지 않습니다.
그 결과 가져온 그룹 또는 프로젝트에서의 멤버십 권한이 소스에서보다 높아집니다.
UI에서 재배정 요청#
사전 요구 사항:
- 그룹에 대한 Owner 권한이 있어야 합니다.
최상위 그룹에서 기여와 멤버십을 재배정할 수 있습니다. 기여와 멤버십의 재배정을 요청하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Awaiting reassignment 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- 각 플레이스홀더에 대해 Placeholder user와 Source 열의 정보를 검토합니다.
- Reassign placeholder to 열의 드롭다운 목록에서 사용자를 선택합니다.
- Reassign을 선택합니다.
대상 인스턴스의 활성 비봇 사용자 한 명에게는 플레이스홀더 사용자 한 명의 기여만 재배정할 수 있습니다.
사용자가 재배정을 수락하기 전이라면 요청을 취소할 수 있습니다.
GitLab Self-Managed와 GitLab Dedicated에서는 관리자가 사용자 확인 없이 활성 및 비활성 비봇 사용자에게 기여와 멤버십을 즉시 재배정할 수 있습니다. 자세한 내용은 관리자가 플레이스홀더 사용자를 재배정할 때 확인 건너뛰기를 참고합니다. 관리자에게 기여와 멤버십을 재배정하려면 관리자에 대한 기여 매핑 허용을 참고합니다.
CSV 파일을 사용한 재배정 요청#
히스토리
사전 요구 사항:
- 그룹에 대한 Owner 권한이 있어야 합니다.
플레이스홀더 사용자가 많은 경우에는 CSV 파일로 기여와 멤버십을 재배정하는 방법을 고려할 수 있습니다. 다음 정보가 미리 채워진 CSV 템플릿을 다운로드할 수 있습니다. 예를 들면 다음과 같습니다.
| Source host | Import type | Source user identifier | Source user name | Source username |
|---|---|---|---|---|
gitlab.example.com |
gitlab |
alice |
Alice Coder |
a.coder |
Source host, Import type, Source user identifier는 수정하지 않습니다. 이 정보는 작성한 CSV 파일을 업로드한 뒤 해당 데이터베이스 레코드를 찾는 데 사용됩니다. Source user name과 Source username은 소스 사용자를 식별하는 값이며 CSV 파일을 업로드한 뒤에는 사용되지 않습니다.
CSV 파일의 모든 행을 수정할 필요는 없습니다. GitLab username 또는 GitLab public email 이 입력된 행만 처리됩니다. 나머지 행은 모두 건너뜁니다.
CSV 파일로 기여와 멤버십의 재배정을 요청하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Reassign with CSV를 선택합니다.
- 미리 채워진 CSV 템플릿을 다운로드합니다.
- GitLab username 또는 GitLab public email에 대상 인스턴스에 있는 GitLab 사용자의 사용자명 또는 공개 이메일 주소를 입력합니다. 인스턴스 관리자는 확인된 이메일 주소를 가진 사용자라면 누구에게나 재배정할 수 있습니다.
- 작성한 CSV 파일을 업로드합니다.
- Reassign을 선택합니다.
대상 인스턴스의 활성 비봇 사용자 한 명에게는 플레이스홀더 사용자 한 명의 기여만 배정할 수 있습니다. 사용자는 재배정된 기여를 검토하고 수락할 수 있는 이메일을 받습니다. 사용자가 검토하기 전이라면 재배정 요청을 취소할 수 있습니다.
GitLab Self-Managed와 GitLab Dedicated에서는 관리자가 사용자 확인 없이 활성 및 비활성 비봇 사용자에게 기여와 멤버십을 즉시 재배정할 수 있습니다. 자세한 내용은 관리자가 플레이스홀더 사용자를 재배정할 때 확인 건너뛰기를 참고합니다. 관리자에게 기여와 멤버십을 재배정하려면 관리자에 대한 기여 매핑 허용을 참고합니다.
기여를 재배정하면 GitLab이 다음 항목의 건수를 담은 이메일을 보냅니다.
- 정상적으로 처리된 행
- 처리에 실패한 행
- 건너뛴 행
정상적으로 처리되지 않은 행이 있으면 이메일에 더 자세한 결과가 담긴 CSV 파일이 첨부됩니다.
UI를 사용하지 않고 플레이스홀더 사용자를 일괄 재배정하려면 그룹 플레이스홀더 재배정 API를 참고합니다.
플레이스홀더로 유지#
히스토리
- GitLab 18.5에서 이 작업을 되돌릴 수 있도록 변경되었습니다.
대상 인스턴스의 사용자에게 기여와 멤버십을 재배정하지 않아도 됩니다. 예를 들어 소스 인스턴스에서 기여한 퇴사자가 있지만 대상 인스턴스에는 그 사용자가 존재하지 않는 경우가 있습니다.
이런 경우 기여를 플레이스홀더 사용자에게 배정된 상태로 유지할 수 있습니다. 플레이스홀더 사용자는 프로젝트나 그룹의 구성원이 될 수 없으므로 멤버십 정보는 유지하지 않습니다.
플레이스홀더 사용자의 이름과 사용자명은 소스 사용자의 이름 및 사용자명과 비슷하므로, 이력상의 컨텍스트를 상당 부분 유지할 수 있습니다.
기여를 플레이스홀더 사용자에게 배정된 상태로 유지하는 작업은 하나씩 또는 일괄로 수행할 수 있습니다. 일괄로 재배정하면 네임스페이스 전체와 다음 재배정 상태에 있는 사용자가 영향을 받습니다.
Not startedRejected
플레이스홀더 사용자를 하나씩 유지하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Awaiting reassignment 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- Placeholder user와 Source 열을 확인해 유지할 플레이스홀더 사용자를 찾습니다.
- Reassign placeholder to 열에서 Do not reassign을 선택합니다.
- Confirm을 선택합니다.
플레이스홀더 사용자를 일괄로 유지하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- 목록 위에서 세로 줄임표(⋮) > Keep all as placeholders를 선택합니다.
- 확인 대화 상자에서 Confirm을 선택합니다.
이 작업을 되돌리려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Reassigned 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- 해당 행에서 Undo를 선택합니다.
재배정 요청 취소#
사용자가 재배정 요청을 수락하기 전에는 요청을 취소할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Awaiting reassignment 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- 해당 행에서 Cancel을 선택합니다.
대기 중인 재배정 요청에 대한 재알림#
사용자가 재배정 요청에 응하지 않으면 이메일을 다시 보내 알릴 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Awaiting reassignment 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- 해당 행에서 Notify를 선택합니다.
재배정 상태 확인 및 필터링#
모든 플레이스홀더 사용자의 재배정 상태를 보려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다. 이 그룹은 최상위 그룹이어야 합니다.
- 왼쪽 사이드바에서 Manage > Members를 선택합니다.
- Placeholders 탭을 선택합니다.
- Awaiting reassignment 하위 탭으로 이동하면 플레이스홀더가 표에 나열됩니다.
- Reassignment status 열에서 각 플레이스홀더 사용자의 상태를 확인합니다.
Awaiting reassignment 탭에 표시되는 상태는 다음과 같습니다.
Not started- 재배정이 시작되지 않았습니다.Pending approval- 재배정이 사용자 승인을 기다리고 있습니다.Reassigning- 재배정이 진행 중입니다.Rejected- 사용자가 재배정을 거부했습니다.Failed- 재배정이 실패했습니다.
Reassigned 탭에 표시되는 상태는 다음과 같습니다.
Success- 재배정이 완료되었습니다.Kept as placeholder- 플레이스홀더 사용자가 영구 상태로 유지되었습니다.
표는 기본적으로 플레이스홀더 사용자 이름을 기준으로 알파벳순으로 정렬됩니다. 재배정 상태를 기준으로 정렬할 수도 있습니다.
기여 재배정 확인#
Skip confirmation when administrators reassign placeholder users 설정이 활성화되어 있으면 다음과 같이 동작합니다.
- 관리자가 사용자 확인 없이 기여를 즉시 재배정할 수 있습니다.
- 관리자가 활성 및 비활성 비봇 사용자에게 기여를 재배정할 수 있습니다.
- 기여가 재배정되었다는 이메일을 받습니다.
이 설정이 활성화되어 있지 않으면 재배정을 수락하거나 거부할 수 있습니다.
기여 재배정 수락#
가져오기 절차가 진행되었으며 본인에게 기여를 재배정하는 것을 확인해 달라는 이메일을 받을 수 있습니다.
이 가져오기 절차를 미리 안내받았더라도 재배정 세부 정보는 반드시 꼼꼼히 확인해야 합니다. 이메일에 표시되는 세부 정보는 다음과 같습니다.
- Imported from - 가져온 콘텐츠의 출처 플랫폼입니다. 예를 들어 다른 GitLab 인스턴스, GitHub, Bitbucket 등입니다.
- Original user - 소스 플랫폼에서의 사용자 이름과 사용자명입니다. 해당 플랫폼에서 사용하던 본인의 이름과 사용자명일 수 있습니다.
- Imported to - 새 플랫폼의 이름이며, GitLab 인스턴스만 해당합니다.
- Reassigned to - 해당 GitLab 인스턴스에서의 본인 전체 이름과 사용자명입니다.
- Reassigned by - 가져오기를 수행한 동료나 상급자의 전체 이름과 사용자명입니다.
기여 재배정 거부#
본인에게 기여를 재배정하는 것을 확인해 달라는 이메일을 받았는데 내용을 알 수 없거나 정보에 오류가 있다면 다음과 같이 대응합니다.
- 절차를 진행하지 않거나 기여 재배정을 거부합니다.
- 신뢰할 수 있는 동료나 상급자와 상의합니다.
보안 고려 사항#
재배정 요청의 세부 정보는 반드시 꼼꼼히 확인해야 합니다. 신뢰할 수 있는 동료나 상급자에게 이 절차를 미리 안내받지 않았다면 더욱 주의합니다.
조금이라도 의심스러운 재배정은 수락하지 말고 다음과 같이 대응합니다.
- 이메일의 안내에 따라 조치하지 않습니다.
- 신뢰할 수 있는 동료나 상급자와 상의합니다.
잘 알고 신뢰하는 사용자의 재배정만 수락합니다. 기여 재배정은 영구적이며 되돌릴 수 없습니다. 재배정을 수락하면 기여가 본인에게 잘못 귀속될 수 있습니다.
기여 재배정 절차는 GitLab에서 Approve reassignment를 선택해 재배정 요청을 수락한 뒤에만 시작됩니다. 이메일의 링크를 선택하는 것으로는 절차가 시작되지 않습니다.