boolean isCleanCredHelperScript();
+ boolean isProvideCredHelper();
+
/**
* Defines how progress output from git commands is written into build log
*/
public class BuildContext implements Context {
private final AgentRunningBuild myBuild;
+ private final AgentPluginConfig myConfig;
- public BuildContext(@NotNull AgentRunningBuild build) {
+ public BuildContext(@NotNull AgentRunningBuild build,
+ @NotNull AgentPluginConfig config) {
myBuild = build;
+ myConfig = config;
}
@Nullable
return value;
return null;
}
+
+ @Override
+ public boolean isProvideCredHelper() {
+ return myConfig.isProvideCredHelper();
+ }
}
@Nullable
String getSshMacType();
+ boolean isProvideCredHelper();
+
}
boolean cleanCheckoutRequested) throws VcsException {
AgentPluginConfig config = myConfigFactory.createConfig(build, root);
Map<String, String> env = getGitCommandEnv(config, build);
- GitFactory gitFactory = myGitMetaFactory.createFactory(mySshService, config, getLogger(build, config), build.getBuildTempDirectory(), env, new BuildContext(build));
+ GitFactory gitFactory = myGitMetaFactory.createFactory(mySshService, config, getLogger(build, config), build.getBuildTempDirectory(), env, new BuildContext(build, config));
Pair<CheckoutMode, File> targetDirAndMode = getTargetDirAndMode(config, rules, checkoutDirectory);
CheckoutMode mode = targetDirAndMode.first;
File targetDir = targetDirAndMode.second;
public ExecResult run(@NotNull GitCommandSettings settings) throws VcsException {
AuthSettings authSettings = settings.getAuthSettings();
- if (!getParametersList().getParametersString().contains("credential.helper") && !myGitVersion.isLessThan(UpdaterImpl.EMPTY_CRED_HELPER)) {
+ if (myCtx.isProvideCredHelper() && !getParametersList().getParametersString().contains("credential.helper") && !myGitVersion.isLessThan(UpdaterImpl.EMPTY_CRED_HELPER)) {
//Disable credential helper if it wasn't specified by us, as default
//helper can require a user input. Do that even if our repository doesn't
//require any auth, auth can be required by submodules or git lfs.
public String getSshMacType() {
return null;
}
+
+ @Override
+ public boolean isProvideCredHelper() {
+ return false;
+ }
}
public static final String FETCH_TAGS = "teamcity.git.fetchTags";
public static final String EXCLUDE_USERNAME_FROM_HTTP_URL = "teamcity.git.excludeUsernameFromHttpUrl";
public static final String CLEAN_CRED_HELPER_SCRIPT = "teamcity.git.cleanCredHelperScript";
+ public static final String PROVIDE_CRED_HELPER = "teamcity.git.provideCredentialHelper";
private final BuildAgentConfiguration myAgentConfig;
private final AgentRunningBuild myBuild;
return !"false".equals(value);
}
+ @Override
+ public boolean isProvideCredHelper() {
+ String value = myBuild.getSharedConfigParameters().get(PROVIDE_CRED_HELPER);
+ return !"false".equals(value);
+ }
+
private int parseTimeout(String valueFromBuild) {
return parseTimeout(valueFromBuild, DEFAULT_IDLE_TIMEOUT);
}
private void configureLFS(@NotNull BaseCommand command) {
+ if (!myPluginConfig.isProvideCredHelper())
+ return;
Trinity<String, String, String> lfsAuth = getLfsAuth();
if (lfsAuth == null)
return;