Github API: كيفية الحصول على الجذر: Tree_sha من مستودع؟
-
26-09-2019 - |
سؤال
كيف أحصل على الجذر: tree_sha من مستودع github عبر واجهة برمجة تطبيقات github؟
لا يبدو أن صفحات مساعدة Githib API تشرح هذه المعلومات الحرجة:
http://develop.github.com/p/object.html
يمكن الحصول على محتويات شجرة بواسطة شجرة شا
شجرة/show/: user/: repo/: tree_sha
للحصول على قائمة بشجرة الجذر لمشروع FaceBox من قائمة الالتزام الخاصة بنا ، يمكننا أن نسمي هذا:
حليقة $ http://github.com/api/v2/yaml/tree/show/defunkt/facebox/a47803c9ba26213ff194f042ab686a749b17476
المحلول 2
http://develop.github.com/p/commits.html
يخبرك الالتزام بشجرة شا.
تعديل
إذا كنت تريد شجرة القرص المضغوط الفرعي في المجلد الأصل الذي تهتم به وتشغيله:
git ls-tree HEAD
إذا كنت تريد شجرة الجذر sha:
git show HEAD --format=raw
السطر الأول يرتكب شا
الخط الثاني يحتوي على شجرة شا
نصائح أخرى
يحتوي كل التزام على SHA للشجرة بأكملها من هذا الالتزام. استخدم API للحصول على كائن JSON يمثل master
فرع.
https://api.github.com/repos/:owner/:repo/branches/master
يشمل الالتزام الأخير لهذا الفرع شا الشجرة التي أعتقد أنك تطلبها.
يوضح هذا الجزء من الكود كيفية الحصول على head_tree_sha
في بيثون.
import requests
token = '0...f'
key = {'Authorization':'token '+token}
master = requests.get('https://api.github.com/repos/'+owner+'/' + repo '/branches/master', headers=key)
master = master.json()
head_tree_sha = master['commit']['commit']['tree']['sha']
لست متأكدًا من واجهة برمجة تطبيقات Github - ولكن إذا كنت تريد فقط التجزئة ، يمكنك استخدام هذا الأمر في استنساخك:
git show HEAD --format=%T | head -1
او استعمل %t
للتجزئة المختصرة.