Managing repos

Deploy keys, webhooks & mirrors

Features that connect a repo to servers, other services, and automation. All live in repo Settings (Maintainer role and above).

Deploy keys

An SSH key for one repo for servers or scripts โ€” tied to no one's account.

  • Read-only by default (clone & pull). Tick Allow push if the server must push.
  • Protected branches still apply.
# on the server
ssh-keygen -t ed25519 -f ~/.ssh/deploy_nama-repo -N ""
cat ~/.ssh/deploy_nama-repo.pub   # paste into Settings โ†’ Deploy keys

Webhooks

Lumbung sends a JSON POST to your URL whenever a selected event happens: Push, Tag, Issues, Merge requests, Comments.

Header Contents
X-Lumbung-Event event type (dorong, isu, mr, โ€ฆ)
X-Lumbung-Delivery unique delivery id
X-Lumbung-Signature sha256= + HMAC of the body with your secret

Verifying the signature (Ruby):

expected = "sha256=" + OpenSSL::HMAC.hexdigest("SHA256", ENV["SECRET"], request.raw_post)
ok = Rack::Utils.secure_compare(expected, request.headers["X-Lumbung-Signature"])

Test sends a ping; History shows the last 50 deliveries with the server's response. Webhooks disable themselves after 10 consecutive failures. The URL must point to a public server.

Mirrors

  • Push โ€” every push to Lumbung is forwarded to another repo (e.g. a backup on GitHub).
  • Pull โ€” this repo becomes a read-only mirror of an outside source, synced every 30 minutes or via Sync now.

Enter the target provider's username & token (for GitHub: a fine-grained token with Contents: Read and write). Tokens are stored encrypted and never shown again.

Rembug & Kala

  • Rembug channel โ€” issues & MRs open topics in the chosen channel; pushes, comments, approvals, and merges are reported there.
  • Kala โ€” assigned issues become tasks in the assignee's Kala (see Issues).