Jump to content

[RESOLU] creation repo github depuis la ligne de commande


Recommended Posts

bonjour

j'ai tenter de suivre quelque tuto pour creer des repo github via cmd.exe, mais rien n'y fait j'ai toujours des message d'erreur

https://gist.github.com/alexpchin/dc91e723d4db5018fef8

ici j'ai essayer cette methode :

curl -u 'USER:passwrd' https://api.github.com/ -d '{"name":"REPO"}'


avec cette methode j'ai toujours des erreur du type "not found" et je ne voie pas par quoi je doit remplacer "name"

j'ai aussi essayer celle  avec git  (au debut de page)

 

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:alexpchin/<reponame>.git
git push -u origin master

 

marche pas

 

 

Edited by GROS_FAIGNAN
Link to comment
Share on other sites

Es tu bien sur de vouloir créer le repo depuis cmd ? Pourquoi pas simplement depuis l'interface github ?

J'ai l'impression que tu essaye de manipuler des technos que tu ne connais pas du tout. (Le mot URL et "chemin" n'ayant semble t'il pas "fait tilt").

Je me refuse volontairement à ne pas fournir la commande finale/corrigée car il suffit (à mon sens) de bien relire ma réponse pour trouver la réponse  et comprendre le souci.

Link to comment
Share on other sites

curl par défaut utilise la commande GET pour récupérer du contenu. (comme tout navigateur web)

généralement quand tu veux envoyer du contenu, ou une commande, il faut utiliser la commande POST .

comme quand tu envois un formulaire dans un navigateur: tu remplis des champs et tu clique sur "envoyer" ; ça génère une requête POST par ton navigateur.

pour utiliser une commande POST avec curl, je te conseille de lire un peu sur le sujet pour savoir comment faire et ce qu'il faut utiliser.

Edited by Minikea
Link to comment
Share on other sites

]@Sheepux :

non effectivement je ne maîtrise pas du tout la ligne de commande, 

je comprend vaguement le html/CSS/PHP et j'ai fait un peut de C et d'AS3 mais il y a longtemps.

@Minikea :

j'ai chercher rapidement sur le net le fonctionnement de la commande POST mais mes recherche n'ont données aucune ligne de commande qui fonctionne.

(j'ai essayer ces 2 versions) :

curl -u "user:psswrd" -X POST -d "user/repos" https://api.github.com
curl -u "user:psswrd" https://api.github.com -X POST -d "user/repos"

en remplaçant respectivement user psswrd et repos par mes identifiant et le nom que je voulais donné a mon dépôt.

 

pour details je cherche a transmettre a un script la possibilité des créer des dépôt sur mon compte github, certain sur open-classroom m'on dit que ce n’était pas possible d'automatisé cette fonction, a voir ce que vous en pensez .

 

[EDIT]

j'ai aussi essayer cette forme

curl -u "USER:PSSWRD" -X POST -d '{"name":"Test2","description":"Created via API","public":"true"}' https://api.github.com/user/repos

idem je remplace users et passwrd par mes identifiant

plutot que de me retourné une bette erreur "not found" j'ai le droit a un "error parsing json", c'est presque encourageant... meme si ca m'aide pas bcp ^^

Edited by GROS_FAIGNAN
Link to comment
Share on other sites

curl -u "USER:PSSWRD" -X POST -d '{"name":"Test2","description":"Created via API","public":"true"}' https://api.github.com/user/repos

Ah mais tu avais trouvé plus haut, il n'y avait pas l'edit quand j'ai répondu. Là tu es sur le bon chemin. 

Pourquoi le JSON est il invalide ? Car public est déclaré dans la doc en booléen (enlève les guillements autour de true)

Edited by Sheepux
Link to comment
Share on other sites

 

j'ai activer un token dans mes setting github (un peut par hazard en fait) mais apparament faut aussi une identification OAuth pour les utiliser etc... et j'ai pas trop bien compris encore comment faire tout ca

[EDIT] je viens de tenter quand meme le coup avec plusieurs syntaxe

curl -H 'Authorization: token mytoken' -X POST -d '{"name":"Test2", "description":"created via command line", "homepage":"https://github.com","private":false}' https://api.github.com/user/repos
Citer

curl: (6) Could not resolve host: token
curl: (6) Could not resolve host: mytoken
curl: (3) Port number ended with 'c'
curl: (3) [globbing] unmatched close brace/bracket in column 42
{
  "message": "Requires authentication",
  "documentation_url": "https://developer.github.com/v3/repos/#create"
}

ok ici la syntaxe d'authentification n'est pas bonne, le probleme de bracket doit venir du saut de ligne, dans la console ou je ne sais quoi (bizarre cela dit ^^), mais rien a faire je ne sais pas a quoi correspond l'erreur "port number ended with 'c'

curl -H 'Authorization:mytoken' -X POST -d '{"name":"Test2"}' https://api.github.com/user/repos
Citer

{
  "message": "Requires authentication",
  "documentation_url": "https://developer.github.com/v3/repos/#create"
}

curl -H 'Authorization:token<mytoken>' -X POST -d '{"name":"Test2"}' https://api.github.com/user/repos
Citer

Le fichier spécifié est introuvable.

la derniere syntaxe a l'air la bonne mais rien a faire quand meme une erreur : >> "le fichier specifier est introuvable"

 

 

 

Edited by GROS_FAIGNAN
Link to comment
Share on other sites

Mouaip y'a un mix d'informations faut juste suivre les guides dans le bon ordre:

https://developer.github.com/v3/guides/getting-started/

curl -i -u username:$token 

404 semble vouloir dire chez github pas d'auhtentification (c'est vraiment des cons ce qui ont concu les api github)

