This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

lexicons: new `git.merge*` method schema

Signed-off-by: Seongmin Lee <git@boltless.me>

author
Seongmin Lee
date (Jul 26, 2026, 3:18 AM +0900) commit a86f427a parent 8c8ed4ea change-id qnrnuyzl
+319 -1
+17
api/tangled/gitdefs.go
··· 1 + // Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. 2 + 3 + package tangled 4 + 5 + // schema: sh.tangled.git.defs 6 + 7 + const () 8 + 9 + // GitDefs_Signature is a "signature" in the sh.tangled.git.defs schema. 10 + type GitDefs_Signature struct { 11 + // email: Person email 12 + Email string `json:"email" cborgen:"email"` 13 + // name: Person name 14 + Name string `json:"name" cborgen:"name"` 15 + // when: Timestamp of the signature 16 + When string `json:"when" cborgen:"when"` 17 + }
+59
api/tangled/gitmergeCheck.go
··· 1 + // Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. 2 + 3 + package tangled 4 + 5 + // schema: sh.tangled.git.mergeCheck 6 + 7 + import ( 8 + "context" 9 + 10 + "github.com/bluesky-social/indigo/lex/util" 11 + ) 12 + 13 + const ( 14 + GitMergeCheckNSID = "sh.tangled.git.mergeCheck" 15 + ) 16 + 17 + // GitMergeCheck_ConflictInfo is a "conflictInfo" in the sh.tangled.git.mergeCheck schema. 18 + type GitMergeCheck_ConflictInfo struct { 19 + // filename: Name of the conflicted file 20 + Filename string `json:"filename" cborgen:"filename"` 21 + // reason: Reason for the conflict 22 + Reason string `json:"reason" cborgen:"reason"` 23 + } 24 + 25 + // GitMergeCheck_Input is the input argument to a sh.tangled.git.mergeCheck call. 26 + type GitMergeCheck_Input struct { 27 + // branch: Target branch to merge into 28 + Branch string `json:"branch" cborgen:"branch"` 29 + // repo: DID of Git repository 30 + Repo string `json:"repo" cborgen:"repo"` 31 + Source *GitMergeCheck_Input_Source `json:"source" cborgen:"source"` 32 + } 33 + 34 + type GitMergeCheck_Input_Source struct { 35 + // commit: Head commit ID of PR to merge 36 + Commit string `json:"commit" cborgen:"commit"` 37 + // repo: DID of source git repository 38 + Repo string `json:"repo" cborgen:"repo"` 39 + } 40 + 41 + // GitMergeCheck_Output is the output of a sh.tangled.git.mergeCheck call. 42 + type GitMergeCheck_Output struct { 43 + // conflicts: List of files with merge conflicts 44 + Conflicts []*GitMergeCheck_ConflictInfo `json:"conflicts,omitempty" cborgen:"conflicts,omitempty"` 45 + // isConflicted: Whether the merge has conflicts 46 + IsConflicted bool `json:"isConflicted" cborgen:"isConflicted"` 47 + // message: Additional message about the merge check 48 + Message *string `json:"message,omitempty" cborgen:"message,omitempty"` 49 + } 50 + 51 + // GitMergeCheck calls the XRPC method "sh.tangled.git.mergeCheck". 52 + func GitMergeCheck(ctx context.Context, c util.LexClient, input *GitMergeCheck_Input) (*GitMergeCheck_Output, error) { 53 + var out GitMergeCheck_Output 54 + if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.git.mergeCheck", nil, input, &out); err != nil { 55 + return nil, err 56 + } 57 + 58 + return &out, nil 59 + }
+53
api/tangled/gitmergeCommit.go
··· 1 + // Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. 2 + 3 + package tangled 4 + 5 + // schema: sh.tangled.git.mergeCommit 6 + 7 + import ( 8 + "context" 9 + 10 + "github.com/bluesky-social/indigo/lex/util" 11 + ) 12 + 13 + const ( 14 + GitMergeCommitNSID = "sh.tangled.git.mergeCommit" 15 + ) 16 + 17 + // GitMergeCommit_Input is the input argument to a sh.tangled.git.mergeCommit call. 18 + type GitMergeCommit_Input struct { 19 + // mergeCommit: Merge commit content. Used when merge commit is created. 20 + MergeCommit *GitMergeCommit_Input_MergeCommit `json:"mergeCommit,omitempty" cborgen:"mergeCommit,omitempty"` 21 + Source *GitMergeCommit_Input_Source `json:"source" cborgen:"source"` 22 + Style string `json:"style" cborgen:"style"` 23 + Target *GitMergeCommit_Input_Target `json:"target" cborgen:"target"` 24 + } 25 + 26 + // Merge commit content. Used when merge commit is created. 27 + type GitMergeCommit_Input_MergeCommit struct { 28 + Author *GitDefs_Signature `json:"author,omitempty" cborgen:"author,omitempty"` 29 + Message *string `json:"message,omitempty" cborgen:"message,omitempty"` 30 + } 31 + 32 + type GitMergeCommit_Input_Source struct { 33 + // commit: Head commit ID to merge 34 + Commit string `json:"commit" cborgen:"commit"` 35 + // repo: DID of source git repository 36 + Repo string `json:"repo" cborgen:"repo"` 37 + } 38 + 39 + type GitMergeCommit_Input_Target struct { 40 + // branch: Target branch to merge into 41 + Branch string `json:"branch" cborgen:"branch"` 42 + // repo: DID of target git repository 43 + Repo string `json:"repo" cborgen:"repo"` 44 + } 45 + 46 + // GitMergeCommit calls the XRPC method "sh.tangled.git.mergeCommit". 47 + func GitMergeCommit(ctx context.Context, c util.LexClient, input *GitMergeCommit_Input) error { 48 + if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.git.mergeCommit", nil, input, nil); err != nil { 49 + return err 50 + } 51 + 52 + return nil 53 + }
+25
lexicons/git/defs.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.defs", 4 + "defs": { 5 + "signature": { 6 + "type": "object", 7 + "required": ["name", "email", "when"], 8 + "properties": { 9 + "name": { 10 + "type": "string", 11 + "description": "Person name" 12 + }, 13 + "email": { 14 + "type": "string", 15 + "description": "Person email" 16 + }, 17 + "when": { 18 + "type": "string", 19 + "format": "datetime", 20 + "description": "Timestamp of the signature" 21 + } 22 + } 23 + } 24 + } 25 + }
+96
lexicons/git/mergeCheck.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.mergeCheck", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Check if a merge is possible between two branches. Performs 3-way merge check", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": ["repo", "branch", "source"], 13 + "properties": { 14 + "repo": { 15 + "type": "string", 16 + "format": "did", 17 + "description": "DID of Git repository" 18 + }, 19 + "branch": { 20 + "type": "string", 21 + "description": "Target branch to merge into" 22 + }, 23 + "source": { 24 + "type": "object", 25 + "required": ["repo", "commit"], 26 + "properties": { 27 + "repo": { 28 + "type": "string", 29 + "format": "did", 30 + "description": "DID of source git repository" 31 + }, 32 + "commit": { 33 + "type": "string", 34 + "description": "Head commit ID of PR to merge" 35 + } 36 + } 37 + } 38 + } 39 + } 40 + }, 41 + "output": { 42 + "encoding": "application/json", 43 + "schema": { 44 + "type": "object", 45 + "required": ["isConflicted"], 46 + "properties": { 47 + "isConflicted": { 48 + "type": "boolean", 49 + "description": "Whether the merge has conflicts" 50 + }, 51 + "conflicts": { 52 + "type": "array", 53 + "description": "List of files with merge conflicts", 54 + "items": { 55 + "type": "ref", 56 + "ref": "#conflictInfo" 57 + } 58 + }, 59 + "message": { 60 + "type": "string", 61 + "description": "Additional message about the merge check" 62 + } 63 + } 64 + } 65 + }, 66 + "errors": [ 67 + { 68 + "name": "InvalidRequest", 69 + "description": "Invalid request parameters" 70 + }, 71 + { 72 + "name": "RepoNotFound", 73 + "description": "Repo is not registered on this knot" 74 + }, 75 + { 76 + "name": "CommitNotFound", 77 + "description": "Commit is not found from source Repo" 78 + } 79 + ] 80 + }, 81 + "conflictInfo": { 82 + "type": "object", 83 + "required": ["filename", "reason"], 84 + "properties": { 85 + "filename": { 86 + "type": "string", 87 + "description": "Name of the conflicted file" 88 + }, 89 + "reason": { 90 + "type": "string", 91 + "description": "Reason for the conflict" 92 + } 93 + } 94 + } 95 + } 96 + }
+68
lexicons/git/mergeCommit.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.mergeCommit", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Merge a commit into repository's branch", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": ["target", "source", "style"], 13 + "properties": { 14 + "target": { 15 + "type": "object", 16 + "required": ["repo", "branch"], 17 + "properties": { 18 + "repo": { 19 + "type": "string", 20 + "format": "did", 21 + "description": "DID of target git repository" 22 + }, 23 + "branch": { 24 + "type": "string", 25 + "description": "Target branch to merge into" 26 + } 27 + } 28 + }, 29 + "source": { 30 + "type": "object", 31 + "required": ["repo", "commit"], 32 + "properties": { 33 + "repo": { 34 + "type": "string", 35 + "format": "did", 36 + "description": "DID of source git repository" 37 + }, 38 + "commit": { 39 + "type": "string", 40 + "description": "Head commit ID to merge" 41 + } 42 + } 43 + }, 44 + "style": { 45 + "type": "string", 46 + "enum": [ 47 + "rebase", 48 + "merge", 49 + "rebase-merge", 50 + "squash-rebase", 51 + "squash-rebase-merge", 52 + "fast-forward-only" 53 + ] 54 + }, 55 + "mergeCommit": { 56 + "type": "object", 57 + "description": "Merge commit content. Used when merge commit is created.", 58 + "properties": { 59 + "author": { "type": "ref", "ref": "sh.tangled.git.defs#signature" }, 60 + "message": { "type": "string", "maxLength": 1000000 } 61 + } 62 + } 63 + } 64 + } 65 + } 66 + } 67 + } 68 + }
+1 -1
lexicons/repo/merge.json
··· 4 4 "defs": { 5 5 "main": { 6 6 "type": "procedure", 7 - "description": "Merge a patch into a repository branch", 7 + "description": "DEPRECATED: Merge a patch into a repository branch", 8 8 "input": { 9 9 "encoding": "application/json", 10 10 "schema": {