)]}'
{"observabilityclient/rbac.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c49af56ec5961abfb84239ae86a6c3e8cd045f85","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        # rest of this module doesn\u0027t support that right now, so use a"},{"line_number":28,"context_line":"        # Prometheus 2 regex and raise an exception when it doesn\u0027t match."},{"line_number":29,"context_line":"        # See https://prometheus.io/docs/concepts/data_model/"},{"line_number":30,"context_line":"        label_name_regex \u003d \"[a-zA-Z_][a-zA-Z0-9_]*\""},{"line_number":31,"context_line":"        if not re.fullmatch(label_name_regex, project_label):"},{"line_number":32,"context_line":"            raise ValueError("},{"line_number":33,"context_line":"                f\"Project label {project_label} doesn\u0027t match the \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1e686d8b_a110bf08","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":50},"updated":"2025-07-06 12:31:07.000000000","message":"Should we reject an empty string ?","commit_id":"6e8381853cda752b53fac18c7cc3f2e7dc0b6b2c"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"8b23d856beb2be6ee9814ef9f3688dcbadd4126c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        # rest of this module doesn\u0027t support that right now, so use a"},{"line_number":28,"context_line":"        # Prometheus 2 regex and raise an exception when it doesn\u0027t match."},{"line_number":29,"context_line":"        # See https://prometheus.io/docs/concepts/data_model/"},{"line_number":30,"context_line":"        label_name_regex \u003d \"[a-zA-Z_][a-zA-Z0-9_]*\""},{"line_number":31,"context_line":"        if not re.fullmatch(label_name_regex, project_label):"},{"line_number":32,"context_line":"            raise ValueError("},{"line_number":33,"context_line":"                f\"Project label {project_label} doesn\u0027t match the \""}],"source_content_type":"text/x-python","patch_set":1,"id":"f0995019_14607c14","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":50},"in_reply_to":"1e686d8b_a110bf08","updated":"2025-07-07 07:56:05.000000000","message":"IMO empty string doesn\u0027t make sense. The regex is taken directly from Prometheus documentation (from the link in the comment above). I added an empty string label name into the tests just to ensure this raises the exception as it\u0027s supposed to.","commit_id":"6e8381853cda752b53fac18c7cc3f2e7dc0b6b2c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3be40157f481eb8475a7dd55a914a676bb7cdc9b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        # rest of this module doesn\u0027t support that right now, so use a"},{"line_number":28,"context_line":"        # Prometheus 2 regex and raise an exception when it doesn\u0027t match."},{"line_number":29,"context_line":"        # See https://prometheus.io/docs/concepts/data_model/"},{"line_number":30,"context_line":"        label_name_regex \u003d \"[a-zA-Z_][a-zA-Z0-9_]*\""},{"line_number":31,"context_line":"        if not re.fullmatch(label_name_regex, project_label):"},{"line_number":32,"context_line":"            raise ValueError("},{"line_number":33,"context_line":"                f\"Project label {project_label} doesn\u0027t match the \""}],"source_content_type":"text/x-python","patch_set":1,"id":"0ece4f9d_e35a997a","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":50},"in_reply_to":"f0995019_14607c14","updated":"2025-07-07 09:31:14.000000000","message":"I somehow misunderstood the regex and noticed that it does NOT accept an empty string. (I thought it could...)","commit_id":"6e8381853cda752b53fac18c7cc3f2e7dc0b6b2c"}]}
