Fakt 1: Projekty i repozytoria zawsze były synonimami na GitHub.
Fakt 2: to już nie ma miejsca.
Istnieje wiele nieporozumień związanych z repozytoriami i projektami. W przeszłości oba terminy były używane zamiennie przez użytkowników i własną dokumentację GitHub. Znajduje to odzwierciedlenie w niektórych odpowiedziach i komentarzach, które wyjaśniają subtelne różnice między tymi terminami i kiedy jeden z nich był preferowany. Różnice były zawsze subtelne, np. Jak tracker problemów jest częścią projektu, ale nie jest częścią repozytorium, co może być uważane za rzecz ściśle gitową itp.
Nigdy więcej.
Obecnie repozytoria i projekty odnoszą się do różnych rodzajów jednostek, które mają oddzielne interfejsy API :
Od tego czasu nie jest już poprawne nazywanie repozytorium projektem lub odwrotnie. Zauważ, że jest to często mylone w oficjalnej dokumentacji i szkoda, że termin, który był już szeroko używany, został wybrany jako nazwa nowego podmiotu, ale tak jest i musimy z tym żyć.
Konsekwencją jest to, że repozytoria i projekty są zwykle mylone i za każdym razem, gdy czytasz o projektach GitHub, musisz się zastanawiać, czy naprawdę chodzi o projekty, czy o repozytoria. Gdyby wybrali jakąś inną nazwę lub skrót, taki jak „proj”, moglibyśmy wiedzieć, że omawiany jest nowy typ bytu, precyzyjny obiekt o konkretnych właściwościach lub ogólnie rzecz biorąc, projekt przypominający repozytorium.
Terminem, który jest zwykle jednoznaczny, jest „tablica projektu” .
Czego możemy się nauczyć z API
Pierwszy punkt końcowy w dokumentacji Projects API:
jest opisana jako: Lista projektów repozytoriów . Oznacza to, że repozytorium może mieć wiele projektów. Więc te dwa nie mogą oznaczać tego samego. Obejmuje odpowiedź, jeśli projekty są wyłączone :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
co oznacza, że niektóre repozytoria mogą mieć wyłączone projekty. Ponownie, nie może to być to samo, gdy repozytorium może mieć wyłączone projekty.
Jest kilka innych interesujących punktów końcowych:
- Utwórz projekt repozytorium -
POST /repos/:owner/:repo/projects
- Utwórz projekt organizacji -
POST /orgs/:org/projects
ale nie ma :
Utwórz projekt użytkownika -POST /users/:user/projects
Co prowadzi nas do kolejnej różnicy:
1. Repozytoria mogą należeć do użytkowników lub organizacji.
2. Projekty mogą należeć do repozytoriów lub organizacji
lub, co ważniejsze:
1. Projekty mogą należeć do repozytoriów, ale nie na odwrót
2. Projekty mogą należeć do organizacji, ale nie do użytkowników
3. Repozytoria mogą należeć do organizacji i do użytkowników
Zobacz też:
Wiem, że to zagmatwane. Starałem się to jak najdokładniej wytłumaczyć.