ความเป็นจริง 1: โครงการและพื้นที่เก็บข้อมูลเป็นคำพ้องความหมายเสมอใน GitHub
ความจริงที่ 2: นี่ไม่ใช่กรณีอีกต่อไป
มีความสับสนมากมายเกี่ยวกับที่เก็บและโครงการ ในอดีตทั้งสองคำนี้ใช้กันอย่างแพร่หลายโดยผู้ใช้และเอกสารของ GitHub สิ่งนี้สะท้อนให้เห็นจากคำตอบและความคิดเห็นบางส่วนที่นี่ซึ่งอธิบายความแตกต่างที่ลึกซึ้งระหว่างคำเหล่านั้นและเมื่อใดที่คำหนึ่งต้องการเหนือสิ่งอื่น ความแตกต่างนั้นบอบบางอยู่เสมอเช่นตัวติดตามปัญหาเป็นส่วนหนึ่งของโครงการ แต่ไม่ได้เป็นส่วนหนึ่งของที่เก็บซึ่งอาจคิดว่าเป็นสิ่งคอมไพล์อย่างเคร่งครัด ฯลฯ
ไม่อีกแล้ว.
ปัจจุบัน repos และโครงการอ้างถึงเอนทิตีประเภทต่าง ๆที่มีAPI แยกต่างหาก :
ตั้งแต่นั้นมามันก็ไม่ถูกต้องที่จะเรียก repo โครงการหรือในทางกลับกัน โปรดทราบว่ามันมักจะสับสนในเอกสารอย่างเป็นทางการและเป็นที่น่าเสียดายว่าคำศัพท์ที่ใช้กันอย่างแพร่หลายนั้นได้รับเลือกให้เป็นชื่อของนิติบุคคลใหม่ แต่ในกรณีนี้เราต้องอยู่กับมัน
ผลที่ตามมาก็คือว่า repos และโครงการมักจะสับสนและทุกครั้งที่คุณอ่านเกี่ยวกับโครงการ GitHub คุณต้องสงสัยว่าจริงๆแล้วมันเกี่ยวกับโครงการหรือเกี่ยวกับ repos หากพวกเขาเลือกชื่ออื่นหรือตัวย่อเช่น "proj" จากนั้นเราสามารถรู้ได้ว่าสิ่งที่กล่าวถึงคือเอนทิตีแบบใหม่วัตถุที่แม่นยำที่มีคุณสมบัติเป็นรูปธรรม
คำที่มักจะชัดเจนคือ"คณะกรรมการโครงการ"
เราเรียนรู้อะไรจาก API
จุดสิ้นสุดแรกในเอกสารของ Projects API:
เป็น: รายการโครงการพื้นที่เก็บข้อมูล หมายความว่าพื้นที่เก็บข้อมูลสามารถมีหลายโครงการ ดังนั้นทั้งสองไม่สามารถหมายถึงสิ่งเดียวกัน มันรวมถึงการตอบสนองหากโครงการถูกปิดใช้งาน :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
ซึ่งหมายความว่าบาง repos สามารถปิดการใช้งานโครงการ อีกครั้งสิ่งเหล่านั้นจะไม่เหมือนเดิมเมื่อ repo สามารถปิดการใช้งานโครงการได้
มีปลายทางที่น่าสนใจอื่น ๆ :
- สร้างโครงการที่เก็บ -
POST /repos/:owner/:repo/projects
- สร้างโครงการองค์กร -
POST /orgs/:org/projects
แต่ไม่มี :
สร้างโครงการของผู้ใช้ -POST /users/:user/projects
ซึ่งทำให้เราแตกต่าง:
1. ที่เก็บข้อมูลสามารถเป็นของผู้ใช้หรือองค์กร
2. โครงการสามารถเป็นของที่เก็บหรือองค์กร
หรือที่สำคัญกว่า:
1. โปรเจ็กต์สามารถเป็นของที่เก็บข้อมูล แต่ไม่ใช่ในทางกลับกัน
2. โปรเจ็กต์สามารถเป็นขององค์กร แต่ไม่ใช่สำหรับผู้ใช้
3. ที่เก็บข้อมูลสามารถเป็นขององค์กรและผู้ใช้งานได้
ดูสิ่งนี้ด้วย:
ฉันรู้ว่ามันสับสน ฉันพยายามอธิบายอย่างแม่นยำที่สุดเท่าที่จะทำได้