Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

비공개 저장소의 협력자 초대를 자동으로 승인한다. #772

Open
woowahan-pjs opened this issue Oct 24, 2024 · 3 comments
Open
Assignees
Labels
관리 화면 기능 New feature or request

Comments

@woowahan-pjs
Copy link
Contributor

woowahan-pjs commented Oct 24, 2024

  • 현재 과제 제출물 제출 방식이 비공개 저장소인 경우, 관리자 계정을 포크된 저장소에 협력자로 초대해야 한다.
  • 협력자로 초대받으면 초대를 수락해야 비공개 저장소에 접근할 수 있다.
  • 반자동 수락으로 인한 불편함을 플랫폼에 내재화하여 해결한다.
@woowahan-pjs woowahan-pjs added 기능 New feature or request 관리 화면 labels Oct 24, 2024
@woowahan-pjs woowahan-pjs self-assigned this Oct 24, 2024
@woowahan-pjs
Copy link
Contributor Author

woowahan-pjs commented Oct 24, 2024

별도의 지원 화면을 수정하지 않고 다음과 같이 문제를 해결할 수 있다.

  1. 관리 화면에 일괄 승인 버튼을 만들어 클릭할 때마다 모든 초대를 승인한다.
    • 특정 과제와 관련된 초대만 승인하려면 많은 노력이 필요하다.
    • 버튼을 누른 시점에 관리자 계정으로 전송된 모든 초대를 수락한다.
  2. 예시 테스트나 본 자동 채점 실행 시 최신 커밋을 조회하는 과정에서 접근 권한이 없으면 초대 목록을 확인 후 승인한다.
    • 그래도 접근할 수 없으면, 권한이 없음을 안내한다.
    • GitHub REST API 요청 수는 시간당 5,000건까지 허용되므로 이 방법 적용 시 이에 대한 대책도 마련한다.
    • 또는 1과 2를 모두 구현하여 GitHub REST API 요청 수를 분산할 수도 있다.

@woowahan-pjs
Copy link
Contributor Author

woowahan-pjs commented Oct 24, 2024

API

저장소 초대 목록 조회

저장소 초대 수락

@woowahan-pjs
Copy link
Contributor Author

  • 협력자를 초대하였다가 삭제하면 해당 협력자의 저장소 초대 목록에서 사라진다.
  • 따라서 조건부 수락 후에도 초대 목록에 남아 있으면 저장소가 삭제된 것이다.
    • 이때 수락 또는 거절 여부와 관계없이 204 No Content를 반환한다.
    • 거절하면 해당 초대는 목록에서 사라진다.
  • 저장소를 삭제한 다음 같은 이름의 다른 저장소를 만들어 협력자를 초대하면 저장소 전체 이름이 같은 두 개의 초대가 표시된다.
    • 하나는 잘못된 초대이고 다른 하나는 올바른 초대이다.
    • 올바른 초대를 수락한 후에도 잘못된 초대가 남아 있으면 초대를 수락하지 않았음에도 저장소에 접근이 가능한 것으로 오해할 수 있다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
관리 화면 기능 New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant