olNGIb4NkK5r2x7x4oG3GpEzizVpnY6KNCck9cym

GitHub API Dengan Python & PowerShell Scripting


GitHub API Dengan Python & PowerShell Scripting

Menggunakan GitHub API dengan Python dan PowerShell Scripting untuk membuat dan mengelola repositori.


GitHub API adalah antarmuka yang disediakan oleh GitHub untuk developer yang ingin mengembangkan aplikasi yang menargetkan GitHub . Misalnya, Anda bisa membangun aplikasi dengan lebih banyak fungsionalitas atau lapisan presentasi yang lebih baik di atas API .

Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana menggunakan API GitHub untuk mengembangkan aplikasi python yang keren untuk membuat dan mengelola repositori GitHub.


Untuk membuat GUI, kita bisa menggunakan modul python Tkinter. Mari kita uji pengaturan API kita menggunakan perintah di bawah ini. Semua data dikirim dan diterima sebagai JSON.

curl https://api.github.com/zen


Responsnya akan berupa pilihan acak dari filosofi desain GitHub.

Buat Repositori Baru


Untuk membuat repositori baru dan mendorong file yang diperlukan ke dalam repositori itu, kita perlu mengambil input yang diperlukan dari pengguna dan memvalidasinya.


° Validasi Nama Pengguna GitHub - Seseorang dapat menemukan apakah Akun GitHub ada dengan nama pengguna tertentu atau tidak.
Kita perlu menggunakan titik akhir di bawah ini.

https://api.github.com/users/GitHub_Username

Jika pengguna ada itu mengembalikan kode status '200'. Dan kita bisa melihat hasilnya seperti gambar di bawah ini


Sekarang, ini dapat digunakan untuk membangun fungsi untuk memvalidasi apakah pengguna ada atau tidak.

# Github UserName Validation
def UserExist(UserName):
    if UserName == "":
        return False
    api_url = "https://api.github.com/users/" + UserName
    r=requests.get(api_url)
    
    if r.status_code == 200:
        d =json.loads(r.content.decode('utf-8'))
        try:
            if d['login']==UserName:
                return True
            else:
                return False
        except:
            return False
    else:
        return False  



Validasi Nama Pengguna GitHub

Jika nama pengguna tidak ada, kami dapat meminta pengguna untuk membuat akun GitHub. Jika ada, kita perlu memeriksa apakah repositori itu ada atau tidak.

Periksa apakah Repositori ada

Endpoint di bawah ini akan mengembalikan daftar repositori untuk nama pengguna tertentu dalam format JSON.

curl https://api.github.com/users/GitHub_UserName/repos

Responsnya akan seperti ini.


Untuk membuat repositori baru, kita perlu memeriksa bahwa nama repositori yang dimasukkan oleh pengguna tidak ada.

# Check if the RepoName exists
def RepoExist(UserName,RepoName):
    if RepoName == "" or len(RepoName.split())>1:
        return "Not A Valid Repo Name"
    api_url = "https://api.github.com/users/" + UserName +"/repos"
    r=requests.get(api_url)
    if r.status_code == 200:
        d =json.loads(r.content.decode('utf-8'))
        try:
            for i in d:
                if RepoName == i['name']:
                    return "Exist"
        except:
            return "Not Exist"
    return "Not Exist"

Periksa apakah repositori ada

Jika respon tidak mengembalikan kode status '200' itu menyatakan bahwa repositori publik untuk Akun GitHub tersebut tidak ada. Jadi kita baik-baik saja untuk membuat repositori.

Deskripsi - Ini adalah parameter opsional. Kami dapat menambahkan deskripsi ke repositori GitHub kami melalui API.


Jalur repositori - Untuk mendorong (mengunggah) file ke repositori, kita dapat meminta pengguna untuk jalur ke direktori. Ini bisa menjadi parameter opsional, secara default kita dapat mengambil jalur direktori saat ini.


Sekarang kita telah mendapatkan semua variabel yang diperlukan untuk membuat repositori baru dan mendorong file ke dalamnya. Untuk membuat repo GitHub, kita dapat menggunakan perintah di bawah ini

command = 'start /wait cmd /c curl -u '+UserName+' https://api.github.com/user/repos -d "{\\"name\\":\\"'+RepoName+'\\",\\"description\\":\\"'+Description+'\\"}"'
l = os.system(command)

Perintah untuk membuat repo GitHub

Setelah repositori dibuat, file dari jalur yang diberikan perlu diunggah. Untuk mencapai fungsionalitas ini kita dapat menggunakan skrip PowerShell.

Set-Location $RepoPath

# Initiating repo
$git_init = git init

# Adding files to staging area
$git_add = git add *

# Commit the changes
$git_commit = git commit -m "initial commit with GitLearn"

# adding a remote
$remote_add = git remote add origin https://github.com/$UserName/$RepoName.git

#pushing the contents to repo
$git_push = git push origin master

PowerShell Script untuk membuat repositori baru

Sekarang kita bisa mengeksekusi script dengan python seperti gambar di bawah ini,

p = subprocess.Popen(["powershell.exe","-ExecutionPolicy","Unrestricted","./scripts/gitplay.ps1",UserName,RepoName,newrepo,RepoPath],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
p.communicate()

Jalankan skrip PowerShell menggunakan Python

Anda dapat menemukan kode lengkap untuk skrip PowerShell di sini .

Mari kita coba dengan sebuah contoh,


Setelah mengirimkan detailnya, kita perlu memasukkan kata sandi untuk Akun GitHub itu.


Itu saja, repositori akan dibuat untuk kita dengan semua file yang diperlukan diunggah.


Kami juga dapat membuat repositori dengan perintah di bawah ini,

curl -u GitHub_UserName https://api.github.com/user/repos -d "{\"name\":\"Test-Repo\",\"description\":\"A Sample Description\"}"


Kita dapat menggunakan API GitHub di web atau aplikasi android kita juga. Berbagai parameter dapat diteruskan ke Root Endpoint untuk mendapatkan respons tertentu yang diperlukan untuk aplikasi kita saat ini. Anda dapat menemukan info lebih lanjut di sini .

Untuk mendownload seluruh aplikasi python klik disini.

Kode lengkapnya dapat ditemukan di GitHub di sini .

Kesimpulan

Kami telah melihat cara menggunakan GitHub API di aplikasi kami untuk membuat dan mengelola repositori. Sampai jumpa lagi dengan topik yang lebih menarik. Sampai saat itu tetap aman dan tinggal di rumah.

Source : https://medium.com/towards-artificial-intelligence/github-api-with-python-powershell-scripting-47d39b5d32d1
Related Posts

Related Posts

Posting Komentar