Fakt 1: Projekte und Repositories waren auf GitHub immer Synonyme.
Fakt 2: Dies ist nicht mehr der Fall.
Es gibt viel Verwirrung über Repositories und Projekte. In der Vergangenheit wurden beide Begriffe von den Benutzern und der eigenen Dokumentation des GitHub ziemlich austauschbar verwendet. Dies spiegelt sich in einigen der Antworten und Kommentare wider, die die subtilen Unterschiede zwischen diesen Begriffen erklären und erklären, wann der eine dem anderen vorgezogen wurde. Der Unterschied war immer subtil, z. B. dass der Issue-Tracker Teil des Projekts war, aber nicht Teil des Repositorys, was man als reine Idiotie usw. betrachten könnte.
Nicht länger.
Derzeit beziehen sich Repos und Projekte auf verschiedene Arten von Entitäten mit separaten APIs :
Seitdem ist es nicht mehr richtig, das Repo als Projekt zu bezeichnen oder umgekehrt. Beachten Sie, dass dies in der offiziellen Dokumentation häufig verwechselt wird und es bedauerlich ist, dass ein bereits weit verbreiteter Begriff als Name der neuen Einheit gewählt wurde. Dies ist jedoch der Fall, und wir müssen damit leben.
Die Folge ist, dass Repos und Projekte normalerweise verwirrt sind und jedes Mal, wenn Sie über GitHub-Projekte lesen, müssen Sie sich fragen, ob es wirklich um die Projekte oder um Repos geht. Hätten sie einen anderen Namen oder eine Abkürzung wie "proj" gewählt, könnten wir wissen, dass es sich um den neuen Entitätstyp, ein genaues Objekt mit konkreten Eigenschaften oder eine allgemein sprechende repoähnliche projektische Art handelt.
Der Begriff, der normalerweise eindeutig ist, ist "Projektvorstand" .
Was können wir aus der API lernen?
Der erste Endpunkt in der Dokumentation der Projekt-API:
wird beschrieben als: Liste der Repository-Projekte . Dies bedeutet, dass ein Repository viele Projekte haben kann. Diese beiden können also nicht dasselbe bedeuten. Es enthält Antwort, wenn Projekte deaktiviert sind :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
Dies bedeutet, dass bei einigen Repos Projekte deaktiviert werden können. Auch dies kann nicht dasselbe sein, wenn in einem Repo Projekte deaktiviert werden können.
Es gibt einige andere interessante Endpunkte:
- Erstellen Sie ein Repository-Projekt -
POST /repos/:owner/:repo/projects
- Organisationsprojekt erstellen -
POST /orgs/:org/projects
aber es gibt keine :
Erstellen Sie ein Benutzerprojekt -POST /users/:user/projects
Was uns zu einem weiteren Unterschied führt:
1. Repositorys können Benutzern oder Organisationen gehören.
2. Projekte können Repositorys oder Organisationen gehören
oder, was noch wichtiger ist:
1. Projekte können zu Repositorys gehören, aber nicht umgekehrt.
2. Projekte können zu Organisationen gehören, aber nicht zu Benutzern.
3. Repositorys können zu Organisationen und Benutzern gehören
Siehe auch:
Ich weiß, dass es verwirrend ist. Ich versuchte es so genau wie möglich zu erklären.