Факт 1: Проекты и репозитории всегда были синонимами на GitHub.
Факт 2: это больше не так.
Существует много путаницы в отношении хранилищ и проектов. В прошлом оба термина использовались в значительной степени взаимозаменяемо пользователями и собственной документацией GitHub. Это отражено в некоторых ответах и комментариях, которые объясняют тонкие различия между этими терминами и тем, когда один из них предпочтительнее другого. Разница всегда была неуловимой, например, трекер проблем был частью проекта, но не частью репозитория, который можно было бы считать строго мерзкой вещью и т. Д.
Уже нет.
В настоящее время репозитории и проекты относятся к различным видам сущностей, которые имеют отдельные API :
С тех пор уже не правильно называть репо проектом или наоборот. Обратите внимание, что это часто путают в официальной документации, и, к сожалению, термин, который уже широко использовался, был выбран в качестве имени новой сущности, но это так, и мы должны с этим мириться.
Как следствие, репо и проекты обычно перепутаны, и каждый раз, когда вы читаете о проектах GitHub, вы должны задаться вопросом, действительно ли речь идет о проектах или о репо. Если бы они выбрали какое-то другое имя или аббревиатуру, например, «proj», тогда мы могли бы знать, что речь идет о новом типе сущности, точном объекте с конкретными свойствами или общепринятой репо-подобной проектной штуке.
Термин, который обычно однозначен, - «проектная доска» .
Что мы можем узнать из API
Первая конечная точка в документации по Projects API:
описывается как: Список проектов репозитория . Это означает, что в хранилище может быть много проектов. Так что эти двое не могут означать одно и то же. Включает ответ, если проекты отключены :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
Это означает, что в некоторых репозиториях проекты могут быть отключены. Опять же, это не может быть то же самое, когда в репо могут быть отключены проекты.
Есть и другие интересные конечные точки:
- Создать проект репозитория -
POST /repos/:owner/:repo/projects
- Создать проект организации -
POST /orgs/:org/projects
нет , но есть нет :
Создать проект пользователя -POST /users/:user/projects
Что приводит нас к другому различию:
1. Хранилища могут принадлежать пользователям или организациям.
2. Проекты могут принадлежать хранилищам или организациям.
или, что более важно:
1. Проекты могут принадлежать репозиториям, но не наоборот
2. Проекты могут принадлежать организациям, но не пользователям
3. Репозитории могут принадлежать организациям и пользователям
Смотрите также:
Я знаю, что это сбивает с толку. Я пытался объяснить это так точно, как мог.