2013-05-22 21 views
5

Tôi hiện đang cố đọc qua (API GitHub) [http://developer.github.com/v3/repos/contents/] để tìm hiểu cách tôi có thể lập trình truy xuất tất cả các phiên bản của một tệp cụ thể trong một kho lưu trữ duy nhất.Sử dụng API GitHub để truy xuất tất cả các phiên bản của một tệp cụ thể

Tôi thấy rằng người ta có thể nhận danh sách các cam kết và phiên bản hiện tại của một tệp dễ dàng. Tuy nhiên, có cách nào để liệt kê tất cả các cam kết có liên quan cho một tệp cụ thể và sau đó lặp qua tất cả các phiên bản của tệp đó không?

Trả lời

7

Để có được danh sách các cam kết liên quan cho một tập tin cụ thể, sử dụng this API endpoint và chỉ định tham số path:

GET https://api.github.com/repos/:owner/:repo/commits?path=FILE_PATH 

Bạn sẽ nhận lại một loạt các cam kết đối tượng, mỗi trong số đó có một thuộc tính sha.

Bây giờ bạn có tất cả các SHA cam kết, bạn có thể tìm nạp tất cả các phiên bản khác nhau của tệp bằng cách sử dụng this API endpoint và bằng cách chỉ định tham số truy vấn ref để đặt SHA. Vì vậy, đối với mỗi cam kết SHA, hãy yêu cầu:

và đọc thuộc tính content. Lưu ý rằng nội dung được mã hóa Base64, nhưng bạn cũng có thể yêu cầu phiên bản thô bằng cách đặt AcceptHTTP header có liên quan.

+0

Hoàn hảo, cảm ơn! – user1027169

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