Manage Finished Builds
In this article, we explore common use cases of managing finished builds via TeamCity REST API:
Operating build tags.
Pining and unpinning builds.
Retrieving artifacts and build parameters.
Labeling builds.
To get tags for a specific build, use:
GET/app/rest/builds/<buildLocator>/tags
where buildLocator
is a BuildLocator entity. The endpoint responds with a Tags entity.
To add new tags, use:
POST/app/rest/builds/<buildLocator>/tags
It accepts either Tags
:
<tags>
<tag name="tag1"/>
<tag name="tag2"/>
</tags>
{
"tag": [
{
"name": "tag1"
},
{
"name": "tag2"
}
]
}
or a text/plain
tag name as a body.
To replace existing tags, send Tags
entity via
PUT/app/rest/builds/<buildLocator>/tags
To check if the build is pinned, use:
GET/app/rest/builds/<buildLocator>/pin
To pin a build, use:
PUT/app/rest/builds/<buildLocator>/pin
Any text (text/plain
) sent with this request will be used as a comment.
To unpin a build, use:
DELETE/app/rest/builds/<buildLocator>/pin
Any text (text/plain
) sent with this request will be used as a comment.
To find all existing VCS labels of a build, use:
GET/app/rest/builds?locator=<buildLocator>&fields=build(id,vcsLabels:$long)
Or use a dedicated endpoint:
GET/app/rest/builds/<buildLocator>/vcsLabels?fields=status,text
To add a new VCS label, use:
POST/app/rest/builds/<buildLocator>/vcsLabels?locator=<vcsRootInstanceLocator>&fields=build(id,vcsLabels)
where vcsRootInstanceLocator
is typed as VcsRootInstanceLocator. The request accepts text/plain
.
To get a content of a specific artifact, use:
GET/app/rest/builds/<build_locator>/artifacts/content/<path>
where path
can be empty for the root of the build's artifacts or be a path within the build's artifacts. The path
can span into the archive content, for example, dir/path/archive.zip!/path_within_archive
.
Media-Type
of response is usually application/octet-stream
or a more specific type (determined by the artifact file extension).
To get the file metadata, use:
GET/app/rest/builds/<build_locator>/artifacts/metadata/<path>
To fetch all child items for a directory or archive, use:
GET/app/rest/builds/<build_locator>/artifacts/children/<path>
To download a certain archived subpath, use:
GET/app/rest/builds/<build_locator>/artifacts/archived/<path>?locator=pattern:<wildcard>
An optional locator's parameter is wildcard
that allows limiting files only to those matching the wildcard. artifact relative name
supports referencing files under archives using the !/
delimiter after the archive name.
For example, to download all artifacts in .zip
and .txt
formats, use:
GET/app/rest/builds/<build_locator>/artifacts/archived/<path>?locator=pattern:(*.zip,*.txt)&name=result.zip
Media-Type
of response is application/zip
.
To get resulting build parameters of a specific finished build, use:
GET/app/rest/builds/id:<build_id>/resulting-properties
Thanks for your feedback!