Référence à la branche courante de GitHub readme.md
In my github repo's readme.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 succursale est codée en dur. Est-il possible d'utiliser une sorte de variable de sorte que la branche est du déjà vu?
2 réponses
Pas que je sache.
" GitHub support confirms (through OP Joe Gatt 's comment )
la seule façon de faire cela serait de passer le lien par mon propre service qui utiliserait l'en-tête http referrer de GitHub pour déterminer quelle branche est référencée et puis récupérer l'image appropriée de Travis CI
je préférerais faire un badge Travis-CI par branche, pour que le lecteur choisisse ou considère le approprié en voyant le README.md
.
Update 2016 (3 ans plus tard): alors que rien n'a changé du côté de GitHub, fedorqui rapports dans le contournement mentionné dans " Get Travis Shield sur Github pour refléter L'état sélectionné de la branche "par Andrie .
Il suffit d'afficher toutes les branches et leurs badges respectifs TravisCI.
Si vous n'avez que deux ou trois branches, qui pourrait être suffisant.
j'ai travaillé autour de cette question avec un git pre-commit hook qui réécrit la ligne Travis dans le README.md avec la branche actuelle. Vous trouverez ci-dessous un exemple d'utilisation et de code pre-commit (Python) (pour la question telle que posée).
Utilisation
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 pre-commit
dandye$ cat .git/hooks/pre-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] /q/referencing-current-branch-in-github-readme-md-49135/"""
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."