Developing TeamCity Plugins
TeamCity functionality can be significantly extended by custom plugins. TeamCity plugins are written in Java (any JVM-based language like Kotlin or Groovy can be used), run within the TeamCity application and have access to internal entities of the TeamCity server or agent.
Aside from this documentation, refer to the following sources:
bundled sample plugin
list of existing plugins and bundled open-source plugins
If you need more information or have a question regarding the API, please do not hesitate to post your question into TeamCity Plugins forum. Use the search before posting to avoid possible duplication of discussions.
Consider making your plugin public and submit it to the TeamCity plugins repository.
Please refer to corresponding section for further details.
Plugin Quick Start
To quickly create your first plugin with Maven, see Getting Started with Plugin Development. For more details, refer to the section Developing Plugins Using Maven featuring a Maven archetype supported by JetBrains.
You may also find Gradle TeamCity plugin useful, which supports agent and server-side plugins, and helps to download, install a TeamCity server, perform tasks to deploy, start and stop the server and agent.
Bundled Open-Source Plugins
The following plugins bundled with TeamCity are developed by JetBrains and are open-sourced under Apache 2.0 license.
REST API
Exposes the TeamCity API via REST.
XML Test Reporting
Allows TeamCity to parse XML-based report files produced by external tools and display these reports as build results.
Git VCS Support
Adds Git support.
Build Queue Priorities
Allows you to set priorities for build configurations.
Swabra
Allows you to clean files created during a build.
PowerShell Runner
Runs PowerShell scripts.
Shared Resources
Allows you to limit the number of running builds that use the same shared resource (for example, an external database or a server with a limited number of connections).
Queue Manager
Allows users with corresponding permissions to pause and resume build queues.
Commit Status Publisher
Allows TeamCity to automatically send build statuses of your commits to an external system (GitHub, GitLab, Azure DevOps, Bitbucket, and others).
VMware vSphere Cloud
Allows you to host TeamCity build agents on VMware vSphere/vCenter cloud. Cloud-hosted agents are created, started, stopped, and deleted depending on queued builds.
Investigations Auto Assigner
Allows TeamCity to automatically assign investigators for build problems and test failures.