https://developer.github.com/v3/troubleshooting/

Citer

ypically, we send a 404 error when your client isn't properly authenticated. You might expect to see a 403 Forbidden in these cases. However, since we don't want to provide any information about private repositories, the API returns a 404 error instead.

 

Link to comment
Share on other sites

je suis en trains de tenter le coup mais ca a pas l'air de marcher des masse non plus, la plupart des erreur que j'ai sont des erreur "bad credential" ou "error parsing json"

Citer

Mouaip y'a un mix d'informations faut juste suivre les guides dans le bon ordre:

pas la plus facile a lire non plus leur doc ^^

Edited by GROS_FAIGNAN
Link to comment
Share on other sites

ça, ça semble être la bonne forme:

curl -i -u username:letokenarallongedegithub0123456789 -X POST -d '{"name":"Test2", "description":"created via command line", "private":false}' https://...
à noter que tu peux mettre le token dans les headers de la requête:

https://developer.github.com/v3/guides/getting-started/#create-a-repository

curl -i -H "Authorization: token 5199831f4dd3b79e7c5b7e0ebe75d67aa66e79d4" -X POST -d '{"name": "blog","auto_init": true,"private": true, "gitignore_template": null}' https://api.github.com/GROS_FAIGNAT/repos

(pas sûr pour "gitignore_template" s'il faut mettre null ou le supprimer)

Link to comment
Share on other sites

oui mais aucune de ces 2 forme ne fonctionne, j'ai toujours soit de erreur bad credential soit error parsing json, 

après y'a un formulaire pour autoriser les application a se connecter sur l'API, mais je ne sais pas comment il fonctionne ni si ca concerne les applis executée sur ma machine en local

 

[EDIT]

curl -i -u "grosfaignan:passwrd" -H "Authorization:token<y_token>" -X POST -d '{"name":"Test2","auto_init":true,"private":false,"gitignore_template":null}' https://api.github.com/user/repos

je viens meme d'essayer cette forme qui me retourne une erreur 

 

Citer

HTTP/1.1 401 Unauthorized
Date: Tue, 17 Dec 2019 12:37:03 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 115
Server: GitHub.com
Status: 401 Unauthorized
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 55
X-RateLimit-Reset: 1576589823
X-GitHub-Media-Type: github.v3; format=json
Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Frame-Options: deny
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy: default-src 'none'
X-GitHub-Request-Id: FB53:289BA:D15A40:FB1C7F:5DF8CBEF

{
  "message": "Requires authentication",
  "documentation_url": "https://developer.github.com/v3/repos/#create"
}

 

j'ai bien été voir la doc mais j'y compren rien

 

[EDIT2]

après si y'a un autre systeme de stockage en ligne qui soit a la fois gratuit, permette le versioning et tant qu'a faire propose une arborescence des dossier je suis preneur

Edited by GROS_FAIGNAN
Link to comment
Share on other sites

le problème, c'est le unauthorized. ça veut dire que ton token est pas reconnu.
si l'autre forme te retourne une erreur JSON, ça veut dire que l'auth fonctionne mais que ton json est mal formé, ce qui est largement plus gérable.

sinon il y a pleins d'autres outils que curl pour github. notamment git. ça serait quand même plus simple d'utiliser git qui est l'outil dédié que curl qui n'est pas fait pour ça, même si c'est une possibilité offerte. (github propose même une surcouche à git pour avoir plus de commandes, compatible avec windows: https://github.com/github/hub/releases/latest )

avant d'essayer de planter une vis dans un mur, il vaut mieux vérifier si ça se fait pas avec autre chose qu'un marteau...

https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6 (à partir de "step 1")

Edited by Minikea
Link to comment
Share on other sites

j'ai git

mais je cherche une commande simple pour transmettre a un script utiliser par un autre logiciel la possibilité de créer des depot si besoin est

cela dit j'ai essayer avec git et j'ai pas réussi non plus.

la seule solution que j'ai trouver c'est de créer un depot en local avec github desktop et de le publier par la suite.

mais je veut pas que les depot soient stocké en local

après sinon je suis en train de jeter un œil sur gitlab pour voir ce qu'ils propose

Link to comment
Share on other sites

le principe de git, c'est de synchroniser un "dépôt" local (en tout cas un répertoire où est stocké ton code) et le dépôt distant. c'est sa base, tu peux pas faire autrement.

Honnêtement, tu devrais sérieusement réfléchir à ce que tu veux faire et te renseigner sur les moyens de le faire avant de te mettre à ré-inventer la roue.

et sans vouloir être médisant, si tu n'arrive pas à t'en sortir avec git, tu ferais mieux de reprendre les bases ou de laisser tomber car c'est sans doute la partie la plus simple...

Edited by Minikea
Link to comment
Share on other sites

bon, je viens de tester par acquis de conscience et la commande que je t'ai indiqué fonctionne. il faut juste éviter de mélanger les commandes, et de virer ce dont j'étais pas sûr:

curl -i -u "geek85:$GHTOKEN" -X POST -d '{"name":"Test","auto_init":true,"private":true}' https://api.github.com/user/repos
17/12/19 15:27:22 - [0] HTTP/1.1 201 Created

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...