mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
feat: Add plugin share checkout (#22435)
Adds plugin/share/checkout to turn a shared remote plugin into a local working copy under ~/plugins/<name>. Registers the copy in the managed personal marketplace and records the remote-to-local mapping for later share/save flows. --------- Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
@@ -2987,6 +2987,52 @@ fn plugin_share_params_and_response_serialization_use_camel_case_fields() {
|
||||
PluginShareListParams {},
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
serde_json::to_value(PluginShareCheckoutParams {
|
||||
remote_plugin_id: "plugins~Plugin_00000000000000000000000000000000".to_string(),
|
||||
})
|
||||
.unwrap(),
|
||||
json!({
|
||||
"remotePluginId": "plugins~Plugin_00000000000000000000000000000000",
|
||||
}),
|
||||
);
|
||||
|
||||
let plugin_path = if cfg!(windows) {
|
||||
r"C:\Users\me\plugins\gmail"
|
||||
} else {
|
||||
"/Users/me/plugins/gmail"
|
||||
};
|
||||
let plugin_path = AbsolutePathBuf::try_from(PathBuf::from(plugin_path)).unwrap();
|
||||
let plugin_path_json = plugin_path.as_path().display().to_string();
|
||||
let marketplace_path = if cfg!(windows) {
|
||||
r"C:\Users\me\.agents\plugins\marketplace.json"
|
||||
} else {
|
||||
"/Users/me/.agents/plugins/marketplace.json"
|
||||
};
|
||||
let marketplace_path = AbsolutePathBuf::try_from(PathBuf::from(marketplace_path)).unwrap();
|
||||
let marketplace_path_json = marketplace_path.as_path().display().to_string();
|
||||
assert_eq!(
|
||||
serde_json::to_value(PluginShareCheckoutResponse {
|
||||
remote_plugin_id: "plugins~Plugin_00000000000000000000000000000000".to_string(),
|
||||
plugin_id: "gmail@codex-curated".to_string(),
|
||||
plugin_name: "gmail".to_string(),
|
||||
plugin_path,
|
||||
marketplace_name: "codex-curated".to_string(),
|
||||
marketplace_path,
|
||||
remote_version: Some("1.2.3".to_string()),
|
||||
})
|
||||
.unwrap(),
|
||||
json!({
|
||||
"remotePluginId": "plugins~Plugin_00000000000000000000000000000000",
|
||||
"pluginId": "gmail@codex-curated",
|
||||
"pluginName": "gmail",
|
||||
"pluginPath": plugin_path_json,
|
||||
"marketplaceName": "codex-curated",
|
||||
"marketplacePath": marketplace_path_json,
|
||||
"remoteVersion": "1.2.3",
|
||||
}),
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
serde_json::to_value(PluginShareDeleteParams {
|
||||
remote_plugin_id: "plugins~Plugin_00000000000000000000000000000000".to_string(),
|
||||
|
||||
Reference in New Issue
Block a user