)]}'
{"doc/specs/in-progress/task_and_verification_export.rst":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a13b192fe4519897c249f5d2e55247baed901710","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"..code-block:: shell"},{"line_number":76,"context_line":"    rally verify export \u003cUUID\u003e --target \u003cPLUGIN\u003e"},{"line_number":77,"context_line":"                        [--config \u003cCONFIG_FILE\u003e|\u003cOPTIONAL_NAMED_PARAMETERS\u003e]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"},{"line_number":80,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_85a0b7a0","line":77,"updated":"2015-11-05 21:29:12.000000000","message":"I\u0027d like to see more detail about what the config file might contain, what format it is (or if its format is left entirely to the plugin), how it\u0027s converted to **kwargs, etc., and more about the named parameters as well.","commit_id":"9c74a518ef7c79fae59696acce003d3041ff0241"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"672296cd4796bff086606f5b3fdcac377d854f30","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"..code-block:: shell"},{"line_number":76,"context_line":"    rally verify export \u003cUUID\u003e --target \u003cPLUGIN\u003e"},{"line_number":77,"context_line":"                        [--config \u003cCONFIG_FILE\u003e|\u003cOPTIONAL_NAMED_PARAMETERS\u003e]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"},{"line_number":80,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_fcfb59bf","line":77,"in_reply_to":"fa80f949_85a0b7a0","updated":"2015-11-06 02:26:29.000000000","message":"I don\u0027t like this parameter either. As we discussed before it should be connection_string or something that sounds like that not --config and not optional named parameters.","commit_id":"9c74a518ef7c79fae59696acce003d3041ff0241"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"c7047bf0123bbc2a35976a87dbe96afc755756b2","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"..code-block:: shell"},{"line_number":76,"context_line":"    rally verify export \u003cUUID\u003e --target \u003cPLUGIN\u003e"},{"line_number":77,"context_line":"                        [--config \u003cCONFIG_FILE\u003e|\u003cOPTIONAL_NAMED_PARAMETERS\u003e]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"},{"line_number":80,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_2a70a10a","line":77,"in_reply_to":"fa80f949_fcfb59bf","updated":"2015-11-06 11:33:27.000000000","message":"Done","commit_id":"9c74a518ef7c79fae59696acce003d3041ff0241"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"136570d5ecff7d454453e1aa0a5b43c215bdcaa7","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Most of the systems provide an API for importing test data. The systems also"},{"line_number":36,"context_line":"posess data model somewhat similar to Rally\u0027s one."},{"line_number":37,"context_line":"It usually includes (among others) models for project, test suite test case,"},{"line_number":38,"context_line":"test plan and test execution results."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"It is suggested to provide Rally users an ability to export information about"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_3b037d44","line":37,"updated":"2015-11-09 13:13:27.000000000","message":"missed \u0027,\u0027","commit_id":"2ff18a5c5defd731d711989fc3e2777d3eeeabf2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"136570d5ecff7d454453e1aa0a5b43c215bdcaa7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"4. Implement a CLI command of the form"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"..code-block:: shell"},{"line_number":75,"context_line":"    rally verify export \u003cUUID\u003e \u003cCONNECTION_STRING\u003e"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_de8d7f32","line":75,"updated":"2015-11-09 13:13:27.000000000","message":"Do we provide API for task export? I think we need it if we want to use Rally as a Service.","commit_id":"2ff18a5c5defd731d711989fc3e2777d3eeeabf2"}],"doc/specs/in-progress/task_export.rst":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Export tasks into external Test Management Systems"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Currently Rally stores all information about executed tasks in its database"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_a10cfa94","line":18,"updated":"2015-11-05 01:11:53.000000000","message":"It\u0027s related to \"verify\" command as well.\n\nas well I think that interesting use case will be to export data to Google Docs that is not Test management system.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Export tasks into external Test Management Systems"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Currently Rally stores all information about executed tasks in its database"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_09e40139","line":18,"in_reply_to":"fa80f949_a10cfa94","updated":"2015-11-05 11:26:30.000000000","message":"Done","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Currently Rally stores all information about executed tasks in its database"},{"line_number":22,"context_line":"and it is also able to provide this data in JSON format or in the form of"},{"line_number":23,"context_line":"HTML reports. There is a request for Rally to export this data into external"},{"line_number":24,"context_line":"test management systems (like TestRail) via its HTTP/JSON API."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_017dc6e6","line":24,"updated":"2015-11-05 01:11:53.000000000","message":"remove HTTP/JSON just API we don\u0027t care is it HTTP or HTTPS or FTP or something else..","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Currently Rally stores all information about executed tasks in its database"},{"line_number":22,"context_line":"and it is also able to provide this data in JSON format or in the form of"},{"line_number":23,"context_line":"HTML reports. There is a request for Rally to export this data into external"},{"line_number":24,"context_line":"test management systems (like TestRail) via its HTTP/JSON API."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_a9d13559","line":24,"in_reply_to":"fa80f949_017dc6e6","updated":"2015-11-05 11:26:30.000000000","message":"Done","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"There are several test management systems in the market available as"},{"line_number":30,"context_line":"SaaS and/or On-Premises, like TestRail, TestLink, TestLodge etc,"},{"line_number":31,"context_line":"which objective is to manage, organize and track all testing efforts."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_c186deda","line":29,"updated":"2015-11-05 01:11:53.000000000","message":"There are *many* including a lot of proprietary test management system.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"There are several test management systems in the market available as"},{"line_number":30,"context_line":"SaaS and/or On-Premises, like TestRail, TestLink, TestLodge etc,"},{"line_number":31,"context_line":"which objective is to manage, organize and track all testing efforts."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_c98cb937","line":29,"in_reply_to":"fa80f949_c186deda","updated":"2015-11-05 11:26:30.000000000","message":"Done","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"1. Implement a base class Exporter for an export plugin at"},{"line_number":51,"context_line":"*rally/task/exporter.py*."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_4173ce15","line":51,"updated":"2015-11-05 01:11:53.000000000","message":"I believe there should be at least 2 base classes: TaskExporter and VerifyExporter","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"1. Implement a base class Exporter for an export plugin at"},{"line_number":51,"context_line":"*rally/task/exporter.py*."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_4951a961","line":51,"in_reply_to":"fa80f949_4173ce15","updated":"2015-11-05 11:26:30.000000000","message":"Done","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"9edef8def443de7b50a84b410cd24f38dac68207","unresolved":false,"context_lines":[{"line_number":50,"context_line":"1. Implement a base class Exporter for an export plugin at"},{"line_number":51,"context_line":"*rally/task/exporter.py*."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"},{"line_number":55,"context_line":"        def export(self, task, endpoint, username, password):"},{"line_number":56,"context_line":"            ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_d9e7c7e2","line":53,"updated":"2015-11-04 17:43:17.000000000","message":"Correct syntax is:\n\n    .. code-block:: python","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":50,"context_line":"1. Implement a base class Exporter for an export plugin at"},{"line_number":51,"context_line":"*rally/task/exporter.py*."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"},{"line_number":55,"context_line":"        def export(self, task, endpoint, username, password):"},{"line_number":56,"context_line":"            ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_2f15453f","line":53,"in_reply_to":"fa80f949_d9e7c7e2","updated":"2015-11-05 11:26:30.000000000","message":"Done","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"},{"line_number":55,"context_line":"        def export(self, task, endpoint, username, password):"},{"line_number":56,"context_line":"            ..."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Plugin should not require any kind of additional configuration to work."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_61dcd2e4","line":55,"updated":"2015-11-05 01:11:53.000000000","message":"Imho interface doesn\u0027t look good. \n\n   def export(self, task_results, connection_string): \n         pass\n\nseems much better. We don\u0027t know exactly what system is using. Maybe it will be username and password or just token and so on or you have direct URL in internal network.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"..code-block: python"},{"line_number":54,"context_line":"    class Exporter(plugin.Plugin):"},{"line_number":55,"context_line":"        def export(self, task, endpoint, username, password):"},{"line_number":56,"context_line":"            ..."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Plugin should not require any kind of additional configuration to work."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_0cb64f3d","line":55,"in_reply_to":"fa80f949_61dcd2e4","updated":"2015-11-05 11:26:30.000000000","message":"1) I would rather pass a task than task_results, since many test management systems have a bit more complicated obgect model than just a collection of task results. On the other hand Rally\u0027s task model can itself retreive corresponding task results.\nAlso I think it\u0027s worth adding kwargs to interface, just for the case.\n\n2) Having a connection string makes the interface compact and nice looking, yet parsing the string may be cumbersome and providing it may be tricky as well (see Chris\u0027s comment on semicolons and char escaping). Let\u0027s just have **kwargs here.\nIt would be both flexible and straightforward to handle.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2ebdbd73c0eb81e32e445760daad10456b08909c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"2. Implement a CLI command of the form"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"..code-block: shell"},{"line_number":64,"context_line":"    rally task export UUID --target PLUGIN"},{"line_number":65,"context_line":"                           --user user@mail"},{"line_number":66,"context_line":"                           --password SECRET"},{"line_number":67,"context_line":"                           --url URL"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_41e18e99","line":64,"updated":"2015-11-05 01:11:53.000000000","message":"see comment above...","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"9edef8def443de7b50a84b410cd24f38dac68207","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    rally task export UUID --target PLUGIN"},{"line_number":65,"context_line":"                           --user user@mail"},{"line_number":66,"context_line":"                           --password SECRET"},{"line_number":67,"context_line":"                           --url URL"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"or"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_39937351","line":67,"updated":"2015-11-04 17:43:17.000000000","message":"This assumes that all of the various APIs will use user/pass authn. A plugin author could certainly overload one or the other -- for instance, for an API that required an authn token instead -- but it would be a) wonky; b) difficult or strange to handle APIs that only required a single token; and c) difficult or impossible to handle APIs that required more than two bits of data.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    rally task export UUID --target PLUGIN"},{"line_number":65,"context_line":"                           --user user@mail"},{"line_number":66,"context_line":"                           --password SECRET"},{"line_number":67,"context_line":"                           --url URL"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"or"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_cc2fe7f4","line":67,"in_reply_to":"fa80f949_39937351","updated":"2015-11-05 11:26:30.000000000","message":"I exclude this one in favor of having kwargs to handle more complex APIs","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"9edef8def443de7b50a84b410cd24f38dac68207","unresolved":false,"context_lines":[{"line_number":69,"context_line":"or"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"..code-block: shell"},{"line_number":72,"context_line":"    rally task export UUID --target PLUGIN:user@mail:SECRET:URL"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_39e133d1","line":72,"updated":"2015-11-04 17:43:17.000000000","message":"This is better, but colon-separated is a bad idea since usernames, passwords, and urls can all contain colons, so now you have to deal with escaping (and the end user has to deal with two layers of escaping).\n\nI\u0027d recommend instead having the user pass in either the target plugin and a JSON/YAML config file; or just a JSON/YAML config file that includes the target plugin. That would allow plugin authors to specify whatever arbitrary config they require to connect to the service.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":69,"context_line":"or"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"..code-block: shell"},{"line_number":72,"context_line":"    rally task export UUID --target PLUGIN:user@mail:SECRET:URL"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_8c71dfe2","line":72,"in_reply_to":"fa80f949_39e133d1","updated":"2015-11-05 11:26:30.000000000","message":"Good point.\nI suggest to add **kwargs or --config option to CLI.\nI still think that to have a config file along with plugin code and forcing user to find and edit it is not the best approach from usability\u0027s point of view.","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"9edef8def443de7b50a84b410cd24f38dac68207","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Assignee(s)"},{"line_number":85,"context_line":"-----------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Primary assignee:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_f9eacbab","line":87,"updated":"2015-11-04 17:43:17.000000000","message":"Who?","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1ebf003c2fda7d6e9f7ec51ee6335c6817280011","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Assignee(s)"},{"line_number":85,"context_line":"-----------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Primary assignee:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_0c7e4fae","line":87,"in_reply_to":"fa80f949_f9eacbab","updated":"2015-11-05 11:26:30.000000000","message":"TBD ))","commit_id":"8858264587c36e0c6082cafb00101ed28d34a997"}]}
