Tangled Pull Request
kind: tangled/pullrequest
On this page
Description
The actions section describes the Tangled Pull Requests that updatecli is expected to open (or update) when the manifest is applied.
Tangled pull requests are atproto records (sh.tangled.repo.pull) written on the author’s Personal Data Server (PDS). The plugin:
Resolves the target repository DID by reading the
repoDidfield of the matchingsh.tangled.reporecord on the owner’s PDS (or uses the explicitrepoDidfrom the action spec when set). The appview indexes pull request records by this knot-minted DID, not by the owner DID.Lists existing
sh.tangled.repo.pullrecords on the author’s PDS, cross-references them againstsh.tangled.repo.pull.statusrecords, and skips creation only when an open pull request already targets the same source/target branch pair. Closed or merged pulls do not block creation of a replacement.Runs
git format-patch <target>..<source>inside the scm working directory and gzip-compresses the resulting patch.Uploads the gzipped patch as an atproto blob via
com.atproto.repo.uploadBlob.Writes the
sh.tangled.repo.pullrecord viacom.atproto.repo.putRecord.
Authentication uses an atproto app password against the configured PDS (defaults to https://bsky.social; override with pds when your account lives elsewhere). Generate the app password from your PDS’s web UI — never paste your account password into the manifest.
Parameters
| Name | Type | Description | Required |
|---|
Example
# updatecli.yaml
# updatecli.yaml
# updatecli diff --config updatecli.yaml
#
name: Show Tangled pipeline example
scms:
tangled:
kind: tangled
spec:
owner: alice.tangled.sh
repository: updatecli-mirror
branch: main
handle: alice.tangled.sh
appPassword: '{{ requiredEnv "TANGLED_APP_PASSWORD" }}'
# Sources are responsible to fetch information from third location such as npm registry.
sources:
updatecli:
name: Get latest axios version
kind: npm
spec:
name: axios
# Targets are responsible to update targeted files such as a yaml file.
targets:
npm:
name: Update e2e test file
kind: yaml
sourceid: updatecli
scmid: tangled
spec:
file: e2e/updatecli.d/success.d/npm.yaml
key: $.conditions.axios.spec.version
# Actions such as tangled/pullrequest are triggered when a target is updated.
actions:
default:
kind: tangled/pullrequest
scmid: tangled
title: Bump axios version