diff --git a/man/ostree-remote.xml b/man/ostree-remote.xml
index 88e61ac0..2bb8aa71 100644
--- a/man/ostree-remote.xml
+++ b/man/ostree-remote.xml
@@ -137,6 +137,16 @@ Boston, MA 02111-1307, USA.
ostree remote gpg-import --keyring=FILE.
+
+
+ =COLLECTION-ID
+
+
+ Set the collection ID for the remote to a value provided by
+ the repository owner, which allows refs from this remote to be
+ shared peer to peer.
+
+
diff --git a/src/ostree/ot-remote-builtin-add.c b/src/ostree/ot-remote-builtin-add.c
index 3e3aeda9..db115efd 100644
--- a/src/ostree/ot-remote-builtin-add.c
+++ b/src/ostree/ot-remote-builtin-add.c
@@ -31,6 +31,9 @@ static gboolean opt_no_gpg_verify;
static gboolean opt_if_not_exists;
static char *opt_gpg_import;
static char *opt_contenturl;
+#ifdef OSTREE_ENABLE_EXPERIMENTAL_API
+static char *opt_collection_id;
+#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */
static GOptionEntry option_entries[] = {
{ "set", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_set, "Set config option KEY=VALUE for remote", "KEY=VALUE" },
@@ -38,6 +41,10 @@ static GOptionEntry option_entries[] = {
{ "if-not-exists", 0, 0, G_OPTION_ARG_NONE, &opt_if_not_exists, "Do nothing if the provided remote exists", NULL },
{ "gpg-import", 0, 0, G_OPTION_ARG_FILENAME, &opt_gpg_import, "Import GPG key from FILE", "FILE" },
{ "contenturl", 0, 0, G_OPTION_ARG_STRING, &opt_contenturl, "Use URL when fetching content", "URL" },
+#ifdef OSTREE_ENABLE_EXPERIMENTAL_API
+ { "collection-id", 0, 0, G_OPTION_ARG_STRING, &opt_collection_id,
+ "Globally unique ID for this repository as an collection of refs for redistribution to other repositories", "COLLECTION-ID" },
+#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */
{ NULL }
};
@@ -110,6 +117,12 @@ ot_remote_builtin_add (int argc, char **argv, GCancellable *cancellable, GError
"gpg-verify",
g_variant_new_variant (g_variant_new_boolean (FALSE)));
+#ifdef OSTREE_ENABLE_EXPERIMENTAL_API
+ if (opt_collection_id != NULL)
+ g_variant_builder_add (optbuilder, "{s@v}", "collection-id",
+ g_variant_new_variant (g_variant_new_take_string (g_steal_pointer (&opt_collection_id))));
+#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */
+
options = g_variant_ref_sink (g_variant_builder_end (optbuilder));
if (!ostree_repo_remote_change (repo, NULL,