)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"6621cabe534dedf73fd9fa1a3039c0acf85a7972","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5b028433_3a517dde","updated":"2026-02-03 10:33:40.000000000","message":"@zhang.jingwei@algoblu.com Hi, this change works correctly on my local environment, but the CI/build pipeline fails with “Build failed”. Could you please help me understand why it fails in the build environment, and what changes are needed to make it compatible with the pipeline?","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"ab0f25463b9788741ac6face74fa4ca84ded5215","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3a28e3a0_bf61e1c5","updated":"2026-02-02 10:05:44.000000000","message":"You need to solve below issue on instance detail page. \n  1) The Instance Page\n       successfully detail:\n     AssertionError: Timed out retrying after 4000ms: Expected to find element: `.ant-descriptions-item-content`, but never found it.\n      at Context.eval (http://127.0.0.1:9999/__cypress/tests?p\u003dtest/e2e/support/index.js:4836:6)","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"6cfb58e8346e19eeb7b27095f153fb72fcf2542a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"32612fa7_c42fcaf5","updated":"2026-02-02 08:55:55.000000000","message":"recheck","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"9c319df9cee110a6ae98c779cb81f628f7b0d97d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c5415f28_e24def9d","updated":"2026-01-30 11:38:33.000000000","message":"recheck","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"5c655e6d204d9b5af3592f0cfb1095f1d6fe7d6c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f52452b1_2ec342bd","updated":"2026-01-30 14:25:54.000000000","message":"recheck","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"3aae5e5da1fc9cf012cc2e3c49f317eb29dfc6aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"496069cb_0af8fef5","updated":"2026-02-06 12:35:09.000000000","message":"recheck get fresh results","commit_id":"03463b9af5b3b0b0d9b2710f02f9c252a803ebac"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"54346350c9e69db936d7771f7668d3db488689ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a230fd76_743d867f","updated":"2026-02-10 05:47:26.000000000","message":"recheck","commit_id":"04d0d5ab4b4f02b4560d1e8f2f375a64cecae68a"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"b92ef08a98979242ff8ffdf0483c7f5de194bc2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"031ce7e7_3a43292f","updated":"2026-02-13 16:51:15.000000000","message":"recheck","commit_id":"3e91d43bff908946b3b9c2de4ae2ab8414fb7156"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"242055f0897618a3cb9bb8e3e4daa5f128c7db38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f4d7a0a2_27a26f34","updated":"2026-02-13 16:43:08.000000000","message":"recheck","commit_id":"3e91d43bff908946b3b9c2de4ae2ab8414fb7156"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"413bf9786f3f0069d6bbdd9f2c560adba82bc03d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"14e73c62_3d0e7976","updated":"2026-02-13 07:50:24.000000000","message":"recheck unrelated failure","commit_id":"3e91d43bff908946b3b9c2de4ae2ab8414fb7156"}],"src/client/client/request.js":[{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"2c21679784380c2f2f57580c01ae88bbf9ac33a7","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  addVersion(config, url) {"},{"line_number":70,"context_line":"    const {"},{"line_number":71,"context_line":"      getOpenstackApiVersion,"},{"line_number":72,"context_line":"      getOpenstackActionApiVersion,"},{"line_number":73,"context_line":"      apiActionVersionMaps,"},{"line_number":74,"context_line":"      apiUrlVersionMaps,"},{"line_number":75,"context_line":"      getOpenstackUrlApiVersion,"},{"line_number":76,"context_line":"    } \u003d require(\u0027./constants\u0027);"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    const apiVersionMap \u003d getOpenstackApiVersion(url);"},{"line_number":79,"context_line":"    if (apiVersionMap) {"},{"line_number":80,"context_line":"      config.headers[apiVersionMap.key] \u003d apiVersionMap.value;"},{"line_number":81,"context_line":"    }"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    const actionService \u003d Object.keys(apiActionVersionMaps).find((it) \u003d\u003e"},{"line_number":84,"context_line":"      url.includes(it)"},{"line_number":85,"context_line":"    );"},{"line_number":86,"context_line":"    if (actionService) {"},{"line_number":87,"context_line":"      const requestKey \u003d this.getActionRequestKey(config.data);"},{"line_number":88,"context_line":"      if (requestKey) {"},{"line_number":89,"context_line":"        const actionVersion \u003d getOpenstackActionApiVersion("},{"line_number":90,"context_line":"          actionService,"},{"line_number":91,"context_line":"          requestKey"},{"line_number":92,"context_line":"        );"},{"line_number":93,"context_line":"        if (actionVersion) {"},{"line_number":94,"context_line":"          config.headers[actionVersion.key] \u003d actionVersion.value;"},{"line_number":95,"context_line":"        }"},{"line_number":96,"context_line":"      }"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    const urlService \u003d Object.keys(apiUrlVersionMaps).find((it) \u003d\u003e"},{"line_number":100,"context_line":"      url.includes(it)"},{"line_number":101,"context_line":"    );"},{"line_number":102,"context_line":"    if (urlService) {"},{"line_number":103,"context_line":"      const method \u003d (config.method || \u0027\u0027).toLowerCase();"},{"line_number":104,"context_line":"      if (method \u003d\u003d\u003d \u0027get\u0027) {"},{"line_number":105,"context_line":"        const urlVersion \u003d getOpenstackUrlApiVersion(urlService, url);"},{"line_number":106,"context_line":"        if (urlVersion) {"},{"line_number":107,"context_line":"          config.headers[urlVersion.key] \u003d urlVersion.value;"},{"line_number":108,"context_line":"        }"},{"line_number":109,"context_line":"      }"},{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":"  }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  getActionRequestKey(data) {"},{"line_number":114,"context_line":"    if (!data) {"},{"line_number":115,"context_line":"      return null;"},{"line_number":116,"context_line":"    }"},{"line_number":117,"context_line":"    let payload \u003d data;"},{"line_number":118,"context_line":"    if (typeof payload \u003d\u003d\u003d \u0027string\u0027) {"},{"line_number":119,"context_line":"      try {"},{"line_number":120,"context_line":"        payload \u003d JSON.parse(payload);"},{"line_number":121,"context_line":"      } catch (e) {"},{"line_number":122,"context_line":"        return null;"},{"line_number":123,"context_line":"      }"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":"    if (typeof payload !\u003d\u003d \u0027object\u0027 || Array.isArray(payload)) {"},{"line_number":126,"context_line":"      return null;"},{"line_number":127,"context_line":"    }"},{"line_number":128,"context_line":"    const keys \u003d Object.keys(payload);"},{"line_number":129,"context_line":"    if (keys.length !\u003d\u003d 1) {"},{"line_number":130,"context_line":"      return null;"},{"line_number":131,"context_line":"    }"},{"line_number":132,"context_line":"    return keys[0];"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  updateHeaderByConfig(config) {"},{"line_number":136,"context_line":"    const { options: { headers, isFormData, ...rest } \u003d {} } \u003d config;"}],"source_content_type":"text/javascript","patch_set":3,"id":"915ade38_ecad8c47","line":133,"range":{"start_line":70,"start_character":0,"end_line":133,"end_character":3},"updated":"2026-02-11 10:07:09.000000000","message":"It\u0027s better to add a unified function `getOpenstackApiVersionForRequest(config, url)` in `constants.js` to retrieve the version key and value. This function returns `{ serviceKey: \u0027xxx\u0027, serviceVersion: \u0027yyyy\u0027 }`, and we can use it in request.js.","commit_id":"45d7edbfc916c1938f8d86b8e5edb7278c3fc699"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"6e3f9d81a050c2737b6ec9ffbe853b238de117d7","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  addVersion(config, url) {"},{"line_number":70,"context_line":"    const {"},{"line_number":71,"context_line":"      getOpenstackApiVersion,"},{"line_number":72,"context_line":"      getOpenstackActionApiVersion,"},{"line_number":73,"context_line":"      apiActionVersionMaps,"},{"line_number":74,"context_line":"      apiUrlVersionMaps,"},{"line_number":75,"context_line":"      getOpenstackUrlApiVersion,"},{"line_number":76,"context_line":"    } \u003d require(\u0027./constants\u0027);"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    const apiVersionMap \u003d getOpenstackApiVersion(url);"},{"line_number":79,"context_line":"    if (apiVersionMap) {"},{"line_number":80,"context_line":"      config.headers[apiVersionMap.key] \u003d apiVersionMap.value;"},{"line_number":81,"context_line":"    }"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    const actionService \u003d Object.keys(apiActionVersionMaps).find((it) \u003d\u003e"},{"line_number":84,"context_line":"      url.includes(it)"},{"line_number":85,"context_line":"    );"},{"line_number":86,"context_line":"    if (actionService) {"},{"line_number":87,"context_line":"      const requestKey \u003d this.getActionRequestKey(config.data);"},{"line_number":88,"context_line":"      if (requestKey) {"},{"line_number":89,"context_line":"        const actionVersion \u003d getOpenstackActionApiVersion("},{"line_number":90,"context_line":"          actionService,"},{"line_number":91,"context_line":"          requestKey"},{"line_number":92,"context_line":"        );"},{"line_number":93,"context_line":"        if (actionVersion) {"},{"line_number":94,"context_line":"          config.headers[actionVersion.key] \u003d actionVersion.value;"},{"line_number":95,"context_line":"        }"},{"line_number":96,"context_line":"      }"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    const urlService \u003d Object.keys(apiUrlVersionMaps).find((it) \u003d\u003e"},{"line_number":100,"context_line":"      url.includes(it)"},{"line_number":101,"context_line":"    );"},{"line_number":102,"context_line":"    if (urlService) {"},{"line_number":103,"context_line":"      const method \u003d (config.method || \u0027\u0027).toLowerCase();"},{"line_number":104,"context_line":"      if (method \u003d\u003d\u003d \u0027get\u0027) {"},{"line_number":105,"context_line":"        const urlVersion \u003d getOpenstackUrlApiVersion(urlService, url);"},{"line_number":106,"context_line":"        if (urlVersion) {"},{"line_number":107,"context_line":"          config.headers[urlVersion.key] \u003d urlVersion.value;"},{"line_number":108,"context_line":"        }"},{"line_number":109,"context_line":"      }"},{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":"  }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  getActionRequestKey(data) {"},{"line_number":114,"context_line":"    if (!data) {"},{"line_number":115,"context_line":"      return null;"},{"line_number":116,"context_line":"    }"},{"line_number":117,"context_line":"    let payload \u003d data;"},{"line_number":118,"context_line":"    if (typeof payload \u003d\u003d\u003d \u0027string\u0027) {"},{"line_number":119,"context_line":"      try {"},{"line_number":120,"context_line":"        payload \u003d JSON.parse(payload);"},{"line_number":121,"context_line":"      } catch (e) {"},{"line_number":122,"context_line":"        return null;"},{"line_number":123,"context_line":"      }"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":"    if (typeof payload !\u003d\u003d \u0027object\u0027 || Array.isArray(payload)) {"},{"line_number":126,"context_line":"      return null;"},{"line_number":127,"context_line":"    }"},{"line_number":128,"context_line":"    const keys \u003d Object.keys(payload);"},{"line_number":129,"context_line":"    if (keys.length !\u003d\u003d 1) {"},{"line_number":130,"context_line":"      return null;"},{"line_number":131,"context_line":"    }"},{"line_number":132,"context_line":"    return keys[0];"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  updateHeaderByConfig(config) {"},{"line_number":136,"context_line":"    const { options: { headers, isFormData, ...rest } \u003d {} } \u003d config;"}],"source_content_type":"text/javascript","patch_set":3,"id":"682b7873_361ce54a","line":133,"range":{"start_line":70,"start_character":0,"end_line":133,"end_character":3},"in_reply_to":"915ade38_ecad8c47","updated":"2026-02-11 11:43:05.000000000","message":"Done","commit_id":"45d7edbfc916c1938f8d86b8e5edb7278c3fc699"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"d5b1ebf99adc15d4e446b515075736ed037edd0a","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    });"},{"line_number":77,"context_line":"  }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  getActionRequestKey(data) {"},{"line_number":80,"context_line":"    if (!data) {"},{"line_number":81,"context_line":"      return null;"},{"line_number":82,"context_line":"    }"},{"line_number":83,"context_line":"    let payload \u003d data;"},{"line_number":84,"context_line":"    if (typeof payload \u003d\u003d\u003d \u0027string\u0027) {"},{"line_number":85,"context_line":"      try {"},{"line_number":86,"context_line":"        payload \u003d JSON.parse(payload);"},{"line_number":87,"context_line":"      } catch (e) {"},{"line_number":88,"context_line":"        return null;"},{"line_number":89,"context_line":"      }"},{"line_number":90,"context_line":"    }"},{"line_number":91,"context_line":"    if (typeof payload !\u003d\u003d \u0027object\u0027 || Array.isArray(payload)) {"},{"line_number":92,"context_line":"      return null;"},{"line_number":93,"context_line":"    }"},{"line_number":94,"context_line":"    const keys \u003d Object.keys(payload);"},{"line_number":95,"context_line":"    if (keys.length !\u003d\u003d 1) {"},{"line_number":96,"context_line":"      return null;"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"    return keys[0];"},{"line_number":99,"context_line":"  }"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"  updateHeaderByConfig(config) {"},{"line_number":102,"context_line":"    const { options: { headers, isFormData, ...rest } \u003d {} } \u003d config;"}],"source_content_type":"text/javascript","patch_set":4,"id":"10e6b86c_2723b5a6","line":99,"range":{"start_line":79,"start_character":2,"end_line":99,"end_character":3},"updated":"2026-02-12 14:01:00.000000000","message":"Removable code.","commit_id":"97a30afe7c89c8ab9d98e75ea8dae097f1bcfd33"},{"author":{"_account_id":34671,"name":"Reşit Demir","email":"resit.demir@tubitak.gov.tr","username":"resitdemir"},"change_message_id":"fbf47631eaeb2417024764dde4188cd14e5e923b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    });"},{"line_number":77,"context_line":"  }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  getActionRequestKey(data) {"},{"line_number":80,"context_line":"    if (!data) {"},{"line_number":81,"context_line":"      return null;"},{"line_number":82,"context_line":"    }"},{"line_number":83,"context_line":"    let payload \u003d data;"},{"line_number":84,"context_line":"    if (typeof payload \u003d\u003d\u003d \u0027string\u0027) {"},{"line_number":85,"context_line":"      try {"},{"line_number":86,"context_line":"        payload \u003d JSON.parse(payload);"},{"line_number":87,"context_line":"      } catch (e) {"},{"line_number":88,"context_line":"        return null;"},{"line_number":89,"context_line":"      }"},{"line_number":90,"context_line":"    }"},{"line_number":91,"context_line":"    if (typeof payload !\u003d\u003d \u0027object\u0027 || Array.isArray(payload)) {"},{"line_number":92,"context_line":"      return null;"},{"line_number":93,"context_line":"    }"},{"line_number":94,"context_line":"    const keys \u003d Object.keys(payload);"},{"line_number":95,"context_line":"    if (keys.length !\u003d\u003d 1) {"},{"line_number":96,"context_line":"      return null;"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"    return keys[0];"},{"line_number":99,"context_line":"  }"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"  updateHeaderByConfig(config) {"},{"line_number":102,"context_line":"    const { options: { headers, isFormData, ...rest } \u003d {} } \u003d config;"}],"source_content_type":"text/javascript","patch_set":4,"id":"1c9a273e_959249fa","line":99,"range":{"start_line":79,"start_character":2,"end_line":99,"end_character":3},"in_reply_to":"10e6b86c_2723b5a6","updated":"2026-02-13 05:51:29.000000000","message":"Done","commit_id":"97a30afe7c89c8ab9d98e75ea8dae097f1bcfd33"}]}
