)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"df5374a34ec7e26ec552fd0da28c79f5b45e5240","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"project cleanup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A first working draft of the OSC bindings to the sdk.project_cleanup for"},{"line_number":10,"context_line":"review."},{"line_number":11,"context_line":"Further tasks include, but not limited to:"},{"line_number":12,"context_line":"- async cleanup invokation to inform about progress"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"cac89d24_21688253","line":9,"updated":"2021-02-01 15:43:35.000000000","message":"Hi Artem, thanks for working on this. I\u0027m confused, If this is still a work in progress, please tag workflow -1 so people could understand that there is still work to do.","commit_id":"45e5698668792179b942a9e6b21fd08e680f90fb"}],"openstackclient/common/project_cleanup.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"1a93c61fd4f7af7f07b955b98621492bce37aa71","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    :return bool: User choice"},{"line_number":37,"context_line":"    \"\"\""},{"line_number":38,"context_line":"    while True:"},{"line_number":39,"context_line":"        answer \u003d getpass._raw_input("},{"line_number":40,"context_line":"            \u0027{} [{}]: \u0027.format(msg, \u0027y/N\u0027 if not default else \u0027Y/n\u0027))"},{"line_number":41,"context_line":"        if answer in (\u0027y\u0027, \u0027Y\u0027, \u0027yes\u0027):"},{"line_number":42,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_24c5973d","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":36},"updated":"2020-06-15 14:19:47.000000000","message":"Why not using getpass.getpass [1], it could be more preferable to call a documented function rather than a protected/private function. \n\nAlso if I correctly understand this code we just waiting for a yes/no from users, so why not simply using `input` [2] rather than `getpass`? It will allow us to not import a new module to do this, `input` is a built-in function.\n\nMaybe I missed some points, in this case ignore my comment :)\n\n[1] https://docs.python.org/3.7/library/getpass.html#getpass.getpass\n[2] https://docs.python.org/3/library/functions.html#input","commit_id":"44f630450b7543f4c12aa2f11377fb3ab68b1c88"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"aedeea47592c29de770f401b802c2d544deaa8fd","unresolved":true,"context_lines":[{"line_number":129,"context_line":"                return"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            confirm \u003d ask_user_yesno("},{"line_number":132,"context_line":"                _(\"This resources will be deleted. Are you sure\"),"},{"line_number":133,"context_line":"                default\u003dFalse)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"            if confirm:"}],"source_content_type":"text/x-python","patch_set":6,"id":"947c9cd0_951a1d9d","line":132,"range":{"start_line":132,"start_character":19,"end_line":132,"end_character":23},"updated":"2021-02-02 08:03:15.000000000","message":"These","commit_id":"21f10ffc4ecd045b8d920731f5c832d12ae64588"}]}
