Télécharger privé BitBucket référentiel fichier zip en utilisant l'authentification http
Je suis en train d'écrire un script permettant de déployer facilement une application. Le code de l'application est stocké dans un espace privé BitBucket référentiel.
J'aimerais être capable de télécharger un fichier zip de la commettre. J'ai essayé de l'authentification avec le code suivant:
https://user:[email protected]/user/repo/get/commit.zip
Cependant, au lieu d'accomplir la tâche qu'il redirige vers la page de connexion sur BitBucket.
Vous devez vous connecter pour publier un commentaire.
Personnellement, je n'ai pas envie de mettre mon mot de passe dans mon script pour accomplir cette. Donc, l'astuce est d'exécuter la commande suivante, après l'ajout de votre clé publique sur votre compte bitbucket:
J'ai plusieurs touches sur mon système, si vous aussi, vous souhaitez créer un fichier de configuration dans votre ~/.ssh répertoire qui spécifie l'utilisation d'une clé spécifique pour bitbucket connexions.
~/.ssh/config
Pour télécharger une copie zippée d'un privé Bitbucket référentiel à partir de la ligne de commande, utilisez la commande suivante:
où
<username>
et<password>
sont les Bitbucket nom de compte et mot de passe,<repository>
est le repo nom et<branchname>
est la branche. Si vous préférez télécharger un commit, utiliser le hachage SHA-1 de la livraison à la place de<branchname>.
La
--digest
drapeau est pour votre sécurité, et est fortement recommandé. Il accomplit d'authentification, de sorte que votre nom d'utilisateur et mot de passe sont pas envoyé en clair. Le-o
drapeau envoie la sortie de la commande curl sur le disque en tant que fichier, au lieu de la diffusion sur l'écran de votre terminal.Remarque: Bitbucket, les schémas d'authentification n'est pas compatible avec
wget.
C'est pourquoi vous devez utilisercurl.
Pour public Bitbucket référentiels de la commande est:
Ou alternativement, vous pouvez utiliser
wget
pour les dépôts publics depuis aucune authentification n'est requise:En plus de
.zip
format, vous pouvez télécharger des dépôts dans.gz
et.bz2
saveurs. Il suffit de remplacer.zip
dans le code ci-dessus, soit avec.gz
ou.bz2
de télécharger le référentiel dans l'compressé au format de votre choix.curl --digest --user <username>:<password> https://bitbucket.org/<usename>/<project>/downloads/<filename> -o <filename>
à télécharger à partir de la zone de Téléchargement, mais ça ne fonctionne pas. Aucune idée pourquoi pas?-L
option, comme ceci:curl -L --digest --user <username>:<password> https://bitbucket.org/<usename>/<project>/downloads/<filename> -o <filename>
--digest
nécessaire puisque c'est sur https?git clone
juste abandonne pour un 10MB repo. Cependant, je peux télécharger un 11MO dump de la version la plus récente facilement. Comment puis-je obtenir de l'opération elle-même aveccurl
? (Seul le.git
répertoire serait assez bon.)Ce n'est pas vrai.
Bitbucket utilise exclusivement des TLS et donc, à aucun moment, n'a rien d'aller sur le réseau en texte clair. En conséquence, Digest offre aucun avantage sur l'Authentification Basique. En effet, en considérant que Digest est initiées par le serveur, vous encourez un serveur supplémentaire aller-retour de demander au serveur fourni par le nonce.
Notre utilisation de Digest a été superflu et obsolète depuis que nous avons cessé d'offrir HTTP non accès il y a plusieurs années et a été conservé seulement parce qu'il y avait curl basés sur des scripts de faire
--digest
comme suggéré par @GrowlTiger.En fait, nous sommes sur le point d'éteindre Digérer complètement le 1er Mai, après quoi
curl --digest
cesseront de travailler.Plus d'informations peuvent être trouvées: https://blog.bitbucket.org/2015/04/03/fare-thee-well-digest-access-authentication/
Pour ceux qui veulent télécharger le fichier unique de privé repo sur bitbucket, j'ai essayé ci-dessus, mais aucune n'a fonctionné. Enfin je l'ai eu à travailler avec la commande ci-dessous:
--ask-password
plutôt que--password=<password>
afin de ne pas avoir mon mot de passe visibles et/ou stocké sous forme de texte brut.GrowlTigers réponse est grande, juste une mise à jour: avec wget, il semble fonctionner maintenant, trop:
Ne l'outil que vous utilisez le support de base de l'authentification des informations d'identification dans l'URL? Demande Curl avec digest authentification en PHP pour télécharger Bitbucket repository privé implique fortement que:
œuvres.
J'ai trouvé que cela fonctionnait dans la version la plus récente de Bitbucket