From 3f7d6ca7ca7225af977176d978f23284f497622c Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Wed, 15 Jul 2026 12:13:17 -0400 Subject: [PATCH] knot: add repository write procedures --- knot/create_repo.go | 1 + knot/delete_repo.go | 23 +++++++++++++++++++++++ knot/merge.go | 22 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 knot/delete_repo.go create mode 100644 knot/merge.go diff --git a/knot/create_repo.go b/knot/create_repo.go index 5773ce1..402d85c 100644 --- a/knot/create_repo.go +++ b/knot/create_repo.go @@ -11,6 +11,7 @@ import ( type CreateRepoInput struct { Name string `json:"name"` Rkey string `json:"rkey"` + Source string `json:"source,omitempty"` DefaultBranch string `json:"defaultBranch,omitempty"` } diff --git a/knot/delete_repo.go b/knot/delete_repo.go new file mode 100644 index 0000000..5a87918 --- /dev/null +++ b/knot/delete_repo.go @@ -0,0 +1,23 @@ +package knot + +import ( + "context" + "fmt" + + "github.com/bluesky-social/indigo/atproto/syntax" +) + +// DeleteRepoInput is the argument to sh.tangled.repo.delete. +type DeleteRepoInput struct { + DID string `json:"did"` + Name string `json:"name"` + Rkey string `json:"rkey"` +} + +// DeleteRepo removes a repository from the knot. +func (c *Client) DeleteRepo(ctx context.Context, input DeleteRepoInput) error { + if err := c.Post(ctx, syntax.NSID("sh.tangled.repo.delete"), input, nil); err != nil { + return fmt.Errorf("delete repo on knot: %w", err) + } + return nil +} diff --git a/knot/merge.go b/knot/merge.go new file mode 100644 index 0000000..f992b26 --- /dev/null +++ b/knot/merge.go @@ -0,0 +1,22 @@ +package knot + +import ( + "context" + "fmt" + + "github.com/bluesky-social/indigo/atproto/syntax" +) + +// MergeInput is the argument to sh.tangled.repo.merge. +type MergeInput struct { + Repo string `json:"repo"` + Pull string `json:"pull"` +} + +// Merge applies a pull request on the knot. +func (c *Client) Merge(ctx context.Context, input MergeInput) error { + if err := c.Post(ctx, syntax.NSID("sh.tangled.repo.merge"), input, nil); err != nil { + return fmt.Errorf("merge pull request: %w", err) + } + return nil +} -- 2.51.2