)]}'
{"keystoneclient/contrib/auth/v3/federation.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"598637f46b6325050fc5541b8f99074515205102","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class FederatedAuthPlugin(v3.AuthConstructor):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @property"},{"line_number":25,"context_line":"    @abc.abstractmethod"},{"line_number":26,"context_line":"    def scoped_token_plugin(self):"},{"line_number":27,"context_line":"        \"\"\"Return class that should be used for scoping the token.\"\"\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_b6a23398","line":25,"updated":"2014-12-18 00:00:51.000000000","message":"there is a @abc.abstractproperty\n\nIs a property going to be enough here? How are we going to determine with the existing plugins whether they can use Token or the federation specific ScopedToken?","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"598637f46b6325050fc5541b8f99074515205102","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        values \u003d {"},{"line_number":33,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":34,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":35,"context_line":"            \u0027protocol\u0027: self.PROTOCOL"},{"line_number":36,"context_line":"        }"},{"line_number":37,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""},{"line_number":38,"context_line":"               \"%(identity_provider)s/protocols/%(protocol)s/auth\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_9638d73e","line":35,"updated":"2014-12-18 00:00:51.000000000","message":"PROTOCOL is not defined anywhere.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"b2bde2a82de47d223387b895cd5982af63f949f5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        values \u003d {"},{"line_number":33,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":34,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":35,"context_line":"            \u0027protocol\u0027: self.PROTOCOL"},{"line_number":36,"context_line":"        }"},{"line_number":37,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""},{"line_number":38,"context_line":"               \"%(identity_provider)s/protocols/%(protocol)s/auth\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_204796a4","line":35,"in_reply_to":"3a961159_9638d73e","updated":"2015-01-07 09:29:05.000000000","message":"right. I will create and abc.abstracthproperty here and expect inheriting classes to define protocol name.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"598637f46b6325050fc5541b8f99074515205102","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        options.extend(["},{"line_number":47,"context_line":"            cfg.StrOpt(\u0027identity-provider\u0027, help\u003d\"Identity Provider\u0027s name\"),"},{"line_number":48,"context_line":"            cfg.StrOpt(\u0027identity-provider-url\u0027,"},{"line_number":49,"context_line":"                       help\u003d\"Identity Provider\u0027s URL\"),"},{"line_number":50,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":51,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":52,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_5663cf40","line":49,"updated":"2014-12-18 00:00:51.000000000","message":"for options you define in this file you should handle in this file.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"b2bde2a82de47d223387b895cd5982af63f949f5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        options.extend(["},{"line_number":47,"context_line":"            cfg.StrOpt(\u0027identity-provider\u0027, help\u003d\"Identity Provider\u0027s name\"),"},{"line_number":48,"context_line":"            cfg.StrOpt(\u0027identity-provider-url\u0027,"},{"line_number":49,"context_line":"                       help\u003d\"Identity Provider\u0027s URL\"),"},{"line_number":50,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":51,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":52,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_20515630","line":49,"in_reply_to":"3a961159_5663cf40","updated":"2015-01-07 09:29:05.000000000","message":"since this is going to be a federation wide root-plugin I am not super super those options will be always required for any future plugin. Hence, moved it to saml2._BaseSAMLPlugin","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"598637f46b6325050fc5541b8f99074515205102","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                       help\u003d\"Identity Provider\u0027s URL\"),"},{"line_number":50,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":51,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":52,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027)"},{"line_number":53,"context_line":"        ])"},{"line_number":54,"context_line":"        return options"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_7699ab6d","line":52,"updated":"2014-12-18 00:00:51.000000000","message":"username and password shouldn\u0027t be defined here as we can\u0027t manage user/pass in this class.\n\nImagine a future plugin that doesn\u0027t use user/pass but a cert or something. It will automatically get these options that it doesn\u0027t want.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"b2bde2a82de47d223387b895cd5982af63f949f5","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                       help\u003d\"Identity Provider\u0027s URL\"),"},{"line_number":50,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":51,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":52,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027)"},{"line_number":53,"context_line":"        ])"},{"line_number":54,"context_line":"        return options"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_60f35e73","line":52,"in_reply_to":"3a961159_7699ab6d","updated":"2015-01-07 09:29:05.000000000","message":"right.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"598637f46b6325050fc5541b8f99074515205102","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        return options"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def _scoping_data(self):"},{"line_number":58,"context_line":"        return {\u0027trust_id\u0027: self.trust_id,"},{"line_number":59,"context_line":"                \u0027domain_id\u0027: self.domain_id,"},{"line_number":60,"context_line":"                \u0027domain_name\u0027: self.domain_name,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_96853709","line":57,"updated":"2014-12-18 00:00:51.000000000","message":"This doesn\u0027t look right. \n\nNone of these variables are defined on an AuthConstructor. They are defined on Auth.","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"b2bde2a82de47d223387b895cd5982af63f949f5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        return options"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def _scoping_data(self):"},{"line_number":58,"context_line":"        return {\u0027trust_id\u0027: self.trust_id,"},{"line_number":59,"context_line":"                \u0027domain_id\u0027: self.domain_id,"},{"line_number":60,"context_line":"                \u0027domain_name\u0027: self.domain_name,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_c00b3229","line":57,"in_reply_to":"3a961159_96853709","updated":"2015-01-07 09:29:05.000000000","message":"..and AuthConstructor inherits from Auth.\nI don\u0027t have any good idea how to improve this method. In fact i liked it very much (even thouh it was not my proposition).","commit_id":"ae34d829ec567644974de78ff8eedc8823b4613d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"257c52d19b7636507a208a0df5bcf28cc226dc4e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Return full URL where authorization data is sent.\"\"\""},{"line_number":34,"context_line":"        values \u003d {"},{"line_number":35,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":36,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":37,"context_line":"            \u0027protocol\u0027: self.protocol"},{"line_number":38,"context_line":"        }"},{"line_number":39,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_5b197ad0","line":36,"updated":"2015-01-20 00:31:07.000000000","message":"should identity_provider be defined on this class? Is it going to be used by all FederationAuthPlugin subclasses?\n\nshould it be identity_provider_id?","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"737adf7ae356811f1e5e855a247863193f67fda4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Return full URL where authorization data is sent.\"\"\""},{"line_number":34,"context_line":"        values \u003d {"},{"line_number":35,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":36,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":37,"context_line":"            \u0027protocol\u0027: self.protocol"},{"line_number":38,"context_line":"        }"},{"line_number":39,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a930d6b_3fb893c7","line":36,"in_reply_to":"1a930d6b_cc3cc296","updated":"2015-01-26 10:10:40.000000000","message":"currently it is required for everyone as we need it for building dynamic url.\n\nI am also wondering if we can freely change identity_provider to identity_provider_id now? Including options from get_options() ?","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"54da58c8f184c46e0fff93c54df555b8a599ea74","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Return full URL where authorization data is sent.\"\"\""},{"line_number":34,"context_line":"        values \u003d {"},{"line_number":35,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":36,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":37,"context_line":"            \u0027protocol\u0027: self.protocol"},{"line_number":38,"context_line":"        }"},{"line_number":39,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_8db8fa79","line":36,"in_reply_to":"3a961159_5b197ad0","updated":"2015-01-20 13:23:38.000000000","message":"1) We can change to identity_provider_id\n2) With the current design we are always, not matter what, build this dynamic URL, but I can actually make it an abstrac property, just like protocols.","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3dc1cae6145670ea516434d2c49af07fa3e44f03","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Return full URL where authorization data is sent.\"\"\""},{"line_number":34,"context_line":"        values \u003d {"},{"line_number":35,"context_line":"            \u0027host\u0027: self.auth_url.rstrip(\u0027/\u0027),"},{"line_number":36,"context_line":"            \u0027identity_provider\u0027: self.identity_provider,"},{"line_number":37,"context_line":"            \u0027protocol\u0027: self.protocol"},{"line_number":38,"context_line":"        }"},{"line_number":39,"context_line":"        url \u003d (\"%(host)s/OS-FEDERATION/identity_providers/\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a930d6b_cc3cc296","line":36,"in_reply_to":"3a961159_8db8fa79","updated":"2015-01-21 21:15:11.000000000","message":"Sure, iIt depends on whether this is required for all plugins. It seems like it would be required by everyone.","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"}],"keystoneclient/contrib/auth/v3/saml2.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"049087edc752a149497620b9e0080ad1c6897e60","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        unscoped token is returned and stored within the plugin object for"},{"line_number":102,"context_line":"        further use."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        :param session : a session object to send out HTTP requests."},{"line_number":105,"context_line":"        :type session: keystoneclient.session.Session"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :return access.AccessInfoV3: an object with scoped token\u0027s id and"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8c0949_15d09a4f","line":104,"updated":"2014-10-31 01:07:41.000000000","message":"nit: extra space","commit_id":"31973cf79bcfcfc128e60f1351b41deac4802485"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"8d4060771f09c29e61f8e83b571c7b68bc06210d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        unscoped token is returned and stored within the plugin object for"},{"line_number":102,"context_line":"        further use."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        :param session : a session object to send out HTTP requests."},{"line_number":105,"context_line":"        :type session: keystoneclient.session.Session"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :return access.AccessInfoV3: an object with scoped token\u0027s id and"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8c0949_27bac4de","line":104,"in_reply_to":"7a8c0949_15d09a4f","updated":"2014-10-31 11:15:28.000000000","message":"Done","commit_id":"31973cf79bcfcfc128e60f1351b41deac4802485"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"63a4d2c2a308995dc5c2969a213ce7334084657e","unresolved":false,"context_lines":[{"line_number":829,"context_line":"        return access.AccessInfoV3(token, **token_json)"},{"line_number":830,"context_line":""},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"class Saml2ScopedTokenMethod(v3.TokenMethod):"},{"line_number":833,"context_line":"    _method_name \u003d \u0027saml2\u0027"},{"line_number":834,"context_line":""},{"line_number":835,"context_line":"    def get_auth_data(self, session, auth, headers, **kwargs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_78cac6a2","line":832,"updated":"2014-12-08 04:31:02.000000000","message":"Won\u0027t this be common for a token that was retrieved using openid connect? I\u0027m wondering if we want to rename this, and make line 834 more flexible, to avoid copy/paste","commit_id":"5fa08654854e20ae08baec352e180f1beef07b4f"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"8576b79d73fdc4ea10ec186e1e4408e21158413c","unresolved":false,"context_lines":[{"line_number":829,"context_line":"        return access.AccessInfoV3(token, **token_json)"},{"line_number":830,"context_line":""},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"class Saml2ScopedTokenMethod(v3.TokenMethod):"},{"line_number":833,"context_line":"    _method_name \u003d \u0027saml2\u0027"},{"line_number":834,"context_line":""},{"line_number":835,"context_line":"    def get_auth_data(self, session, auth, headers, **kwargs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_a293f1f8","line":832,"in_reply_to":"3a961159_78cac6a2","updated":"2014-12-09 08:31:36.000000000","message":"Could be. \nI am only wondering whether we should proceed with review https://review.openstack.org/#/c/130593/ first.","commit_id":"5fa08654854e20ae08baec352e180f1beef07b4f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"e71bb5b2ddf1978cf9a1e546d7e2a19cfe0413ad","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            auth_url\u003dauth_url, identity_provider\u003didentity_provider,"},{"line_number":57,"context_line":"            identity_provider_url\u003didentity_provider_url, **kwargs)"},{"line_number":58,"context_line":"        self.username \u003d username"},{"line_number":59,"context_line":"        self.password \u003d password"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @property"},{"line_number":62,"context_line":"    def protocol(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a930d6b_5c7f0466","line":59,"updated":"2015-01-27 18:09:08.000000000","message":"i thought you decided to not have these here so that saml could do things like cert (or other) auth mechanisms?","commit_id":"515864a9ed4b327ce4e802aca4d29120c8243230"}],"setup.cfg":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"257c52d19b7636507a208a0df5bcf28cc226dc4e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    v3token \u003d keystoneclient.auth.identity.v3:Token"},{"line_number":37,"context_line":"    v3ecp \u003d keystoneclient.contrib.auth.v3.saml2:Saml2Token"},{"line_number":38,"context_line":"    v3saml2token \u003d keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken"},{"line_number":39,"context_line":"    v3adfs \u003d keystoneclient.contrib.auth.v3.saml2:ADFSToken"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[build_sphinx]"},{"line_number":42,"context_line":"source-dir \u003d doc/source"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"3a961159_1ba9b225","line":39,"updated":"2015-01-20 00:31:07.000000000","message":"I\u0027m not sure how worried we should be about changing these.","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"54da58c8f184c46e0fff93c54df555b8a599ea74","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    v3token \u003d keystoneclient.auth.identity.v3:Token"},{"line_number":37,"context_line":"    v3ecp \u003d keystoneclient.contrib.auth.v3.saml2:Saml2Token"},{"line_number":38,"context_line":"    v3saml2token \u003d keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken"},{"line_number":39,"context_line":"    v3adfs \u003d keystoneclient.contrib.auth.v3.saml2:ADFSToken"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[build_sphinx]"},{"line_number":42,"context_line":"source-dir \u003d doc/source"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"3a961159_ed6edeff","line":39,"in_reply_to":"3a961159_1ba9b225","updated":"2015-01-20 13:23:38.000000000","message":"you mean changing the name of the plugins and breaking backward compatibility?","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3dc1cae6145670ea516434d2c49af07fa3e44f03","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    v3token \u003d keystoneclient.auth.identity.v3:Token"},{"line_number":37,"context_line":"    v3ecp \u003d keystoneclient.contrib.auth.v3.saml2:Saml2Token"},{"line_number":38,"context_line":"    v3saml2token \u003d keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken"},{"line_number":39,"context_line":"    v3adfs \u003d keystoneclient.contrib.auth.v3.saml2:ADFSToken"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[build_sphinx]"},{"line_number":42,"context_line":"source-dir \u003d doc/source"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"1a930d6b_4cac52ee","line":39,"in_reply_to":"3a961159_ed6edeff","updated":"2015-01-21 21:15:11.000000000","message":"yes, if anyone used the old names then they will no longer work.","commit_id":"ac7d5c2d71beff2f0d6bcf5459f9ed8401151f33"}]}
