This repository has no description
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}