github rest api tutorial rest api support github
GitHub REST API - GitHub ile Programlı Olarak Etkileşim İçin Bir Arayüz:
GitHub ile ilgili daha önceki eğitimlerimizde, web arayüzünü kullanarak geliştirici perspektifinden kullanımın çeşitli yönlerini keşfediyoruz.
Bugün, kuruluşların çoğu hemen hemen her alanda otomasyon fırsatlarını arıyor ve REST API'leri farklı araçlar için çeşitli senaryoları otomatikleştirmek için yararlı oldu.
Elbette, REST API'lerinin kullanılabileceği başka alanlar da olabilir.
=> Özel GitHub Eğitim Eğitim Serisi İçin Burayı Ziyaret Edin .
Ne öğreneceksin:
GitHub REST API Entegrasyonu
REST API'leri (Temsili Durum Aktarımı) öncelikle aşağıdakileri yapmak için HTTP isteklerini kullanır.
- ALMAK - Kaynağı alın
- PUT / PATCH - Kaynağı güncelle
- İLETİ - Bir kaynak oluşturun
- SİL - Kaynağı silin
REST API’nin nasıl çalıştığını derinlemesine incelemeyeceğiz, bunun yerine doğrudan GitHub’daki REST API desteğine atlayacağız. CURL GitHub'daki önceki eğiticilerimizde gördüğümüz görevlerin çoğunu REST API'leri aracılığıyla gerçekleştirmek için komut.
GitHub API'nin mevcut sürümü v3'tür ve bu eğitim, bir geliştiricinin bu API'ler aracılığıyla ihtiyaç duyacağı en önemli etkinlikleri kapsar.
Kişisel Erişim Belirteci Oluşturma
REST API'lerinin komut satırı üzerinden çalışması için GitHub sunucusuna kimlik doğrulamamız gerekir. Bu nedenle, kimlik bilgilerimizi sağlamamız gerekiyor. Pekala, GitHub hesabımızla kullanılan şifremizi ifşa etmek istemiyoruz, bu nedenle GitHub'da kimlik doğrulaması yapmak için komut satırıyla kullanılacak kişisel bir erişim jetonu oluşturacağız.
GitHub hesabınıza giriş yapın ve tıklayın Ayarlar profilinizin altında.

Git Geliştirici Ayarları -> Kişisel Erişim Belirteçleri. Yeni bir jeton oluşturun.

Bir ad ekleyin ve API erişiminin kapsamını seçin ve tıklayın Jeton Oluşturun.

Bir sonraki ekranda, jetonu kopyaladığınızdan ve bir dosyaya kaydettiğinizden emin olun. Bu simge, GitHub API'ye erişmek için komut satırında kullanılacaktır.

iş analistleri tarafından kullanılan ihtiyaç toplama araçları
Oluşturulan jeton, aynı zamanda git clone şifre istendiğinde işlem. Şimdi, jetonu yerinde tuttuğumuz için, CURL programını kullanarak API'ye komut satırından nasıl erişeceğimizi göreceğiz.
Ön koşul olarak, indirip yüklemeniz gerekecek 'Curl' .
Depo
Burada gösterilen REST API örnekleri Windows makinesinde çalıştırılır. Bu bölüm, GitHub Deposu işlemlerinden bazılarını gösterecektir.
# 1) Bir kullanıcının Genel Depolarını listelemek için aşağıdaki komutu tek bir satırda çalıştırın.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#iki) Bir organizasyon altında Genel Depoları listelemek için.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Kişisel Depo oluşturun.
curl -X POST -u: https://api.github.com/user/repos -d “{” isim ”: ” Demo_Repo ”}”
Yukarıdaki komutta adı bir parametredir. Kişisel kullanıcı havuzları oluştururken kullanılabilecek diğer bazı parametrelere bakalım.
curl -X POST -u: https://api.github.com/user/repos -d “{” isim ”: ” Demo_Repo ”, ” açıklama ”: ” Bu, API aracılığıyla ilk repo ”, ” ana sayfa ”: ” https: //github.com ” , ”Genel ”: ”doğru ”, ”has_issues ”: ”doğru ”, ”has_projects ”: ”doğru ”, ”has_wiki ”: ”doğru ”} ”
Yukarıdaki komutta name, description, homepage, public, has_projects, has_wiki, bir dizge değeri alan ve 'içine alınmış parametrelerdir. Ayrıca: ve arasında bir BOŞLUK olduğuna dikkat edin.
Örneğin, public parametresi depoyu herkese açık hale getirir. Komut aynı zamanda konuların, projelerin, wiki'lerin oluşturulmasını da sağlar.
# 4) Depoyu yeniden adlandırın.
curl -X POST -u: -X YAMA -d “{” ad ”: ” ”}” https://api.github.com/repos//
# 5) Güncelle has_wiki depodaki parametresi ve değeri false olarak ayarlayın.
curl -u: -X YAMA -d “{” has_wiki ”: ” yanlış ”}” https://api.github.com/repos/user-name/
# 6) Depoyu silin.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Bir Organizasyonda Depo Oluşturun.
curl -X POST -u: https://api.github.com/orgs//repos '{' Name ': ' Demo_Repo_In_Org ', ' description ': ' Bu, API aracılığıyla kuruluştaki ilk repodur ', ' ana sayfa ': ' https: //github.com ' , ”Genel ”: ”doğru ”, ”has_issues ”: ”doğru ”, ”has_projects ”: ”doğru ”, ”has_wiki ”: ”doğru ”} ”

