<div dir="ltr"><div><div>Enable users to POST to /api/v3/repositories/123abc456/versions/ with one required parameter 'operation'. This parameter would be an identifier for a task Pulp would run to create a new version. Any additional parameters passed in by the API user would be passed along to the task. <br><br>pulpcore would provide the 'sync' task and the 'add_remove' task. 'sync' would accept an 'importer'. 'add_remove' would accept 'remove_content' and 'add_content'. <br><br>Each 
plugin could provide any number of tasks for creating a repository 
version. <br><br></div>pulpcore would always create the new repository version, hand it to the plugin code, and then mark it as complete after plugin code runs successfully. Alleviating the plugin writer of these concern. <br></div><div><br></div><div>REST API users would always use the same end point to create a repository version. Plugin writers wouldn't have to worry about creating repository versions and managing the 'complete' state. <br></div><div><br></div>What do you all think?<br><br></div>