Adds SourceGear Vault VCS support. Was bundled with TeamCit versions from 5.1 to 2019.2.
Plugin Development Status
- Put the Vault Java API jars (available with Java Command Line client) into the
<TeamCity Data Directory>
The Vault Java API jars can be found in the
##are the digits corresponding to the Vault version.
- Restart the TeamCity server.
The VCS is visible as SourceGear Vault in the VCS chooser.
Specify repository connection settings.
- Vault server URL. Should have http://<server>[:<port>]/VaultService structure. Use http:// URL prefix for SSL connection.
- Repository name
- User name
To configure repository sources labeling, please refer to the corresponding section in the TeamCity online documentation.
Only server-side checkout is supported. Personal builds (remote run and pre-tested commit) are not yet supported.
Logging in debug mode
Enable plugin logging in the debug mode using the TEamCity Web UI as described here. You can also manually edit the
<TeamCity Home>/conf/teamcity-server-log4j.xml \ file - remove the XML comments marked with
"DELETE THIS LINE FOR ENABLING DEBUG LOGGING" text.
The file can be modified without application restart.
Vault Java API problems
These problems are related to the Vault Java API (that TeamCity uses to communicate with Vault server) and cannot be fixed on the TeamCity side.
They should be redirected to SourceGear Vault team via http://support.sourcegear.com/.
The main cause of the mentioned problems is that the SourceGear Vault API is static and is not designed to work with more than one repository.
We workaround some of the problems in the TeamCity SourceGear Vault plugin, but the workarounds may not work with some Vault versions:
- TeamCity >= 8.1 + Vault < 6.0
There is a known issue. To workaround the issue, add the
teamcity.vcs.vault.classloading=full internal property and restart the TeamCity server.
If you have several Vault VCS roots in your TeamCity installation (working with different Vault repositories), the workaround may increase PermGen usage and cause the
OutOfMemoryError} until you increase -XX:MaxPermSize .
Another workaround to switch to the TeamCity 8.0 behaviour by using a custom 8.0 Vault plugin build (see attached) but this may cause the slowness mentioned below.
- TeamCity <= 8.0 + any Vault version
- Agent-side checkout not supported
- Since the plugin uses Vault Java API, you can face the problem with threads running a keep-alive through the Ping API (bug:15244 on SourceGear issue tracker) which results in many
HistoryBeginPingthreads hanging. The problem was fixed in Vault 5.0.4, so we strongly advise to use the latest Vault Java API.
- If you are having trouble connecting to a Vault Server using SSL, you may need to import the ssl certificate into your Java keystore using Java's keytool. More details can be found here.