2012-01-23 22 views
13

Tôi gặp sự cố khi lấy và tổ chức các bản repos riêng tư. Tôi đang sử dụng API V3 với phương pháp này: http://share.jjnford.com/HhIZNhận Repos Riêng tư từ Tổ chức với GitHub API V3

Tôi đang sử dụng lệnh jQuery.getJSON và chuyển mã thông báo truy cập OAuth2 của tôi tới URL API nhưng chỉ nhận được trả về kho lưu trữ công khai.

Ngoài ra nếu tôi nĩa kho lưu trữ của tổ chức riêng thành tài khoản người dùng (ngữ cảnh) và kéo kho lưu trữ của người dùng tất cả repos (public & riêng) hiển thị ngoại trừ repo riêng được chia tách từ một tổ chức.

Ai có thể giúp tôi với điều này ... đó là trở ngại cuối cùng của tôi ...

Cảm ơn bạn trước!

Trả lời

3

Tôi đã tìm thấy sự cố và đã khắc phục sự cố. Theo số GitHub API V3 there are multiple scopes có thể được sử dụng. Dường như phạm vi "người dùng" không hợp lệ nữa. Một khi tôi đã sử dụng chỉ là "repo" phạm vi tất cả mọi thứ đã được lấy một cách chính xác (repos org tư nhân, và repos org ngã ba tư nhân).

+0

Tài liệu bạn đang liên kết để nói 'người dùng' là phạm vi hợp lệ. Bạn có thực sự biết lý do tại sao thay đổi của bạn hoạt động hoặc bạn chỉ đoán rằng các tài liệu sai? – mikemaccana

0

Tôi không thể tìm câu trả lời chính xác cho điều này vào lúc đó và tôi không muốn yêu cầu phạm vi "repo" vì quá tải cho ứng dụng của tôi, nó yêu cầu mã đọc/ghi permssions. Đây là những gì làm việc cho tôi (Tôi đang sử dụng Ruby cùng với đá quý octokit (https://github.com/octokit/octokit.rb)), đặc biệt cảm ơn Ivan từ sự hỗ trợ github dev:

1.- Trong Oauth, yêu cầu phạm vi "read: org" và có mã thông báo OAuth 2 từ Github

2. khởi client octokit của:

client = Octokit::Client.new(access_token: my_oauth2_token) 

3.- lấy các tổ chức của người sử dụng, chúng ta có thể làm điều đó vì sự "đọc: org" phạm vi

organizations = client.organizations 

4.- Đối với mỗi tổ chức, hãy truy xuất Nhóm quản trị Github mà người dùng này thuộc về. Và sau đó, sử dụng đội này để lấy các hợp đồng mua sẵn

organizations.each do |organization| 
    admin_team = client.organization_teams(organization[:id]).select { |repo| repo[:permission] == 'admin' }.first 
    org_repos << client.team_repositories(admin_team[:id]) 
end 

Vâng, bạn chắc chắn sẽ cần thêm các yêu cầu để thu thập tất cả các hợp đồng mua sẵn, nhưng như tôi đã nói trước đây, Trong trường hợp của tôi, tôi không muốn hỏi cho phạm vi "người dùng".

Lưu ý: Có, người dùng phải là thành viên của nhóm "quản trị" trong một Tổ chức cụ thể để có thể xem các bản repos riêng tư.

Các vấn đề liên quan