TuBrief
구독 채널
비디오
커뮤니티

Hal yang Perlu Diketahui Saat Beralih dari GitHub ke Buzz dan Nostr

TuBrief 편집팀
2026년 8월 24일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Bahasa Indonesia한국어English中文EspañolالعربيةFrançaisDeutschहिन्दीРусский日本語Português

관련 영상

Aplikasi Baru Jack Dorsey Ingin Menggantikan GitHub (buzz)12:24

Aplikasi Baru Jack Dorsey Ingin Menggantikan GitHub (buzz)

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Hal yang Perlu Diketahui Saat Beralih dari GitHub ke Buzz dan Nostr

Ada saatnya Anda merasa tidak nyaman mendorong (push) kode ke repositori terpusat. Kebijakan sering berubah dan Anda tidak tahu di mana kode Anda digunakan. Bagi freelancer perorangan atau tim kecil, kedaulatan data adalah masalah kelangsungan hidup. Buzz dan protokol Nostr NIP-34 adalah alternatif realistis yang tidak bergantung pada satu perusahaan tunggal. Namun, ketika benar-benar ingin migrasi, rasanya membingungkan. Anda harus menyelesaikan prosedur, biaya, dan masalah keamanan sendiri.

Cara Migrasi Repositori Lama ke Buzz Tanpa Kehilangan Data (Lossless)

