Dans le readme.md
fichier de mon dépôt github, j'ai un badge Travis-CI. J'utilise le lien suivant:
https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=staging
Le problème évident est que la branche est codée en dur. Est-il possible d'utiliser une sorte de variable pour que la branche soit celle actuellement visualisée?
Réponses:
Pas que je sache de.
Le support GitHub confirme (via le commentaire de OP Joe Gatt )
Je préférerais créer un badge Travis-CI par succursale, que le lecteur choisisse ou considère comme approprié lorsqu'il voit le
README.md
.Mise à jour 2016 (3 ans plus tard): alors que rien n'a changé du côté de GitHub, fedorqui signale la solution de contournement mentionnée dans « Obtenez Travis Shield sur Github pour refléter l' état de la branche sélectionnée » par Andrie .
Affichez simplement toutes les succursales et leurs badges TravisCI respectifs.
Si vous n'avez que deux ou trois succursales, cela pourrait suffire.
la source
HTTP_REFERER
quand l'image est chargée à partir du README sur GitHub. :-(J'ai contourné ce problème avec un hook git pre-commit qui réécrit la ligne Travis dans le README.md avec la branche actuelle. Un exemple d'utilisation et de code de pré-validation (Python) (pour la question posée) est ci-dessous.
Usage
dandye$ git checkout -b feature123 origin/master Branch feature123 set up to track remote branch master from origin. Switched to a new branch 'feature123' dandye$ echo "* Feature123" >> README.md dandye$ git add README.md dandye$ git commit -m "Added Feature123" Starting pre-commit hook... Replacing: [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=master)][travis] with: [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=feature123)][travis] pre-commit hook complete. [feature123 54897ee] Added Feature123 1 file changed, 2 insertions(+), 1 deletion(-) dandye$ cat README.md |grep "Build Status" [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=feature123)][travis] dandye$
Code Python pour le code pré-commit
#!/usr/bin/python """ Referencing current branch in github readme.md[1] This pre-commit hook[2] updates the README.md file's Travis badge with the current branch. Gist at[4]. [1] http://stackoverflow.com/questions/18673694/referencing-current-branch-in-github-readme-md [2] http://www.git-scm.com/book/en/v2/Customizing-Git-Git-Hooks [3] https://docs.travis-ci.com/user/status-images/ [4] https://gist.github.com/dandye/dfe0870a6a1151c89ed9 """ import subprocess # Hard-Coded for your repo (ToDo: get from remote?) GITHUB_USER="joegattnet" REPO="joegattnet_v3" print "Starting pre-commit hook..." BRANCH=subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).strip() # String with hard-coded values # See Embedding Status Images[3] for alternate formats (private repos, svg, etc) # [![Build Status](https://travis-ci.org/ # joegattnet/joegattnet_v3.png? # branch=staging)][travis] # Output String with Variable substitution travis="[![Build Status](https://travis-ci.org/" \ "{GITHUB_USER}/{REPO}.png?" \ "branch={BRANCH})][travis]\n".format(BRANCH=BRANCH, GITHUB_USER=GITHUB_USER, REPO=REPO) sentinel_str="[![Build Status]" readmelines=open("README.md").readlines() with open("README.md", "w") as fh: for aline in readmelines: if sentinel_str in aline and travis != aline: print "Replacing:\n\t{aline}\nwith:\n\t{travis}".format( aline=aline, travis=travis) fh.write(travis) else: fh.write(aline) subprocess.check_output(["git", "add", "README.md" ]) print "pre-commit hook complete."
la source
REPOurl=subprocess.check_output(['git','config','--local', 'remote.origin.url']).decode()
GITHUB_USER=re.match('.*:([a-zA-Z0-9]*)\/', REPOurl).groups()[0]
REPO=re.match('.*\/([a-zA-Z0-9]*).git', REPOurl).groups()[0]
La meilleure solution pour moi était de créer un serveur sur lequel j'envoie une requête avec le nom d'utilisateur et le nom du dépôt et d'obtenir une image svg avec l'état de construction pour toutes les branches.
la source