Fato 1: Projetos e Repositórios sempre foram sinônimos no GitHub.
Fato 2: Este não é mais o caso.
Há muita confusão sobre Repositórios e Projetos. No passado, os dois termos eram usados de maneira praticamente intercambiável pelos usuários e pela própria documentação do GitHub. Isso é refletido por algumas das respostas e comentários aqui que explicam as diferenças sutis entre esses termos e quando um foi preferido em relação ao outro. A diferença sempre foi sutil, por exemplo, como o rastreador de problemas sendo parte do projeto, mas não parte do repositório, o que pode ser pensado como algo estritamente importante, etc.
Não mais.
Atualmente, repositórios e projetos se referem a diferentes tipos de entidades que possuem APIs separadas :
Desde então, não é mais correto chamar o repositório de projeto ou vice-versa. Observe que muitas vezes é confundido na documentação oficial e é lamentável que um termo que já tenha sido amplamente utilizado tenha sido escolhido como o nome da nova entidade, mas esse seja o caso e tenhamos que conviver com isso.
A conseqüência é que repositórios e projetos geralmente são confusos e toda vez que você lê sobre projetos do GitHub, você deve se perguntar se realmente é sobre os projetos ou sobre os repositórios. Se eles tivessem escolhido algum outro nome ou uma abreviação como "proj", poderíamos saber que o que é discutido é o novo tipo de entidade, um objeto preciso com propriedades concretas ou um tipo de coisa projetual do tipo repo.
O termo geralmente não ambíguo é "conselho do projeto" .
O que podemos aprender com a API
O primeiro ponto de extremidade na documentação da API de projetos:
é descrito como: Listar projetos de repositório . Isso significa que um repositório pode ter muitos projetos. Então esses dois não podem significar a mesma coisa. Inclui Resposta se os projetos estiverem desativados :
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
o que significa que alguns repositórios podem ter projetos desativados. Novamente, essas não podem ser a mesma coisa quando um repositório pode ter projetos desativados.
Existem outros pontos finais interessantes:
- Crie um projeto de repositório -
POST /repos/:owner/:repo/projects
- Crie um projeto da organização -
POST /orgs/:org/projects
mas não há :
Crie o projeto de um usuário -POST /users/:user/projects
O que nos leva a outra diferença:
1. Os repositórios podem pertencer a usuários ou organizações
2. Os projetos podem pertencer a repositórios ou organizações
ou, mais importante:
1. Os projetos podem pertencer a repositórios, mas não o contrário.
2. Os projetos podem pertencer a organizações, mas não a usuários
3. Os repositórios podem pertencer a organizações e usuários
Veja também:
Eu sei que é confuso. Tentei explicar o mais precisamente possível.