go-teamcity
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.
Motivation
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.
Usage
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.
Examples
For now, integration tests are the best examples on how to use the library to interact with the several services.
Project Status
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.
License
This library is distributed under the MPL-2.0 license fully described in the LICENSE file.