go-teamcity is a Go client library interacting with Jetbrain's TeamCity CI server REST API. Currently, supported API version is TeamCity 2018.1.3 or up.
go-teamcity is intended for automating Jetbrain's TeamCity tasks and configurations using Go. It is also the client library used in TeamCity Provider, a Hashicorp's Terraform custom provider to configure TeamCity fully in code.
import teamcity "github.com/cvbarros/go-teamcity"
Construct a new Teamcity client with a default http.Client
for the server at the TEAMCITY_ADDR
environment variable, then use the various services exposed by the client to use TeamCity API's features.
client := teamcity.New("admin", "admin", http.DefaultClient)
// retrieve a project identified 'myproject', using the id: locator
project, err := client.Projects.GetById("myproject")
You may also use an
teamcity.NewWithAddress(...)
to explicitly provide the server address.
For now, integration tests are the best examples on how to use the library to interact with the several services.
This project is under heavy development for now. We follow semantic versioning conventions, meaning that the public API compability under 1.0
is suitable to change without prior notice.
Issues, contributions and feature requests are welcome, please see contributing for guidance on how to get involved.
The development and design of this library is based on the go-github project.
This library is distributed under the MPL-2.0 license fully described in the LICENSE file.