Membuat repo di GitHub lewat konsol – tanpa ditanya password


Masih berhubungan dengan tulisan sebelumnya. Seperti dijelaskan, saya kebagian tugas untuk melakukan migrasi repo dari bzr ke GitHub. Menggunakan skrip, pekerjaan memindahkan repo ternyata lebih cepat dan mudah. Namun ada satu masalah: Saya masih harus buat manual repo dari peramban. Apa bisa buat repo langsung dari terminal?

Dari hasil googling, skrip shell untuk membuat repo GitHub dari terminal adalah sebagai berikut:

#!/bin/sh

repo_name=$1

test -z $repo_name && echo "Repo name required." 1>&2 && exit 1

curl -u 'NAMAUSER' https://api.github.com/user/repos -d "{\"name\":\"$repo_name\"}"

Waktu dites, ternyata berhasil. Hanya saja, dengan skrip ini kita tetap harus memasukkan password akun GitHub secara manual. Itu artinya sama saja bohong, karena jika mau dibuat otomatis, tiap mau bikin repo harus tetap memasukkan password. Mari googling lagi.

Dari hasil googling dan bertanya pada grup kingdom of Pegel, akhirnya dapat petunjuk, bahwa kita bisa menggunakan token sehingga tidak perlu lagi pakai password. Untuk membuat token pribadi, silakan ikuti langkah-langkah di situs resminya di sini.

Misalkan token yang dipunya seperti ini `initokennya1234567890`. Kita masukkan token ini dalam parameter di curl. Kalau menurut manualnya sih, bisa disimpan di parameter `-H “Authorization: token INITOKENNYA”` tapi sepertinya saya salah karena masih tetap ditanya password. Tapi dari petunjuk lainnya, ternyata bisa juga disimpan di parameter -u. Hasilnya jadi seperti ini:

#!/bin/sh

repo_name=$1

test -z $repo_name && echo "Repo name required." 1>&2 && exit 1

curl -u 'NAMAUSER:initokennya1234567890' https://api.github.com/user/repos -d "{\"name\":\"$repo_name\"}"

Cara penggunaannya pun mudah. Di terminal, cukup ketik `sh skripnya.sh NAMAREPO`. Misalnya nama reponya repocli, maka di terminal:

$ sh skripnya.sh repocli

Jika tidak ada halangan, seharusnya nanti keluaran berupa json yang menandakan kita berhasil membuat repo tersebut. Contohnya seperti ini:

{
  "id": idnyaberapagitu,
  "name": "repocli",
  "full_name": "hahn/repocli",
  "owner": {
    "login": "hahn",
    "id": dinyalagiberapagitu,
    "avatar_url": "https://avatars3.githubusercontent.com/u/315048?v=3",
    "gravatar_id": "",
    "url": "https://api.github.com/users/hahn",
    "html_url": "https://github.com/hahn",
    "followers_url": "https://api.github.com/users/hahn/followers",
    "following_url": "https://api.github.com/users/hahn/following{/other_user}",
    "gists_url": "https://api.github.com/users/hahn/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/hahn/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/hahn/subscriptions",
    "organizations_url": "https://api.github.com/users/hahn/orgs",
    "repos_url": "https://api.github.com/users/hahn/repos",
    "events_url": "https://api.github.com/users/hahn/events{/privacy}",
    "received_events_url": "https://api.github.com/users/hahn/received_events",
    "type": "User",
    "site_admin": false
  },
  "private": false,
  "html_url": "https://github.com/hahn/repocli",
  "description": null,
  "fork": false,
  "url": "https://api.github.com/repos/hahn/repocli",
  ....
}

Selamat! Anda berhasil membuat repo dari terminal!

Sebentar… Itu kan untuk repo pribadi. Apa bisa buat repo untuk akun organisasi?
Tentu saja bisa. Menurut dokumentasi API GitHub, hanya perlu mengganti parameter `/user/repos` dengan alamat organisasi kita. Misalkan organisasinya blankon-packages, maka alamat curl-nya diubah menjadi seperti ini:

curl -u 'usernamenya:tokennya' https://api.github.com/orgs/blankon-packages/repos -d "{\"name\":\"$PKG_NAME\"}"

Selamat mencoba!


2 responses to “Membuat repo di GitHub lewat konsol – tanpa ditanya password”

    • kalau ga salah ga bisa pake ssh atau masalah apa gitu 😀
      lupa alasannya. lagian di dokumentasi APInya ga dibahas masalah ssh ini sih. jadi harus pake token. cmiiw

Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.