Sự thật 1: Các dự án và kho lưu trữ luôn là từ đồng nghĩa trên GitHub.
Sự thật 2: Đây không còn là trường hợp nữa.
Có rất nhiều nhầm lẫn về Kho và Dự án. Trước đây, cả hai thuật ngữ đều được sử dụng thay thế cho nhau bởi người dùng và tài liệu rất riêng của GitHub. Điều này được phản ánh bởi một số câu trả lời và nhận xét ở đây giải thích sự khác biệt tinh tế giữa các điều khoản đó và khi điều khoản này được ưa thích hơn các điều khoản khác. Sự khác biệt luôn luôn tinh tế, ví dụ như trình theo dõi vấn đề là một phần của dự án nhưng không phải là một phần của kho lưu trữ có thể được coi là một điều nghiêm ngặt, v.v.
Không còn nữa.
Các repos và dự án hiện tại đề cập đến một loại thực thể khác nhau có API riêng biệt :
Kể từ đó, không còn đúng khi gọi repo là một dự án hoặc ngược lại. Lưu ý rằng nó thường bị nhầm lẫn trong tài liệu chính thức và thật không may là một thuật ngữ đã được sử dụng rộng rãi đã được chọn làm tên của thực thể mới nhưng đây là trường hợp và chúng ta phải sống với điều đó.
Hậu quả là các repos và dự án thường bị nhầm lẫn và mỗi khi bạn đọc về các dự án GitHub, bạn phải tự hỏi liệu đó có thực sự là về các dự án hay về repos không. Nếu họ đã chọn một số tên khác hoặc một từ viết tắt như "proj" thì chúng ta có thể biết rằng những gì được thảo luận là loại thực thể mới, một đối tượng chính xác với các thuộc tính cụ thể hoặc một loại dự án nói chung giống như repo.
Thuật ngữ thường không rõ ràng là "bảng dự án" .
Chúng ta có thể học được gì từ API
Điểm cuối đầu tiên trong tài liệu của API dự án:
được mô tả là: Liệt kê các dự án kho lưu trữ . Nó có nghĩa là một kho lưu trữ có thể có nhiều dự án. Vì vậy, hai cái đó không thể có nghĩa giống nhau. Nó bao gồm Phản hồi nếu dự án bị vô hiệu hóa :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
có nghĩa là một số repos có thể có các dự án bị vô hiệu hóa. Một lần nữa, những điều đó không thể là điều tương tự khi một repo có thể vô hiệu hóa các dự án.
Có một số điểm cuối thú vị khác:
- Tạo một dự án kho lưu trữ -
POST /repos/:owner/:repo/projects
- Tạo một dự án tổ chức -
POST /orgs/:org/projects
nhưng không có :
Tạo một dự án của người dùng -POST /users/:user/projects
Điều này dẫn chúng ta đến một sự khác biệt khác:
1. Kho lưu trữ có thể thuộc về người dùng hoặc tổ chức
2. Dự án có thể thuộc về kho hoặc tổ chức
hoặc, quan trọng hơn:
1. Dự án có thể thuộc về kho nhưng không phải theo cách khác
2. Dự án có thể thuộc về tổ chức nhưng không
thuộc về người dùng 3. Kho có thể thuộc về tổ chức và người dùng
Xem thêm:
Tôi biết nó khó hiểu. Tôi đã cố gắng giải thích nó chính xác nhất có thể.