Github API: كيفية الحصول على الجذر: Tree_sha من مستودع؟

StackOverflow https://stackoverflow.com/questions/2831137

  •  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']

https://developer.github.com/v3/git/commits/

لست متأكدًا من واجهة برمجة تطبيقات Github - ولكن إذا كنت تريد فقط التجزئة ، يمكنك استخدام هذا الأمر في استنساخك:

git show HEAD --format=%T | head -1

او استعمل %t للتجزئة المختصرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top