49 lines
1.1 KiB
Plaintext
49 lines
1.1 KiB
Plaintext
@startuml
|
|
title Tool Registry Workflow
|
|
|
|
== A. Publishing a Tool ==
|
|
|
|
actor Developer as dev1
|
|
participant CLI as cli1
|
|
participant "API Server" as api1
|
|
participant Gitea as gitea1
|
|
|
|
dev1 -> cli1 : publish ./tool/
|
|
cli1 -> cli1 : validate locally
|
|
cli1 -> api1 : POST /tools
|
|
api1 -> gitea1 : Create branch
|
|
api1 -> gitea1 : Create PR
|
|
gitea1 --> api1 : PR URL
|
|
api1 --> cli1 : {"pr_url": "..."}
|
|
cli1 --> dev1 : "PR created, pending review"
|
|
|
|
== B. Installing a Tool ==
|
|
|
|
actor Developer as dev2
|
|
participant CLI as cli2
|
|
participant "API Server" as api2
|
|
participant "Local FS" as fs2
|
|
|
|
dev2 -> cli2 : install summarize
|
|
cli2 -> api2 : GET /tools/summarize
|
|
api2 --> cli2 : {config: "yaml..."}
|
|
cli2 -> fs2 : write config.yaml
|
|
cli2 -> fs2 : generate wrapper script
|
|
cli2 --> dev2 : "Installed summarize v1.2.0"
|
|
|
|
== C. Sync on Merge ==
|
|
|
|
actor Maintainer as maint
|
|
participant Gitea as gitea3
|
|
participant "API Server" as api3
|
|
participant Database as db3
|
|
|
|
maint -> gitea3 : Merge PR
|
|
gitea3 -> api3 : POST /webhook/gitea
|
|
api3 -> gitea3 : git pull
|
|
gitea3 --> api3 : (repo contents)
|
|
api3 -> api3 : parse tools/
|
|
api3 -> db3 : UPDATE tools
|
|
api3 -> db3 : rebuild search idx
|
|
|
|
@enduml |