গিথুব রেডমে.এমডিতে বর্তমান শাখার উল্লেখ করা


91

আমার গিথুব রেপো readme.mdফাইলটিতে আমার একটি ট্র্যাভিস-সিআই ব্যাজ রয়েছে। আমি নিম্নলিখিত লিঙ্কটি ব্যবহার:

https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=staging

সুস্পষ্ট সমস্যাটি হল শাখাটি হার্ডকোডযুক্ত। কোনও শাখাটি বর্তমানে দেখা যাচ্ছিল তাই এমন কোনও পরিবর্তনশীল ব্যবহার করা সম্ভব?



সংগ্রহস্থল অংশটিকে একটি পরিবর্তনশীলও করা সম্ভব হবে, যাতে জালিত সংগ্রহস্থলগুলি সঠিকভাবে সংরক্ষণ করা হয়েছে সেগুলির সংগ্রহস্থলের স্থিতিটি ভুলভাবে রিপোর্ট না করে।
EoghanM

উত্তর:


54

আমি যে জানি না।
GitHub সমর্থন তার সমর্থক (মাধ্যমে ওপি জো গ্যাট এর মন্তব্য )

এটি করার একমাত্র উপায় হ'ল লিঙ্কটি আমার নিজের সেবার মাধ্যমে পাস করা যা কোন শাখাটি রেফারেন্স করা হচ্ছে তা নির্ধারণ করার জন্য গিথুবের এইচটিপি রেফারার শিরোলেখ ব্যবহার করবে এবং তারপরে ট্র্যাভিস সিআই থেকে উপযুক্ত চিত্রটি আনবে would

আমি বরং শাখায় একটি ট্র্যাভিস-সিআই ব্যাজ তৈরি করব, পাঠককে এটি দেখার সময় উপযুক্ত বাছাই বা বিবেচনা করার জন্য README.md


আপডেট 2016 (3 বছর পরে): যখন কিছুই GitHub পাশ পরিবর্তিত হয়েছে, fedorqui কার্যসংক্রান্ত মধ্যে প্রতিবেদনে "উল্লিখিত GitHub থেকে ট্রাভিস শিল্ড পান প্রতিফলিত শাখা স্থিতি নির্বাচিত দ্বারা" Andrie
কেবল সমস্ত শাখা এবং তাদের নিজ নিজ ট্র্যাভিসিসিআই ব্যাজগুলি প্রদর্শন করুন।

আপনার যদি মাত্র দুটি বা তিনটি শাখা থাকে তবে এটি যথেষ্ট হতে পারে।


4
ধন্যবাদ, ভনসি। আপনার পরামর্শ অনুসারে আমি গিথুব সমর্থনের সাথে যোগাযোগ করেছি এবং তাদের জবাব এখানে দেওয়া হয়েছে:
জো গ্যাট

4
তারা নিশ্চিত করেছে যে এটি করা যাবে না। তারা বলেছে যে এটি করার একমাত্র উপায় হ'ল লিঙ্কটি আমার নিজের সেবার মাধ্যমে পাস করা যা কোন শাখাটি রেফারেন্স করা হচ্ছে তা নির্ধারণ করার জন্য গিথুবের এইচটিসিপি রেফারার শিরোলেখ ব্যবহার করবে এবং তারপরে ট্র্যাভিস সিআই থেকে উপযুক্ত চিত্রটি আনবে ...
জো গ্যাট

4
আমি কেবল নিজের পরিষেবার মাধ্যমে লিঙ্কটি পাস করার চেষ্টা করেছি তবে দুর্ভাগ্যক্রমে আমি HTTP_REFERERযখন গিটহাবের README থেকে চিত্রটি লোড করা হয় তখন আমি তা পাই না । :-(
0xced

4
ওয়েল, আমি অনুমান করি যে এটি এখন এসএসএল প্রক্সিড অ্যাসেটগুলির কারণে অর্জন করা অসম্ভব ।
0xced

4
@ ফেডরকিই যতদূর আমি জানি, এটি উপলব্ধ নেই।
ভনসি

15

আমি এই ইস্যুটির চারপাশে একটি গিট প্রি-কমিট হুক দিয়ে কাজ করেছি যা বর্তমান শাখার সাথে README.md তে ট্র্যাভিস লাইনটিকে আবার লিখে দেয়। ব্যবহার এবং প্রাক কমিট (পাইথন) কোডের একটি উদাহরণ (জিজ্ঞাসিত প্রশ্নের জন্য) নীচে রয়েছে।

ব্যবহার

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$ 

প্রাক কমিট কোডের জন্য পাইথন কোড

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] 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."

রেপোসোটিরিটি কোথা থেকে এসেছে তার কোনও গ্যারান্টিযুক্ত তথ্য নেই বলে রেপো এবং গিথুব ব্যবহারকারীকে পাওয়া কৌশল এবং কিছুটা নাজুক। আপনি যদি ভঙ্গুরতা নিয়ে বেঁচে থাকার জন্য প্রস্তুত থাকেন তবে আপনি রেপো-ইউআরএল ব্যবহার করতে পারেন:REPOurl=subprocess.check_output(['git','config','--local', 'remote.origin.url']).decode()
DrSAR

GITHUB_USER=re.match('.*:([a-zA-Z0-9]*)\/', REPOurl).groups()[0]
ডাঃএসএআর

REPO=re.match('.*\/([a-zA-Z0-9]*).git', REPOurl).groups()[0]
ডাঃএসএআর

4
এটি দুর্দান্ত, আমি এই সম্পর্কে ভেবেছিলাম তবে আমি আশা করি যে আমার কাছে এমন একটি যাদু ভেরিয়েবল থাকতে পারে যা গিথুবের বর্তমান শাখাকে বোঝায় যাতে আমার প্রতিশ্রুতিবদ্ধ ইতিহাস দূষিত না হয়।
অ্যান্ডি

0

আমার জন্য সর্বোত্তম সমাধানটি ছিল এমন একটি সার্ভার তৈরি করা যেখানে আমি ব্যবহারকারীর নাম এবং রেপো নামের একটি জিজ্ঞাসা প্রেরণ করি এবং সমস্ত শাখার বিল্ডের স্থিতি সহ একটি এসভিজি চিত্র পাই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.