Commit8845b33aRecorded21 Mar 2026Repositoryfjo
Add repos rename command and fix sigil-log dependency
Message
New CLI command: fjo repos rename <owner> <repo> <new-name> New MCP tool: fjo/repos-rename
Also adds sigil-log as explicit dependency to fix bundle loading (transitive dep from sigil-mcp was not being included).
Changed
package.sgl | 1 +
src/fjo/main.sgl | 9 +++++++++
src/fjo/repos.sgl | 29 +++++++++++++++++++++++++++++
3 files changed, 39 insertions(+)Diff
package.sglmodified
@@ -45,6 +45,7 @@
45
(from-git url: sigil-repo package: "sigil-tls") 46
(from-git url: sigil-repo package: "sigil-http") 47
(from-git url: sigil-repo package: "sigil-mcp")+48
(from-git url: sigil-repo package: "sigil-log") 49
(from-git url: forgejo-repo package: "sigil-forgejo")) 50
51
tasks: (listsrc/fjo/main.sglmodified
@@ -40,6 +40,7 @@
40
(display " fjo repos list <org> List repos in org\n") 41
(display " fjo repos info <owner> <repo> Repo details\n") 42
(display " fjo repos create <org> <name> [desc] Create repo\n")+43
(display " fjo repos rename <owner> <repo> <new> Rename repo\n") 44
(display " fjo topics list <owner> <repo> List topics\n") 45
(display " fjo topics set <owner> <repo> <t>... Set topics\n") 46
(display " fjo topics add <owner> <repo> <topic> Add topic\n")@@ -81,6 +82,14 @@
82
(caddr rest) "") })) 83
(newline)) 84
+85
((and (string=? group "repos") (string=? cmd "rename")+86
(>= (length rest) 3))+87
(display (tool-repos-rename+88
#{ owner: (car rest)+89
repo: (cadr rest)+90
new_name: (caddr rest) }))+91
(newline))+92
93
;; topics 94
((and (string=? group "topics") (string=? cmd "list") 95
(>= (length rest) 2))src/fjo/repos.sglmodified
@@ -18,6 +18,7 @@
18
tool-repos-list 19
tool-repos-info 20
tool-repos-create+21
tool-repos-rename 22
tool-topics-list 23
tool-topics-set 24
tool-topics-add)@@ -51,6 +52,16 @@
52
(description . "Repository description"))))) 53
(required . ("org" "name")))) 54
+55
(define repos-rename-schema+56
'((type . "object")+57
(properties . ((owner . ((type . "string")+58
(description . "Repository owner (user or org)")))+59
(repo . ((type . "string")+60
(description . "Current repository name")))+61
(new_name . ((type . "string")+62
(description . "New repository name")))))+63
(required . ("owner" "repo" "new_name"))))+64
65
(define topics-list-schema 66
'((type . "object") 67
(properties . ((owner . ((type . "string")@@ -145,6 +156,18 @@
156
(string-append "Created repository " org "/" name ".\n" 157
"URL: " (dict-ref result html_url: "")))))) 158
+159
(define (tool-repos-rename args)+160
(let* ((owner (dict-ref args owner:))+161
(repo (dict-ref args repo:))+162
(new-name (dict-ref args new_name:)))+163
(guard (e (else+164
(string-append "Failed to rename repository: "+165
(exception-message e))))+166
(let ((result (forgejo-rename-repo (fjo-base-url) (fjo-token)+167
owner repo new-name)))+168
(string-append "Renamed " owner "/" repo " to " owner "/" new-name ".\n"+169
"URL: " (dict-ref result html_url: ""))))))+170
171
(define (tool-topics-list args) 172
(let* ((owner (dict-ref args owner:)) 173
(repo (dict-ref args repo:))@@ -194,6 +217,12 @@
217
repos-create-schema 218
tool-repos-create) 219
+220
(register server+221
"fjo/repos-rename"+222
"Rename a repository."+223
repos-rename-schema+224
tool-repos-rename)+225
226
(register server 227
"fjo/topics-list" 228
"List topics on a repository."