Jika Anda hanya mengetik git push --mirror, server akan menolaknya. Hal ini disebabkan oleh referensi internal GitHub yaitu refs/pull/*. Server target tidak akan menerima referensi tersembunyi tersebut. Agar dapat memindahkan kode tanpa konflik, Anda harus membuang referensi yang tidak perlu dan melakukan push secara eksplisit.

Anda perlu membuat bare repository di direktori sementara, menghapus referensi khusus GitHub, lalu mendorongnya ke endpoint Buzz. Jika ada file berukuran besar, objek LFS juga harus diurus secara terpisah.

`bash
#!/usr/bin/env bash
set -euo pipefail

GITHUB_REPO_URL="1"BUZZREMOTEURL="1" BUZZ_REMOTE_URL="1"BUZZR​EMOTEU​RL="2"
TEMP_DIR=$(mktemp -d -t buzz-migration-XXXXXX)

trap 'rm -rf "$TEMP_DIR"' EXIT

git clone --mirror "GITHUBREPOURL""GITHUB_REPO_URL" "GITHUBR​EPOU​RL""TEMP_DIR/bare_repo.git"
cd "$TEMP_DIR/bare_repo.git"

git for-each-ref --format='%(refname)' refs/pull/ | while read -r ref; do
git update-ref -d "$ref"
done

git remote add buzz "$BUZZ_REMOTE_URL"
git push --force --prune buzz "+refs/heads/:refs/heads/" "+refs/tags/:refs/tags/"

ROOT_COMMIT=(gitrev−list−−max−parents=0HEAD∣head−n1)echo"Migrasiselesai:RootCommitID((git rev-list --max-parents=0 HEAD | head -n 1) echo "Migrasi selesai: Root Commit ID ((gitrev−list−−max−parents=0HEAD∣head−n1)echo"Migrasiselesai:RootCommitID(ROOT_COMMIT)"

`

Menjalankan skrip ini akan menjaga riwayat komit tetap utuh 100%. Hash komit pertama menjadi pengenal unik dari proyek tersebut.

Item Perbandingan GitHub Buzz / Nostr NIP-34
Identifikasi Repositori Catatan DB server terpusat (org/repo) ID komit pertama & ID event Nostr
Metode Autentikasi OAuth, PAT, SSH Key Tanda tangan asimetris kurva eliptik secp256k1
Pertukaran Patch API khusus GitHub Event patch NIP-34 (kind: 1617)

Identitas Kriptografi Berbasis Nostr dan Integrasi Agen

Dalam ekosistem Nostr, baik manusia maupun agen AI adalah entitas kriptografi yang sama. Mereka saling mengautentikasi menggunakan kunci publik 32-byte dan tanda tangan Schnorr. Menyimpan kunci rahasia di dalam kode akan langsung berujung pada insiden keamanan. Anda harus menyimpannya hanya di memori melalui variabel lingkungan atau menggunakan penanda tangan jarak jauh (remote signer).

Untuk memastikan patch yang dikirim oleh agen tidak dimodifikasi di tengah jalan, Anda harus memverifikasi hash serialisasi NIP-01.

`python
import json
import hashlib
from coincurve import PrivateKey

def create_signed_agent_event(secret_key_hex: str, kind: int, content: str, tags: list) -> dict:
sk = PrivateKey.from_hex(secret_key_hex)
pubkey_hex = sk.public_key.format(compressed=True)[1:].hex()
created_at = 1710000000

serialized_data = json.dumps(
    [0, pubkey_hex, created_at, kind, tags, content],
    separators=(',', ':'),
    ensure_ascii=False
)

event_id = hashlib.sha256(serialized_data.encode('utf-8')).hexdigest()
sig_hex = sk.schnorr_sign(bytes.fromhex(event_id), None, raw=True).hex()

return {
    "id": event_id,
    "pubkey": pubkey_hex,
    "created_at": created_at,
    "kind": kind,
    "tags": tags,
    "content": content,
    "sig": sig_hex
}

def verify_agent_event(event: dict) -> bool:
preimage = [0, event["pubkey"], event["created_at"], event["kind"], event["tags"], event["content"]]
serialized = json.dumps(preimage, separators=(',', ':'), ensure_ascii=False)
computed_id = hashlib.sha256(serialized.encode('utf-8')).hexdigest()
return computed_id == event["id"]

`

Ketika Anda perlu mengirim dan menerima kode secara rahasia, gunakan spesifikasi NIP-44 v2 untuk mengenkripsi menggunakan ChaCha20.

Manajemen Biaya Otomatisasi Multi-Agen

Jika Anda menyerahkan pembuatan kode kepada agen, mereka akan terjebak dalam lingkaran perbaikan mandiri dan menghabiskan token dalam sekejap. Semakin banyak catatan kegagalan yang menumpuk, konteks akan semakin tercemar dan biaya akan meroket. Untuk mencegahnya, Anda harus menerapkan batasan di tingkat proxy.

Letakkan LiteLLM proxy di depan dan batasi anggaran harian serta kecepatan per unit kunci virtual.

`bash
curl -X POST 'http://localhost:4000/key/generate'
-H 'Authorization: Bearer sk-master-key-1234'
-H 'Content-Type: application/json'
-d '{
"key_alias": "auto-coder-agent-01",
"max_budget": 5.0,
"budget_duration": "1d",
"tpm_limit": 50000,
"rpm_limit": 30,
"models": ["agent-code-model"]
}'

`

Jika anggaran harian melebihi 5 dolar, sistem akan langsung mengeluarkan galat (error) dan berhenti. Perketat juga anggaran seluruh tim dengan file konfigurasi.

`yaml
model_list:

  • model_name: agent-code-model
    litellm_params:
    model: openai/gpt-4o
    api_key: os.environ/OPENAI_API_KEY

litellm_settings:
max_budget: 100.0
budget_duration: "30d"

default_team_settings:

  • team_id: "decentralized-dev-team"
    max_budget: 20.0
    budget_duration: "1d"

`

Anda juga harus berhenti memasukkan seluruh kode ke dalam konteks. Gunakan Tree-Sitter untuk memotong dan mengirimkan hanya signature fungsi yang diperlukan serta area di sekitar hunk yang diubah guna mengurangi pemborosan token. Menggunakan metode ini akan mengurangi pemanggilan alat (tool calls) yang tidak perlu hingga lebih dari separuhnya.