2012-05-28 10 views
6

Estoy usando la API v3 y logré enumerar repos/árboles/ramas, acceder a los contenidos del archivo y crear blobs/trees/commits. Ahora estoy tratando de crear un nuevo repositorio, y logré hacerlo con "POST user/repos"API de GitHub v3: ¿cómo creo la confirmación inicial en un repositorio?

Pero cuando trato de crear blobs/trees/commits/references en este nuevo repositorio recibo el mismo mensaje de error . (409) "El repositorio de Git está vacío". Obviamente puedo ir e iniciar el repositorio yo mismo a través de la línea de comandos de git, pero preferiría que mi aplicación lo hiciera por mí.

¿Hay alguna manera de hacerlo? ¿Qué es lo primero que debo hacer a través de la API después de crear un repositorio vacío?

Gracias

+2

Parece que todavía no lo admiten, http://stackoverflow.com/questions/9670604/github-v3-api-how-to-create-initial-commit-for-my-shiny-new -repositorio – aclark

Respuesta

1

Actualización mayo 2013: Tenga en cuenta que la repository content API ahora Autorizar adding files.

Ver "File CRUD and repository statistics now available in the API".

respuesta

original (mayo de 2012)

Puesto que no parece estar apoyada todavía ("GitHub v3 API: How to create initial commit for my shiny new repository?", como aclark comentarios), se puede empezar por empujar a un inicial vacío cometer

git commit --allow-empty -m 'Initial commit' 
git push origin master 

que puede ser una buena práctica para initialize one's repository de todos modos.
Y se ilustra en "git's semi-secret empty tree".

+0

gracias. Es realmente extraño que la API sea compatible con la creación de repositorios, pero no con ellos. –

2

Desde 2012, ahora es posible inicializar un repositorio de auto después de la creación, de acuerdo con this blog post publicada en el blog de GitHub:

Hoy hemos hecho que sea más fácil añadir compromete a un repositorio a través de GitHub API. Hasta ahora, podías crear un repositorio, pero necesitarías inicializarlo localmente a través de tu cliente Git antes de agregar cualquier compromiso a través de la API.

Ahora se puede init opcionalmente un repositorio cuando se crea mediante el envío de verdad para el parámetro auto_init:

curl -i -u pengwynn \ 
    -d '{"name": "create-repo-test", "auto_init": true}' \ 
    https://api.github.com/user/repos 

El repositorio resultante tendrá un talón de README y una confirmación inicial.

Cuestiones relacionadas