code: private List<Artifact> processUploads(TrackedContentDTO report)
              throws RepositoryManagerException {
          Logger logger = LoggerFactory.getLogger(getClass());
  
          Set<TrackedContentEntryDTO> uploads = report.getUploads();
          if (uploads != null) {
              List<Artifact> builds = new ArrayList<>();
  
              for (TrackedContentEntryDTO upload : uploads) {
                  String path = upload.getPath();
                  StoreKey storeKey = upload.getStoreKey();
                  if (ignoreContent(storeKey.getPackageType(), path)) {
                      logger.debug("Ignoring upload (matched in ignored-suffixes): {} (From: {})", path, storeKey);
                      continue;
                  }
  
                  String identifier = computeIdentifier(upload);
  
                  logger.info("Recording upload: {}", identifier);
  
                  IndyContentClientModule content;
                  try {
                      content = indy.content();
                  } catch (IndyClientException e) {
                      throw new RepositoryManagerException("Failed to retrieve Indy content module. Reason: %s", e, e.getMessage());
                  }
  
                  RepositoryType repoType = toRepoType(storeKey.getPackageType());
                  TargetRepository targetRepository = getUploadsTargetRepository(repoType, content);
  
                  ArtifactQuality artifactQuality = getArtifactQuality(isTempBuild);
                  Artifact.Builder artifactBuilder = Artifact.Builder.newBuilder()
                          .md5(upload.getMd5())
                          .sha1(upload.getSha1())
                          .sha256(upload.getSha256())
                          .size(upload.getSize())
                          .deployPath(upload.getPath())
                          .filename(new File(path).getName())
                          .identifier(identifier)
                          .targetRepository(targetRepository)
                          .artifactQuality(artifactQuality);
  
                  Artifact artifact = validateArtifact(artifactBuilder.build());
                  builds.add(artifact);
              }
  
              return builds;
          }
          return Collections.emptyList();
      }
docs: Return output artifacts metadata.
  
  @param report The tracking report that contains info about artifacts uploaded (output) from the build
  @return List of output artifacts meta data
  @throws RepositoryManagerException In case of a client API transport error or an error during promotion of artifacts