)]}'
{"doc/source/developer/fetcher.rst":[{"author":{"_account_id":30960,"name":"Quentin Anglade","email":"quentin.anglade@objectif-libre.com","username":"qanglade"},"change_message_id":"5a649f1bcf5ed259b08d5486f47788410f1a2cf2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"The fetcher retrieves a list of scopes to rate. These scopes are then passed to"},{"line_number":6,"context_line":"the collector, in combination with each metric type."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Implementation"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fetchers are extremely simple. A custom fetcher must implement the following"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_7e1f586b","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":14},"updated":"2019-10-01 09:43:08.000000000","message":"\"Implementing a fetcher\" seems more relevant","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"23144b6d955f43d8f7894be13cc842f5b8cc1a2e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"The fetcher retrieves a list of scopes to rate. These scopes are then passed to"},{"line_number":6,"context_line":"the collector, in combination with each metric type."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Implementation"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fetchers are extremely simple. A custom fetcher must implement the following"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_445e4eea","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":14},"in_reply_to":"3fa7e38b_7e1f586b","updated":"2019-10-01 09:49:59.000000000","message":"I disagree. And this title has been chosen for consistency with other sections of the developer documentation","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":30960,"name":"Quentin Anglade","email":"quentin.anglade@objectif-libre.com","username":"qanglade"},"change_message_id":"5a649f1bcf5ed259b08d5486f47788410f1a2cf2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The ``get_tenants`` method takes no parameters and returns a list of unique"},{"line_number":18,"context_line":"scope_ids, represented as ``str``."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The name of the new fetcher must be specified as a class attribute"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Options for the new fetcher must be registered under the ``fetcher_\u003cname\u003e``"},{"line_number":23,"context_line":"config section."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_1e12e462","line":20,"range":{"start_line":20,"start_character":57,"end_line":20,"end_character":66},"updated":"2019-10-01 09:43:08.000000000","message":"Missing dot at the end of the sentence","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"23144b6d955f43d8f7894be13cc842f5b8cc1a2e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The ``get_tenants`` method takes no parameters and returns a list of unique"},{"line_number":18,"context_line":"scope_ids, represented as ``str``."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The name of the new fetcher must be specified as a class attribute"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Options for the new fetcher must be registered under the ``fetcher_\u003cname\u003e``"},{"line_number":23,"context_line":"config section."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_245d52e9","line":20,"range":{"start_line":20,"start_character":57,"end_line":20,"end_character":66},"in_reply_to":"3fa7e38b_1e12e462","updated":"2019-10-01 09:49:59.000000000","message":"Done","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":30960,"name":"Quentin Anglade","email":"quentin.anglade@objectif-libre.com","username":"qanglade"},"change_message_id":"5a649f1bcf5ed259b08d5486f47788410f1a2cf2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"``cloudkitty.fetcher.\u003cname\u003e.py``. Its class must be called ``\u003cName\u003eFetcher``."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"An entrypoint must be registered for new fetchers. This is done in the"},{"line_number":29,"context_line":"``setup.cfg`` file, at the root of the repository:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: ini"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_046e16c9","line":29,"range":{"start_line":29,"start_character":20,"end_line":29,"end_character":22},"updated":"2019-10-01 09:43:08.000000000","message":"\"located at\" would be more explicit","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"23144b6d955f43d8f7894be13cc842f5b8cc1a2e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"``cloudkitty.fetcher.\u003cname\u003e.py``. Its class must be called ``\u003cName\u003eFetcher``."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"An entrypoint must be registered for new fetchers. This is done in the"},{"line_number":29,"context_line":"``setup.cfg`` file, at the root of the repository:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: ini"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_846be683","line":29,"range":{"start_line":29,"start_character":20,"end_line":29,"end_character":22},"in_reply_to":"3fa7e38b_046e16c9","updated":"2019-10-01 09:49:59.000000000","message":"Done","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":30960,"name":"Quentin Anglade","email":"quentin.anglade@objectif-libre.com","username":"qanglade"},"change_message_id":"5a649f1bcf5ed259b08d5486f47788410f1a2cf2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"           return CONF.fetcher_source.sources"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"More complex exmaples can be found in the ``cloudkitty/fetcher`` directory."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_a45e2210","line":78,"range":{"start_line":78,"start_character":13,"end_line":78,"end_character":21},"updated":"2019-10-01 09:43:08.000000000","message":"typo","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"23144b6d955f43d8f7894be13cc842f5b8cc1a2e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"           return CONF.fetcher_source.sources"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"More complex exmaples can be found in the ``cloudkitty/fetcher`` directory."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_a4686287","line":78,"range":{"start_line":78,"start_character":13,"end_line":78,"end_character":21},"in_reply_to":"3fa7e38b_a45e2210","updated":"2019-10-01 09:49:59.000000000","message":"Done","commit_id":"a781460a738ac4132c925dc356631ed778a3a3c5"}]}
