לאחרונה יצא לי להתעסק בפרויקט מעניין, שבמסגרתו הייתי צריך לשאוב מידע מקבצי md הנמצאים בתוך git.

    לאחר קצת חיפושים ושיטוטים, מצאתי את ה – Nuget הבא.

    ראשית צריך לקבל גישה ל – reposetory שממנו נרצה לשאוב את המידע.

    var client = new GitHubClient(new ProductHeaderValue("Stam-Data"));
    client.Credentials = new Credentials("USER", "PWD");
     
    var current = client.Repository.GetAllForCurrent().Result;
    var repository = current.ElementAt(0);

     

    הפרמטר בתוך החיבור בשם Stam-Data יכול להשאר כזה, אבל החיבור צריך להיות בעזרת שם המשתמש וסיסמא שלכם ב – git.

    אני בכוונה לא משתמש בדוגמה כאן ב – await ו – async, בשביל פשטות הדוגמא. ובנוסף אני ניגש Hard Code ל – reposetory הראשון שמשוייך לשם המשתמש שהוגדר, כמובן בחיים האמיתיים, זה יכול להיות טיפה שונה.

    var res = client.Repository.Content.GetAllContents(repository.Id).Result;

     

    השורה הזאת מחזירה את כל הגדרת התוכן שיש ב – root, (הפונקציה יכולה לקבל פרמטר נוסך של path, כך שניתן לגשת לתיקיות פנימיות)

    המידע שמגיע, מכיל מידע אודות התיקיות והקבצים, אבל לא מכיל את התוכן עצמו, כדי לקבל אותו צריך את הקוד הבא

     

    var owner = "owner";
    var repo = "repo name";
    var branch = "master or other branch";
    var targetFile = "full path to the file";
     
    var arr = client.Repository.Content.GetAllContentsByRef(owner, repo, targetFile, branch).Result;

     

     

    זה הקוד הבסיסי, מכאן אפשר להמשיך לשוטט ב – API, הרלוונטי כדי לשאוב ולעדכן מידע.