docs: public static BuildInfo getBuildInfo(FilePath ws, Run build, String customBuildName, String customBuildNumber) throws IOException, InterruptedException {
          String jobBuildNumber = BuildUniqueIdentifierHelper.getBuildNumber(build);
          String buildInfoId = createBuildInfoId(build, customBuildName, customBuildNumber);
  
          BuildDataFile buildDataFile = readBuildDataFile(ws, jobBuildNumber, BuildInfoStep.STEP_NAME, buildInfoId);
          if (buildDataFile == null) {
              BuildInfo buildInfo = new BuildInfo(build);
              if (StringUtils.isNotBlank(customBuildName)) {
                  buildInfo.setName(customBuildName);
              }
              if (StringUtils.isNotBlank(customBuildNumber)) {
                  buildInfo.setNumber(customBuildNumber);
              }
              return buildInfo;
          }
          return Utils.mapper().treeToValue(buildDataFile.get(BuildInfoStep.STEP_NAME), BuildInfo.class);
      }