)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"0ebc239a45eaaab75b3e6f102e5713dcd8c3d625","unresolved":true,"context_lines":[{"line_number":12,"context_line":"specific files or directories - either a name or a regular expression"},{"line_number":13,"context_line":"can be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Example use to exclude \u0027.snapshot\u0027:"},{"line_number":16,"context_line":"    \"permissions\": ["},{"line_number":17,"context_line":"        {"},{"line_number":18,"context_line":"            \"path\": \"/var/lib/glance\","},{"line_number":19,"context_line":"            \"owner\": \"glance:glance\","},{"line_number":20,"context_line":"            \"recurse\": true,"},{"line_number":21,"context_line":"            \"exclude\": [\"/var/lib/.*/.snapshot\"]"},{"line_number":22,"context_line":"        }"},{"line_number":23,"context_line":"     ]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Co-Authored-By: Jakub Darmach \u003cjakub@stackhpc.com\u003e"},{"line_number":26,"context_line":"Change-Id: If2f39736e2af34cd91d0976051ff66f06e96ab42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3153aa4c_3f1d027d","line":23,"range":{"start_line":15,"start_character":0,"end_line":23,"end_character":6},"updated":"2024-05-28 11:35:55.000000000","message":"not needed here as we have an example in doc/source/admin/kolla_api.rst","commit_id":"7d4e2d4e601f9c8959bcb47091078416d72bc3ab"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"0edc514337adda2eafe5e5bba2232b0d464e2501","unresolved":false,"context_lines":[{"line_number":12,"context_line":"specific files or directories - either a name or a regular expression"},{"line_number":13,"context_line":"can be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Example use to exclude \u0027.snapshot\u0027:"},{"line_number":16,"context_line":"    \"permissions\": ["},{"line_number":17,"context_line":"        {"},{"line_number":18,"context_line":"            \"path\": \"/var/lib/glance\","},{"line_number":19,"context_line":"            \"owner\": \"glance:glance\","},{"line_number":20,"context_line":"            \"recurse\": true,"},{"line_number":21,"context_line":"            \"exclude\": [\"/var/lib/.*/.snapshot\"]"},{"line_number":22,"context_line":"        }"},{"line_number":23,"context_line":"     ]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Co-Authored-By: Jakub Darmach \u003cjakub@stackhpc.com\u003e"},{"line_number":26,"context_line":"Change-Id: If2f39736e2af34cd91d0976051ff66f06e96ab42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"e896aa34_86ae4445","line":23,"range":{"start_line":15,"start_character":0,"end_line":23,"end_character":6},"in_reply_to":"3153aa4c_3f1d027d","updated":"2024-07-11 07:59:36.000000000","message":"Done","commit_id":"7d4e2d4e601f9c8959bcb47091078416d72bc3ab"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"b6e96ceb23115890c086c2ff881adfcb0ea5c6e2","unresolved":true,"context_lines":[{"line_number":12,"context_line":"specific files or directories - either a name or a regular expression"},{"line_number":13,"context_line":"can be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-Bug: #1931294"},{"line_number":16,"context_line":"Related-Bug: #1972168"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Authored-By: Jakub Darmach \u003cjakub@stackhpc.com\u003e"},{"line_number":19,"context_line":"Change-Id: If2f39736e2af34cd91d0976051ff66f06e96ab42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"8e175f81_f319dc57","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":21},"updated":"2024-08-19 13:22:02.000000000","message":"maybe both Closes-Bug ?","commit_id":"a428d5111488989161e530ee3f1c0a4b57c164da"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"c15fe4dbff956de83cb8320d146e1f26d5bfdd8c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"specific files or directories - either a name or a regular expression"},{"line_number":13,"context_line":"can be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-Bug: #1931294"},{"line_number":16,"context_line":"Related-Bug: #1972168"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Authored-By: Jakub Darmach \u003cjakub@stackhpc.com\u003e"},{"line_number":19,"context_line":"Change-Id: If2f39736e2af34cd91d0976051ff66f06e96ab42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"00b2210f_92f47299","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":21},"in_reply_to":"8e175f81_f319dc57","updated":"2024-08-21 12:44:09.000000000","message":"Done","commit_id":"a428d5111488989161e530ee3f1c0a4b57c164da"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"909e1f10_f59d3a14","updated":"2021-12-27 13:14:58.000000000","message":"Also, this needs a release note and a proposed usage in Kolla Ansible would be preferred.","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"888ae5321a1d32a8304f4f75dfe7912a7069ee83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"28e9ce5f_4baf6f31","updated":"2023-05-18 10:02:06.000000000","message":"please address Radosław comments at least about \u0027flag\u0027 variable.","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"38463e909dd9e225df2b3d5a17b829badd5aab0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"a0c2005d_7980bc17","updated":"2024-04-29 14:02:41.000000000","message":"can we have docs for this, as this is a user facing feature?\n\nIt would suffice if the example from the commit message is documented I think.\n\nThanks","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"6b6b1c3417c715d681e39f989ac624e3cd6bd478","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"da1d8ce0_4ef68302","updated":"2024-04-29 14:03:12.000000000","message":"nvm it _is_ documented..","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"cfd7b5cb0be451d8296d190d83e8c5d6f94ec090","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8c903fc9_62d5dd29","updated":"2024-04-30 14:18:20.000000000","message":"Hi Sven, indeed this makes sense.","commit_id":"7d4e2d4e601f9c8959bcb47091078416d72bc3ab"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7efe8885106d64622e330a496b3e3eadef3349fa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":15,"id":"7c995a20_0b5ad548","updated":"2024-07-17 08:20:44.000000000","message":"Related to a bug fix, so we need to do backports of that.","commit_id":"2912de8317582c539b3051d254d5178f14e1c01a"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"bdbd1c93f9359ecfe2665e084e3b2ed157c00bac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"54468761_2366b22f","in_reply_to":"239a4e3d_653a9548","updated":"2024-07-17 20:05:29.000000000","message":"Done","commit_id":"2912de8317582c539b3051d254d5178f14e1c01a"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"51ed4ed59c87c1db2dad87a002204afbbd4d942b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":15,"id":"239a4e3d_653a9548","in_reply_to":"7c995a20_0b5ad548","updated":"2024-07-17 19:38:13.000000000","message":"shouldn\u0027t we have an bug report on launchpad?","commit_id":"2912de8317582c539b3051d254d5178f14e1c01a"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"2b6338f9d1a5daf38435a99a73500b08a7f494db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"c4ae9ff8_4c1c990f","updated":"2024-07-18 12:18:39.000000000","message":"LGTM now :)","commit_id":"a428d5111488989161e530ee3f1c0a4b57c164da"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"c15fe4dbff956de83cb8320d146e1f26d5bfdd8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"4a917a05_8df72dd9","updated":"2024-08-21 12:44:09.000000000","message":"Makes sense!","commit_id":"a428d5111488989161e530ee3f1c0a4b57c164da"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b60cd7dffec9914bc4fb1baa22c00a95310850d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"95f3cb3e_6e736567","updated":"2024-08-21 12:59:35.000000000","message":"Single company merging since it\u0027s here for over a month.","commit_id":"07d0b12efdbaaf38d41670d67a2ba47ac9ded1e4"}],"docker/base/set_configs.py":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"3670dfa0f430caf304b3609915f57762ae57f8c5","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            if recurse and os.path.isdir(dest):"},{"line_number":373,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":374,"context_line":"                    for dir_ in dirs:"},{"line_number":375,"context_line":"                        LOG.info(\"hande dir %s:\" % os.path.join(root, dir_))"},{"line_number":376,"context_line":"                        flag \u003d True"},{"line_number":377,"context_line":"                        for e in exclude:"},{"line_number":378,"context_line":"                            if os.path.join(root, dir_).find(e) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_763727b2","line":375,"range":{"start_line":375,"start_character":34,"end_line":375,"end_character":39},"updated":"2019-04-25 07:49:59.000000000","message":"what does hande mean?","commit_id":"0aa19bf0963044bff583113e49989fc67def8ac8"},{"author":{"_account_id":21113,"name":"Min Sun","email":"minsu@cisco.com","username":"MinSun"},"change_message_id":"b74e7ebc742341565e13395b3eccae0f226a0b50","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            if recurse and os.path.isdir(dest):"},{"line_number":373,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":374,"context_line":"                    for dir_ in dirs:"},{"line_number":375,"context_line":"                        LOG.info(\"hande dir %s:\" % os.path.join(root, dir_))"},{"line_number":376,"context_line":"                        flag \u003d True"},{"line_number":377,"context_line":"                        for e in exclude:"},{"line_number":378,"context_line":"                            if os.path.join(root, dir_).find(e) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_562b032f","line":375,"range":{"start_line":375,"start_character":34,"end_line":375,"end_character":39},"in_reply_to":"ffb9cba7_763727b2","updated":"2019-04-25 08:00:16.000000000","message":"wrong spelling","commit_id":"0aa19bf0963044bff583113e49989fc67def8ac8"},{"author":{"_account_id":19779,"name":"Chason Chan","display_name":"chenxing","email":"chason.chan@foxmail.com","username":"chenxing"},"change_message_id":"959b7ccd6fc6a8116298d7dba1cd1e06d3bbbc8f","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                                flag \u003d False"},{"line_number":389,"context_line":"                                break"},{"line_number":390,"context_line":"                        if flag:"},{"line_number":391,"context_line":"                            "},{"line_number":392,"context_line":"                            set_perms(os.path.join(root, file_),"},{"line_number":393,"context_line":"                                      uid, gid, perm)"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_0ed45dbc","line":391,"range":{"start_line":391,"start_character":0,"end_line":391,"end_character":28},"updated":"2019-04-29 01:48:20.000000000","message":"remove","commit_id":"a37828b38ffa392cf89af419eaadf1618ed5ec1e"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d7f372fc78d37a9979b8f33fa1af462456a4a681","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            if recurse and os.path.isdir(dest):"},{"line_number":373,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":374,"context_line":"                    for dir_ in dirs:"},{"line_number":375,"context_line":"                        LOG.info(\"handle dir %s:\" % os.path.join(root, dir_))"},{"line_number":376,"context_line":"                        flag \u003d True"},{"line_number":377,"context_line":"                        for e in exclude:"},{"line_number":378,"context_line":"                            if os.path.join(root, dir_).find(e) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_c7c76a45","line":375,"range":{"start_line":375,"start_character":0,"end_line":375,"end_character":77},"updated":"2019-07-24 14:36:46.000000000","message":"I feel this log is unclear as to what is handled about the dir or file","commit_id":"ff19bcfbccc4c4823693eea9f264f7cc7c8940c8"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d7f372fc78d37a9979b8f33fa1af462456a4a681","unresolved":false,"context_lines":[{"line_number":375,"context_line":"                        LOG.info(\"handle dir %s:\" % os.path.join(root, dir_))"},{"line_number":376,"context_line":"                        flag \u003d True"},{"line_number":377,"context_line":"                        for e in exclude:"},{"line_number":378,"context_line":"                            if os.path.join(root, dir_).find(e) !\u003d -1:"},{"line_number":379,"context_line":"                                flag \u003d False"},{"line_number":380,"context_line":"                                break"},{"line_number":381,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_67f2369d","line":378,"range":{"start_line":378,"start_character":31,"end_line":378,"end_character":63},"updated":"2019-07-24 14:36:46.000000000","message":"just finding \u0027e\u0027 might be misleading, at least root it at the beginning of the string, or ending, or better yet use regexp - it solves either issue","commit_id":"ff19bcfbccc4c4823693eea9f264f7cc7c8940c8"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d7f372fc78d37a9979b8f33fa1af462456a4a681","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                        if flag:"},{"line_number":382,"context_line":"                            set_perms(os.path.join(root, dir_), uid, gid, perm)"},{"line_number":383,"context_line":"                    for file_ in files:"},{"line_number":384,"context_line":"                        LOG.info(\"handle file %s:\" % os.path.join(root, file_))"},{"line_number":385,"context_line":"                        flag \u003d True"},{"line_number":386,"context_line":"                        for e in exclude:"},{"line_number":387,"context_line":"                            if os.path.join(root, file_).find(e) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_67c47641","line":384,"range":{"start_line":384,"start_character":0,"end_line":384,"end_character":79},"updated":"2019-07-24 14:36:46.000000000","message":"^ ditto","commit_id":"ff19bcfbccc4c4823693eea9f264f7cc7c8940c8"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d7f372fc78d37a9979b8f33fa1af462456a4a681","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                        LOG.info(\"handle file %s:\" % os.path.join(root, file_))"},{"line_number":385,"context_line":"                        flag \u003d True"},{"line_number":386,"context_line":"                        for e in exclude:"},{"line_number":387,"context_line":"                            if os.path.join(root, file_).find(e) !\u003d -1:"},{"line_number":388,"context_line":"                                flag \u003d False"},{"line_number":389,"context_line":"                                break"},{"line_number":390,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_472ffaf5","line":387,"range":{"start_line":387,"start_character":31,"end_line":387,"end_character":64},"updated":"2019-07-24 14:36:46.000000000","message":"^ ditto","commit_id":"ff19bcfbccc4c4823693eea9f264f7cc7c8940c8"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d7f372fc78d37a9979b8f33fa1af462456a4a681","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                                flag \u003d False"},{"line_number":389,"context_line":"                                break"},{"line_number":390,"context_line":"                        if flag:"},{"line_number":391,"context_line":"                            set_perms(os.path.join(root, file_),"},{"line_number":392,"context_line":"                                      uid, gid, perm)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_47bcdaba","line":391,"range":{"start_line":391,"start_character":38,"end_line":391,"end_character":50},"updated":"2019-07-24 14:36:46.000000000","message":"compute this once per branch and reuse variable, this may also make this prticular line shorter","commit_id":"ff19bcfbccc4c4823693eea9f264f7cc7c8940c8"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":382,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":383,"context_line":"                    for dir_ in dirs:"},{"line_number":384,"context_line":"                        full_path \u003d os.path.join(root, dir_)"},{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"fae3877d_bff25587","line":385,"updated":"2021-12-27 13:14:58.000000000","message":"needless extra logging","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":383,"context_line":"                    for dir_ in dirs:"},{"line_number":384,"context_line":"                        full_path \u003d os.path.join(root, dir_)"},{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"b3a70929_3f5719ce","line":385,"in_reply_to":"fae3877d_bff25587","updated":"2024-04-24 12:30:47.000000000","message":"I\u0027d leave that logging, but increase severity. Might be useful for debug.","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":383,"context_line":"                    for dir_ in dirs:"},{"line_number":384,"context_line":"                        full_path \u003d os.path.join(root, dir_)"},{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":389,"context_line":"                                flag \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"2de5cac8_53254377","line":386,"updated":"2021-12-27 13:14:58.000000000","message":"let\u0027s give it a sensible name, like, \"not_excluded\" (or \"excluded\" and do the logic in inverse)","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                    for dir_ in dirs:"},{"line_number":384,"context_line":"                        full_path \u003d os.path.join(root, dir_)"},{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":389,"context_line":"                                flag \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"4597e2a4_f7433a2c","line":386,"in_reply_to":"2de5cac8_53254377","updated":"2024-04-24 12:30:47.000000000","message":"I\u0027d rework this whole part, as we do the same twice (for dirs and files) I\u0027d move that to separate local function. Remove that flag altogether and simply act if entity (file or dir) is not found in exclude list.","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":389,"context_line":"                                flag \u003d False"},{"line_number":390,"context_line":"                                break"},{"line_number":391,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":8,"id":"0e5683c6_1771b792","line":388,"updated":"2021-12-27 13:14:58.000000000","message":"making it a regexp search would be more flexible","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"f6c2e87e4eca9a57c0b46b153352ade27a4e70c4","unresolved":false,"context_lines":[{"line_number":385,"context_line":"                        LOG.info(\"check dir %s for exclude\" % full_path)"},{"line_number":386,"context_line":"                        flag \u003d True"},{"line_number":387,"context_line":"                        for exclude_ in exclude:"},{"line_number":388,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":389,"context_line":"                                flag \u003d False"},{"line_number":390,"context_line":"                                break"},{"line_number":391,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7b4192be_c9d7eebf","line":388,"in_reply_to":"0e5683c6_1771b792","updated":"2024-04-25 08:08:44.000000000","message":"Done","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":392,"context_line":"                            set_perms(full_path, uid, gid, perm)"},{"line_number":393,"context_line":"                    for file_ in files:"},{"line_number":394,"context_line":"                        full_path \u003d os.path.join(root, file_)"},{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"6bc1ae0f_13b890c4","line":395,"updated":"2021-12-27 13:14:58.000000000","message":"ditto","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                            set_perms(full_path, uid, gid, perm)"},{"line_number":393,"context_line":"                    for file_ in files:"},{"line_number":394,"context_line":"                        full_path \u003d os.path.join(root, file_)"},{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"94a324d1_1d16d511","line":395,"in_reply_to":"6bc1ae0f_13b890c4","updated":"2024-04-24 12:30:47.000000000","message":"Done","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":393,"context_line":"                    for file_ in files:"},{"line_number":394,"context_line":"                        full_path \u003d os.path.join(root, file_)"},{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":399,"context_line":"                                flag \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"1e6334a7_37fb4dd0","line":396,"updated":"2021-12-27 13:14:58.000000000","message":"ditto","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                    for file_ in files:"},{"line_number":394,"context_line":"                        full_path \u003d os.path.join(root, file_)"},{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":399,"context_line":"                                flag \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"3d2e4d95_193f3f9e","line":396,"in_reply_to":"1e6334a7_37fb4dd0","updated":"2024-04-24 12:30:47.000000000","message":"Done","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":399,"context_line":"                                flag \u003d False"},{"line_number":400,"context_line":"                                break"},{"line_number":401,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":8,"id":"c714dd9f_79e5ff85","line":398,"updated":"2021-12-27 13:14:58.000000000","message":"ditto","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                        LOG.info(\"check file %s for exclude\" % full_path)"},{"line_number":396,"context_line":"                        flag \u003d True"},{"line_number":397,"context_line":"                        for exclude_ in exclude:"},{"line_number":398,"context_line":"                            if full_path.find(exclude_) !\u003d -1:"},{"line_number":399,"context_line":"                                flag \u003d False"},{"line_number":400,"context_line":"                                break"},{"line_number":401,"context_line":"                        if flag:"}],"source_content_type":"text/x-python","patch_set":8,"id":"d4185d04_fc3d07c7","line":398,"in_reply_to":"c714dd9f_79e5ff85","updated":"2024-04-24 12:30:47.000000000","message":"Done","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c880a08b774fd1050b802722e3f2b8e24e8526d2","unresolved":true,"context_lines":[{"line_number":399,"context_line":"                                flag \u003d False"},{"line_number":400,"context_line":"                                break"},{"line_number":401,"context_line":"                        if flag:"},{"line_number":402,"context_line":"                            set_perms(full_path, uid, gid, perm)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"def execute_config_strategy(config):"}],"source_content_type":"text/x-python","patch_set":8,"id":"383f596e_7c6ba25b","line":402,"updated":"2021-12-27 13:14:58.000000000","message":"since the second branch is actually an adapted copy of the first branch, it would be best to add all this code in the \"set_perms\" function instead","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"929be424b917ec1f150f54ab25c69b1e5cd92891","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                                flag \u003d False"},{"line_number":400,"context_line":"                                break"},{"line_number":401,"context_line":"                        if flag:"},{"line_number":402,"context_line":"                            set_perms(full_path, uid, gid, perm)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"def execute_config_strategy(config):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ef938afc_f2b0e43e","line":402,"in_reply_to":"383f596e_7c6ba25b","updated":"2024-04-24 12:30:47.000000000","message":"As we do the same twice (for dirs and files) I\u0027d move that to new local function, but keep it separate from set_perms, to keep set_perms  do only the things it says in it\u0027s name.","commit_id":"cd40b891b750640c2bddd62fcf4eebb10c352c99"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"d93966eab44e6e6b15f65eb6e9b6774f79d5f1c3","unresolved":true,"context_lines":[{"line_number":377,"context_line":"                    LOG.exception(\u0027Failed to set permission of %s to %s\u0027,"},{"line_number":378,"context_line":"                                  path, perm)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"        def handle_exclusion(path_suffix):"},{"line_number":381,"context_line":"            full_path \u003d os.path.join(root, path_suffix)"},{"line_number":382,"context_line":"            LOG.debug(\"Checking for exclusion: %s\" % full_path)"},{"line_number":383,"context_line":"            if exclude:"}],"source_content_type":"text/x-python","patch_set":13,"id":"8909a372_58e8db4c","line":380,"range":{"start_line":380,"start_character":0,"end_line":380,"end_character":2},"updated":"2024-04-29 14:25:33.000000000","message":"I think it would be better to be explicit about which variables this function has access to, like this:\n\n```\ndef handle_exclusion(root, path_suffix):\n```\n\nthe current code works, because both the function caller and the function live inside the same scope (the handle_permissions function). But if this is refactored in the future this could get wrong. Make it please more robust by being explicit about the used variables, thank you.","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"cfd7b5cb0be451d8296d190d83e8c5d6f94ec090","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                    LOG.exception(\u0027Failed to set permission of %s to %s\u0027,"},{"line_number":378,"context_line":"                                  path, perm)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"        def handle_exclusion(path_suffix):"},{"line_number":381,"context_line":"            full_path \u003d os.path.join(root, path_suffix)"},{"line_number":382,"context_line":"            LOG.debug(\"Checking for exclusion: %s\" % full_path)"},{"line_number":383,"context_line":"            if exclude:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7843af2d_7e1c6b74","line":380,"range":{"start_line":380,"start_character":0,"end_line":380,"end_character":2},"in_reply_to":"8909a372_58e8db4c","updated":"2024-04-30 14:18:20.000000000","message":"Done","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"d93966eab44e6e6b15f65eb6e9b6774f79d5f1c3","unresolved":true,"context_lines":[{"line_number":392,"context_line":"            if recurse and os.path.isdir(dest):"},{"line_number":393,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":394,"context_line":"                    for dir_ in dirs:"},{"line_number":395,"context_line":"                        handle_exclusion(dir_)"},{"line_number":396,"context_line":"                    for file_ in files:"},{"line_number":397,"context_line":"                        handle_exclusion(file_)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"def execute_config_strategy(config):"}],"source_content_type":"text/x-python","patch_set":13,"id":"88b6ced2_a972c24d","line":397,"range":{"start_line":395,"start_character":0,"end_line":397,"end_character":47},"updated":"2024-04-29 14:25:33.000000000","message":"as stated above, it would be better to be explicit here about the calling convention for this function, e.g.:\n\n```\nhandle_exclusion(root, dir_)\n```","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"},{"author":{"_account_id":34076,"name":"Jakub Darmach","email":"jakub@stackhpc.com","username":"darmach"},"change_message_id":"cfd7b5cb0be451d8296d190d83e8c5d6f94ec090","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            if recurse and os.path.isdir(dest):"},{"line_number":393,"context_line":"                for root, dirs, files in os.walk(dest):"},{"line_number":394,"context_line":"                    for dir_ in dirs:"},{"line_number":395,"context_line":"                        handle_exclusion(dir_)"},{"line_number":396,"context_line":"                    for file_ in files:"},{"line_number":397,"context_line":"                        handle_exclusion(file_)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"def execute_config_strategy(config):"}],"source_content_type":"text/x-python","patch_set":13,"id":"a57f8907_41d14ca2","line":397,"range":{"start_line":395,"start_character":0,"end_line":397,"end_character":47},"in_reply_to":"88b6ced2_a972c24d","updated":"2024-04-30 14:18:20.000000000","message":"Done","commit_id":"55835cea0ffbf0410abd32d7a8cbeb942ac0309f"}]}
