Sync third-party and MCP marketplace plugins

Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources.
Confidence: high
Scope-risk: narrow
Directive: Keep private/internal skills out of the public marketplace and preserve normal incremental market Git history.
Tested: Marketplace validation passed.
This commit is contained in:
KeyInfo Bot
2026-07-27 11:14:36 +08:00
parent ffd8a5adab
commit a202b5a179
3 changed files with 29 additions and 9 deletions
+4
View File
@@ -279,6 +279,10 @@
"pluginName": "shadcn", "pluginName": "shadcn",
"category": "Developer Tools", "category": "Developer Tools",
"skillPath": "skills/shadcn", "skillPath": "skills/shadcn",
"sparseCheckout": [
"skills/shadcn",
"LICENSE.md"
],
"brandColor": "#09090B", "brandColor": "#09090B",
"manifestOverrides": { "manifestOverrides": {
"version": "0.1.0", "version": "0.1.0",
@@ -3,5 +3,5 @@
"name": "playwright浏览器自动化操作", "name": "playwright浏览器自动化操作",
"version": "20260605", "version": "20260605",
"keySource": "none", "keySource": "none",
"syncedAt": "2026-07-27T03:12:39Z" "syncedAt": "2026-07-27T03:14:35Z"
} }
+20 -4
View File
@@ -627,14 +627,30 @@ function Get-Clone {
$sparseCheckout = @($Source.sparseCheckout) $sparseCheckout = @($Source.sparseCheckout)
} }
$cloneArgs += @($Source.repo, $clonePath) $cloneArgs += @($Source.repo, $clonePath)
Invoke-CheckedGit $cloneArgs $maxAttempts = 3
for ($attempt = 1; $attempt -le $maxAttempts; $attempt++) {
Remove-PathIfExists -Path $clonePath -Within $CloneRoot
$transportArgs = @()
if ($attempt -gt 1) {
$transportArgs = @("-c", "http.version=HTTP/1.1")
}
try {
Invoke-CheckedGit -GitArgs ($transportArgs + $cloneArgs)
if ($Source.ref) { if ($Source.ref) {
Invoke-CheckedGit @("-C", $clonePath, "fetch", "--depth", "1", "origin", $Source.ref) Invoke-CheckedGit -GitArgs ($transportArgs + @("-C", $clonePath, "fetch", "--depth", "1", "origin", $Source.ref))
Invoke-CheckedGit @("-C", $clonePath, "checkout", "FETCH_HEAD") Invoke-CheckedGit -GitArgs @("-C", $clonePath, "checkout", "FETCH_HEAD")
} }
if ($sparseCheckout.Count -gt 0) { if ($sparseCheckout.Count -gt 0) {
$sparseArgs = @("-C", $clonePath, "sparse-checkout", "set", "--no-cone") + $sparseCheckout $sparseArgs = @("-C", $clonePath, "sparse-checkout", "set", "--no-cone") + $sparseCheckout
Invoke-CheckedGit $sparseArgs Invoke-CheckedGit -GitArgs $sparseArgs
}
break
} catch {
if ($attempt -eq $maxAttempts) {
throw "Third-party source $($Source.id) clone failed after $maxAttempts attempts: $($_.Exception.Message)"
}
Start-Sleep -Seconds ([Math]::Pow(2, $attempt - 1))
}
} }
$commit = (git -C $clonePath rev-parse HEAD).Trim() $commit = (git -C $clonePath rev-parse HEAD).Trim()
return [ordered]@{ return [ordered]@{