Github을 활용해 협업하는 방법
- Organization 생성하기
- Collaborator(공동 작업자) 등록하기
- Contributors(기여자)
Organization
- 여러 사용자가 함께 작업할 수 있는 공동 작업 공간을 제공
- 여러 저장소(Repository)를 소유하고 관리할 수 있다.

- 저장소의 액세스 권한 및 설정을 중앙 집중식으로 관리하고 관련된 프로젝트를 효율적으로 구성할 수 있다.
- Member : Organization의 공식 멤버
- 멤버는 조직 내에서 프로젝트 및 저장소에 대한 액세스 권한을 가지고 있다.
- 멤버는 조직의 팀에 속할 수 있으며, 특정 팀에 할당된 권한을 가진다.
- 조직의 관리자는 멤버로서 조직의 관리와 운영에 참여한다.
- 즉, 조직의 멤버는 Collaborator일 수도 있고, 일반적인 조직 구성원일 수도 있다.
- Outside collaborators(외부 공동 작업자) : Organization과 직접적으로 연결된 멤버가 아니지만, 특정 저장소(repository)에 대한 액세스 권한을 가진 개인을 말함
- 외부 공동 작업자는 특정 저장소에 대한 쓰기(write) 권한을 부여받은 경우 해당 저장소에 코드를 푸시(push)할 수 있다
- 외부 공동 작업자는 조직의 멤버가 아니므로 조직의 다른 리소스에 대한 액세스 권한은 없다.
- Pending collaborators (대기 중인 공동 작업자) : 조직에 초대를 받은 개인 중에서 아직 초대를 수락하지 않은 사람들을 말함
- 조직의 멤버가 특정 사용자를 조직의 Collaborator로 초대한 경우, 그 사용자는 "Pending collaborators" 목록에 표시되고, 초대를 수락하면 이 사용자는 외부 공동 작업자로 추가된다.
- Invitations (초대) : 조직의 멤버가 조직 내에서 작업하도록 다른 사용자를 초대한 목록
- 이 목록에는 초대를 수락한 사용자와 아직 초대를 받지 않은 사용자가 모두 포함된다.
- 초대를 받은 사용자는 초대를 수락하면 해당 조직의 Collaborator로 추가된다.
- Failed invitations (초대 실패) : 초대가 실패한 사용자들
- 사용자가 초대를 거절하거나 초대를 받을 수 있는 권한이 없는 경우, 초대는 실패하게된다.

- 팀을 구성하고 팀에 멤버를 추가하여 권한을 관리할 수 있다.

- Collaborator를 추가하여 저장소에 대한 접근 권한을 부여할 수도 있다.


→ 즉, 권한을 달리해서 여러 사람이 사용 가능한 Github 계정을 새로 생성한다고 생각하면 좋을 것 같다.
Collaborator 란
- Collaborator는 특정 저장소(repository)에 대한 접근 권한을 부여받은 개인 또는 계정을 말함
- 이때 push와 pull 권한을 모두 가지고 있는 사람을 의미
- 저장소의 소유자(owner)는 Collaborator를 추가하여 해당 저장소에 대한 읽기(read) 및 쓰기(write) 권한을 부여할 수 있다.
그외 Contributor 란
프로젝트의 관리자는 아니지만 한 프로젝트의 커밋에 관여하는 모든 사람
- 해당 프로젝트에 접근 권한이 없기 때문에 해당 Repository 외부에서 Pull Request를 요청해야 하고, 이 내용이 받아들어 진다면 Contributor라고 부를 수 있다.
정리하기
- Organization : 여러 사용자가 함께 작업할 수 있는 공동 작업 공간
- Collaborator : Github의 push, pull 권한을 모두 가지고 있는 사람
- Contributors : 프로젝트의 관리자는 아니지만 한 프로젝트의 커밋에 관여하는 모든 사람