# 8) Depo için Çatalları Listeleme.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Yukarıdaki komut, çatallı depoya göz atmak için URL'yi listeleyecektir. Aynısı kullanıcı deposu altında görülebilir ve 'Analizler SEKMESİ => Çatallar' .

curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Yukarıdaki komut, çatallı depoyu klonlamak için URL'yi listeleyecektir.
# 9) Kuruluşta bir Depo çatallayın.
curl -X POST -u: -d “{” organizasyon ”: ” ”}” https://api.github.com/repos///forks
Ortak çalışanlar
# 1) Depo için Ortak Çalışanları Listeleme.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w giriş
#iki) Bir kullanıcının Ortak Çalışan listesinde olup olmadığını kontrol edin.
curl -X GET -u: https://api.github.com/repos///collaborators/
Kullanıcı ortak çalışanın bir parçasıysa, çıktı olarak hiçbir içerik görüntülenmez, aksi takdirde aşağıdaki mesaj görüntülenir.
{
'Mesaj': 'bir kullanıcı değil',
'Document_url': 'https://developer.github.com/v3/repos/collaborators/#get'
}
# 3) Kullanıcının İznini Kontrol Edin.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Kullanıcıyı Depoya Ortak Çalışan olarak ekleyin.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Bunu yayınlayın, davetlinin ortak çalışan olarak katılma davetini kabul etmesi gerekir. Bir kullanıcı ortak çalışan olarak zaten eklenmişse, içerik görüntülenmez, aksi takdirde çıktı görüntülenir.
# 5) Kullanıcı Ortak Çalışan olarak kaldırılıyor.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Komut başarıyla çalıştırıldıktan sonra hiçbir içerik görüntülenmez.
Organizasyon
Not: Kuruluş Oluşturma, GitHub API tarafından sağlanmamaktadır.
# 1) Bir kullanıcı için tüm kuruluş hesaplarını listeleyin.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w giriş
#iki) Bir Kuruluşu Güncelleyin.
curl -X YAMA -u: -d “{” ad ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” e-posta ”: ” vniranjan72 @ outlook .com ”, ” konum ”: ” Bangalore ”, ” ”açıklama ”: ”Kuruluş ayrıntılarını güncelleme ”} ”https://api.github.com/orgs/
Şubeler
# 1) Bir kullanıcı havuzundaki dalları listeleyin. Komut, bir depodaki tüm dalları listeleyecektir.
curl -X GET -u: https://api.github.com/repos///branches | grep -w adı
#iki) Bir kullanıcı havuzundaki tüm korunan dalları listeleyin.
curl -X GET -u: https://api.github.com/repos///branches ? korumalı = doğru | grep -w adı
# 3) Bir kullanıcı havuzundaki tüm korumasız dalları listeleyin
curl -X GET -u: https://api.github.com/repos///branches ? korumalı = yanlış | grep -w adı
# 4) Dal Korumasını Kaldır.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Çekme Talepleri
# 1) Çekme isteklerini listeleyin.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w başlık
Durum parametresi için seçenekler şunlardır: Açık, Kapalı, Tümü.
#iki) Bir Çekme isteği oluşturun.
curl -X POST -u: -d “{” title ”: ” Harika özellik eklendi ”, ” gövde ”: ” Lütfen ana dala yapılan büyük değişikliği alın ”, ” head ”: ” Özellik ”, ” temel ”: ” ana ”}” https://api.github.com/repos///pulls

