docs: private static void setPublisherInfo(Map<String, String> env, Run build, BuildInfo pipelineBuildInfo, PublisherContext context,
                                           ArtifactoryClientConfiguration configuration) {
          configuration.setActivateRecorder(Boolean.TRUE);
          String buildName;
          String buildNumber;
          if (pipelineBuildInfo != null) {
              buildName = pipelineBuildInfo.getName();
              buildNumber = pipelineBuildInfo.getNumber();
          } else {
              buildName = context.isOverrideBuildName() ? context.getCustomBuildName() : BuildUniqueIdentifierHelper.getBuildName(build);
              buildNumber = BuildUniqueIdentifierHelper.getBuildNumber(build);
          }
  
          configuration.info.setBuildName(buildName);
          configuration.publisher.addMatrixParam("build.name", buildName);
          configuration.info.setBuildNumber(buildNumber);
          configuration.publisher.addMatrixParam("build.number", buildNumber);
          configuration.info.setArtifactoryPluginVersion(ActionableHelper.getArtifactoryPluginVersion());
  
          Date buildStartDate = build.getTimestamp().getTime();
          configuration.info.setBuildStarted(buildStartDate.getTime());
          configuration.info.setBuildTimestamp(String.valueOf(build.getStartTimeInMillis()));
          configuration.publisher.addMatrixParam("build.timestamp", String.valueOf(build.getStartTimeInMillis()));
  
          String vcsRevision = getVcsRevision(env);
          if (StringUtils.isNotBlank(vcsRevision)) {
              configuration.info.setVcsRevision(vcsRevision);
              configuration.publisher.addMatrixParam(BuildInfoFields.VCS_REVISION, vcsRevision);
          }
  
          String vcsUrl = getVcsUrl(env);
          if (StringUtils.isNotBlank(vcsUrl)) {
              configuration.info.setVcsUrl(vcsUrl);
          }
  
          if (StringUtils.isNotBlank(context.getArtifactsPattern())) {
              configuration.publisher.setIvyArtifactPattern(Util.replaceMacro(context.getArtifactsPattern(), env));
          }
          if (StringUtils.isNotBlank(context.getIvyPattern())) {
              configuration.publisher.setIvyPattern(Util.replaceMacro(context.getIvyPattern(), env));
          }
          configuration.publisher.setM2Compatible(context.isMaven2Compatible());
          String buildUrl = ActionableHelper.getBuildUrl(build);
          if (StringUtils.isNotBlank(buildUrl)) {
              configuration.info.setBuildUrl(buildUrl);
          }
  
          String userName = null;
          Cause.UpstreamCause parent = ActionableHelper.getUpstreamCause(build);
          if (parent != null) {
              String parentProject = sanitizeBuildName(parent.getUpstreamProject());
              configuration.info.setParentBuildName(parentProject);
              configuration.publisher.addMatrixParam(BuildInfoFields.BUILD_PARENT_NAME, parentProject);
              String parentBuildNumber = parent.getUpstreamBuild() + "";
              configuration.info.setParentBuildNumber(parentBuildNumber);
              configuration.publisher.addMatrixParam(BuildInfoFields.BUILD_PARENT_NUMBER, parentBuildNumber);
              userName = "auto";
          }
  
          userName = ActionableHelper.getUserCausePrincipal(build, userName);
  
          configuration.info.setPrincipal(userName);
          configuration.info.setAgentName("Jenkins");
          configuration.info.setAgentVersion(Jenkins.VERSION);
          ArtifactoryServer artifactoryServer = context.getArtifactoryServer();
          if (artifactoryServer != null) {
              CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(context.getDeployerOverrider(), artifactoryServer);
              if (StringUtils.isNotBlank(preferredDeployer.provideUsername(build.getParent()))) {
                  configuration.publisher.setUsername(preferredDeployer.provideUsername(build.getParent()));
                  configuration.publisher.setPassword(preferredDeployer.providePassword(build.getParent()));
              }
              configuration.setTimeout(artifactoryServer.getTimeout());
              setRetryParams(configuration, artifactoryServer);
  
              configuration.publisher.setContextUrl(artifactoryServer.getUrl());
          }
  
          ServerDetails serverDetails = context.getServerDetails();
          if (serverDetails != null) {
              String inputRepKey = serverDetails.getDeployReleaseRepositoryKey();
              String repoKEy = Util.replaceMacro(inputRepKey, env);
              configuration.publisher.setRepoKey(repoKEy);
              String inputSnapshotRepKey = serverDetails.getDeploySnapshotRepositoryKey();
              String snapshotRepoKey = Util.replaceMacro(inputSnapshotRepKey, env);
              configuration.publisher.setSnapshotRepoKey(snapshotRepoKey);
          }
  
          if (context.isDiscardOldBuilds()) {
              BuildRetention buildRetention = BuildRetentionFactory.createBuildRetention(build, context.isDiscardBuildArtifacts());
              if (buildRetention.getCount() > -1) {
                  configuration.info.setBuildRetentionCount(buildRetention.getCount());
              }
              if (buildRetention.getMinimumBuildDate() != null) {
                  long days = daysBetween(buildRetention.getMinimumBuildDate(), new Date());
                  configuration.info.setBuildRetentionMinimumDate(String.valueOf(days));
              }
              configuration.info.setDeleteBuildArtifacts(context.isDiscardBuildArtifacts());
              configuration.info.setAsyncBuildRetention(context.isAsyncBuildRetention());
              configuration.info.setBuildNumbersNotToDelete(getBuildNumbersNotToBeDeletedAsString(build));
          }
          configuration.publisher.setPublishArtifacts(context.isDeployArtifacts());
          configuration.publisher.setEvenUnstable(context.isEvenIfUnstable());
          if (context.isDeployIvy() != null) {
              configuration.publisher.setIvy(context.isDeployIvy());
          }
          if (context.isDeployMaven() != null) {
              configuration.publisher.setMaven(context.isDeployMaven());
          }
          IncludesExcludes deploymentPatterns = context.getIncludesExcludes();
          if (deploymentPatterns != null) {
              String includePatterns = deploymentPatterns.getIncludePatterns();
              if (StringUtils.isNotBlank(includePatterns)) {
                  configuration.publisher.setIncludePatterns(Util.replaceMacro(includePatterns, env));
              }
              String excludePatterns = deploymentPatterns.getExcludePatterns();
              if (StringUtils.isNotBlank(excludePatterns)) {
                  configuration.publisher.setExcludePatterns(Util.replaceMacro(excludePatterns, env));
              }
          }
          ReleaseAction releaseAction = ActionableHelper.getLatestAction(build, ReleaseAction.class);
          if (releaseAction != null) {
              configuration.info.setReleaseEnabled(true);
              String comment = releaseAction.getStagingComment();
              if (StringUtils.isNotBlank(comment)) {
                  configuration.info.setReleaseComment(comment);
              }
          }
          configuration.publisher.setFilterExcludedArtifactsFromBuild(context.isFilterExcludedArtifactsFromBuild());
          configuration.publisher.setPublishBuildInfo(!context.isSkipBuildInfoDeploy());
          configuration.publisher.setRecordAllDependencies(context.isRecordAllDependencies());
          configuration.setIncludeEnvVars(context.isIncludeEnvVars());
          IncludesExcludes envVarsPatterns = context.getEnvVarsPatterns();
          if (envVarsPatterns != null) {
              configuration.setEnvVarsIncludePatterns(Util.replaceMacro(envVarsPatterns.getIncludePatterns(), env));
              configuration.setEnvVarsExcludePatterns(Util.replaceMacro(envVarsPatterns.getExcludePatterns(), env));
          }
          addDeploymentProperties(context, configuration.publisher, env);
      }