Tangled
Tangled scm
Description
The Tangled scm plugin is used to manage git repositories hosted on Tangled, an AT protocol based git host. Depending on the stage, it can be used for different purposes:
source: Retrieve data from a git repository, such as a file content
condition: Ensure data exist on a git repository, such as a file content
target: Ensure data is up to date on a git repository
Authentication
Tangled repositories live on knots (git servers) while pull request records are stored as atproto records on the author’s Personal Data Server (PDS, typically bsky.social).
Git clone happens over HTTPS against the knot
Git push happens over SSH — Tangled knots reject HTTPS pushes. Configure
cloneURLwith anssh://orgit@host:owner/repoform and rely on your SSH agent for credentials.Pull request creation uses an atproto app password against the user’s PDS (no token is sent to the knot itself).
Parameters
| Name | Type | Description | Required |
|---|
CommitMessage
Updatecli uses conventional commits as described on www.conventionalcommits.org.
| Name | Required | Default | Description |
|---|---|---|---|
type | chore | Specify commit type | |
scope | Specify commit scope | ||
footer | Specify commit footer message | ||
title | Override default body message | ||
hideCredit | Remove "Made with ❤️️ by updatecli" from commit message | ||
body | Override default body message |
GPG
Updatecli can sign commits using a private GPG key if configured accordingly.
| Name | Required | Default | Description |
|---|---|---|---|
signingkey | Defines the armored private gpg key | ||
password | Defines the gpg key password |
Example
# updatecli.yaml
---
name: Test Tangled scm
scms:
tangled:
kind: tangled
spec:
knot: knot.tangled.sh
owner: alice.tangled.sh
repository: updatecli-mirror
branch: main
# atproto app password is used to author pull request records on the user's PDS.
# Generate one from your Bluesky / Tangled account settings.
appPassword: '{{ requiredEnv "TANGLED_APP_PASSWORD" }}'
handle: alice.tangled.sh
# Optional: override the clone URL when pushing changes (push must use SSH).
cloneURL: git@knot.tangled.sh:alice.tangled.sh/updatecli-mirror
sources:
license:
name: Retrieve license file content
kind: file
scmid: tangled
spec:
file: LICENSE