# 3) Oluşturulan Çekme isteklerinin sayısını listeleyin.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w sayısı
# 4) Çekme isteği gövdesini veya başka bir parametreyi güncelleyin (Yalnızca maksimum 250 kaydetme).
curl -X PATCH -u: -d '{' body ': ' Özellik dalında yapılan büyük değişikliği ana dala çekmek zorunludur '}' https://api.github.com/repos///pulls / 31
# 5) Çekme isteği taahhütlerini listeleyin.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Çekme isteği dosyalarını listeleyin (Yalnızca maksimum 300 dosya).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w dosya adı
# 7) Çekme isteğini birleştirme.
curl -X PUT -u: -d '{' commit_message ': ' İyi Teslim '}' https://api.github.com/repos///pulls/31 /Git
Birleştirilmişse yanıt
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Birleştirilmiş': doğru,
'Message': 'Çekme İsteği başarıyla birleştirildi'
}
Çekme isteği birleştirilemezse yanıt
{
'Mesaj': 'Çekme İsteği birleştirilemez',
'Document_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
}
Etiketler, Dönüm Noktaları ve Sorunlar
Etiketler
# 1) Bir depodaki tüm etiketleri listeleyin.
curl -X GET -u: https://api.github.com/repos///labels | grep -w adı
#iki) Bilgi havuzundaki belirli bir etiketi listeleyin.
curl -X GET -u: https://api.github.com/repos///labels / böcek
# 3) Bir etiket oluşturmak için.
curl -X POST -u: -d '{' isim ': ' kusur ', ' açıklama ': ' Kusur oluşturmak için ', ' renk ': ' ff493b '}' https://api.github.com/repos///labels
İçin onaltılı renk kodu renk parametre buradan ayarlanabilir Renkli onaltılık
# 4) Etiketi güncelle
curl -X YAMA -u: -d “{” renk ”: ” 255b89 ”}” https://api.github.com/repos///labels / defect
# 5) Etiketi sil
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Sorunlar
# 6) Bir arşivdeki belirli bir sorunu listeleyin.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w başlık
# 7) Arşivdeki tüm sorunları listeleyin.
curl -X GET -u: https://api.github.com/repos///issues | grep -w başlık
# 8) Bir sorun oluşturun.
curl -X POST -u: -d “{” title ”: ” Yeni karşılama sayfası ”, ” gövde ”: ” Yeni bir sayfa tasarlamak için ”, ” etiketler ”: (” geliştirme ”), ” kilometre taşı ”: ” 3 ”, ” atananlar ”: (” ”, ”
Yukarıdaki komutta, etiketler ve atananlar parametreler, birden çok değerin sağlanabildiği dizeler dizisidir. Durum parametresinin değeri de olacaktır açık veya kapalı.
# 9) Bir soruna bir etiket ekleyin.
curl -X POST -u: -d '{' etiketler ': (' geliştirme ')}' https://api.github.com/repos///issues / 30 / etiketler
# 10) Bir sorunu düzenleyin ve parametreleri güncelleyin Örneğin, Etiketler.
curl -X YAMA -u: -d '{' etiketler ': (' hata ', ' geliştirme ')}' https://api.github.com/repos///issues / 30
Yukarıdaki komutta, 30 numaralı yayın için etiketleri güncelleyin.
#eleven) Belirli bir sorundan bir etiketi kaldırın.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Belirli bir sorundan TÜM etiketleri kaldırın.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
varsayılan ağ geçidi mevcut değil Windows 10 düzeltme
Kilometre taşları
# 13) Tüm Dönüm Noktalarını listeleyin.
curl -X GET -u: -d '{' durum ': (' aç ')}' https://api.github.com/repos///milestones | grep -w başlık
# 14) Belirli bir Kilometre Taşının ayrıntılarını listeleyin.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w başlık
# onbeş) Bir Dönüm Noktası oluşturun.
curl -X POST -u: -d '{' başlık ': ' R5 ', ' durum ': ' açık ', ' açıklama ': ' Aşama R5 ', ”Bitiş_sonu ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milestones
Yukarıdaki komutta bitiş_ bir zaman damgasıdır ISO 8601 içinde YYYY-AA-GGTHH: MM: SSZ biçim. Bununla ilgili daha fazla bilgi bulunabilir @ ISO 8601
# 16) Bir Dönüm Noktasını güncelleyin.
curl -X YAMA -u: -d '{' durum ': ' kapalı '}' https://api.github.com/repos///milestones / 3
# 17) Bir Kilometre Taşını silin.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Takımlar
# 1) Bir organizasyondaki Takımları listeleyin.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w adı
Takım kimliğine göre listele
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#iki) Takımları kullanıcıya göre listeleyin.
curl -X GET -u: https://api.github.com/user/teams | grep -w adı
# 3) Bir Ekip oluşturun, üyeler ekleyin ve ekibe depo ekleyin.
curl -X POST -u: -d “{” ad ”: ” ”, ” açıklama ”: ” Kısa açıklama girin ”, ” bakımcılar ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Takım adını ve açıklamasını düzenleyin.
curl -X PATCH -u: -d '{' isim ': ' Yeni Takım Adı ', ' açıklama ': ' Son Açıklama '}' https://api.github.com/teams/
Ekip Kimliği, 1. adımdaki komut çalıştırılarak alınabilir.
# 5) Mevcut bir ekibe bir havuz ekleyin ..
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Depoyu bir ekipten kaldırın.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Bir takımı silin.
curl -X DELETE -u: https://api.github.com/teams/
Havuzları, Kodu, Sorunları Ara
Search API, herhangi bir öğeyi aramaya izin verir.
# 1) Örneğin, belirli bir kullanıcının sahip olduğu tüm depoları aramak istiyorsanız.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w 'ad'
Gerekli parametre ne Github'da belirli bir alanda aramayı sınırlandırmak için anahtar kelimeler ve niteleyicilerden oluşan arama kriterlerini içeren.
#iki) README dosyasında V ve Niranjan kelimelerini içeren belirli bir kullanıcıya ait tüm depoları arayın
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w adı
# 3) Bir dosyanın içeriğinde bir anahtar sözcük arayın. Aşağıdaki örnekte, bir kullanıcının sahip olduğu bilgi havuzundaki bir dosyada 'Sistem' ve 'addEmployee' anahtar kelimelerini arayın.
curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w adı
# 4) Açık sayılarda 'hoş geldiniz' anahtar kelimesini arayın ve geliştirme olarak etiketleyin.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Kapalı sorunlar içinde 'adres' anahtar kelimesini arayın ve geliştirme olarak etiketleyin.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Salıverme
# 1) Arşivdeki sürümleri etiket adına ve kimliğine göre listeleyin.
curl -X GET -u: https://api.github.com/repos///releases | grep -w etiket_adı
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#iki) Tek bir sürümün ayrıntılarını alın.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w etiket_adı
curl -X GET -u: https://api.github.com/repos///releases / | grep -w vücut
curl -X GET -u: https://api.github.com/repos///releases / | grep -w adı
# 3) EN SON sürümün ayrıntılarını alın.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w etiket_adı
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w adı
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w vücut
# 4) Etiketle sürüm ayrıntılarını alın.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w adı
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w vücut
# 5) Bir sürüm oluşturun.
curl -X POST -u: -d “{” etiket_adı ”: ” R3.0 ”, ” target_commitish ”: ” ana ”, ” ad ”: ” Sürüm 3.0 ”, 'Body ': 'Bu, ürünün ', 'taslak ': 'yanlış', 'ön sürüm ': 'yanlış'} 'Sürüm 3.0'ı içindir https://api.github.com/repos//
Not:Bir sürüm oluşturma komutunda 'taslak' ve 'ön sürüm' parametreleri Boole değerlerini alır. 'Yazmadan doğru veya yanlış girin.
- Taslak değeri false, yayınlanan yayının oluşturulduğu ve doğrusu bu yayınlanmamış bir sürüm olduğu anlamına gelir.
- Ön sürüm false, tam sürüm olduğu anlamına gelir. Gerçek değer, bunun bir ön sürüm olduğu anlamına gelir.
# 6) Sürümü düzenleyin veya güncelleyin.
curl -X PATCH-u: -d “{” etiket_adı ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Sürümü silin.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Sürüm için varlıkları listeleyin.
curl -X DELETE-u: https://api.github.com/repos//
Sonuç
Bu GitHub REST API eğiticisinde, verileri GET, PUT, POST, PATCH, DELETE için çeşitli işlemler için REST API’lerinin nasıl kullanılabileceğini gördük.
REST API’lerinin doğrudan GitHub.com ile çalışması için kullanılan URL https://api.github.com'dur. Oysa ekipler kuruluşlarında GitHub kurumsal kullanıyorsa, REST API ile kullanılacak URL https: /// api / v3 olacaktır.
Bu serideki tüm eğitimler, geliştirici perspektifinden GitHub kullanımına ve yerel olarak değil, doğrudan GitHub üzerinde çeşitli yapı türlerinin sürüm kontrolü için bir ekipte çalışırken en iyi işbirliği uygulamalarına odaklandı.
Yaklaşan eğitimimiz, bir geliştiricinin Git İstemcisi arayüzlerini kullanarak GitHub'dan klonlanan yerel bir depoda çevrimdışı olarak nasıl çalışacağına odaklanacak. GitHub Masaüstü ve Kaplumbağa ve değişiklikleri uzak depoya geri itin.
=> GitHub'ı Sıfırdan Öğrenmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- Rest API Eğiticisi: REST API Mimarisi ve Kısıtlamaları
- Rest API Yanıt Kodları ve Dinlenme Talep Türleri
- Geliştiriciler İçin GitHub Eğitimi | GitHub Nasıl Kullanılır
- BDD Yaklaşımı Kullanılarak Salatalık ile REST API Testi
- 2021'deki En İyi 10 API Test Aracı (SOAP ve REST API Test Araçları)
- Spring RestTemplate ve TestNG ile REST API Testi
- Huzurlu ve Jenkins Kullanarak API İsteklerini Otomatikleştirme
- Parasoft SOAtest Eğitimi: Komut Dosyasız API Test Aracı