#TeamCitySharp fork by @borismod
- Fork of Paul Slack's original .NET Library to access TeamCity via their REST API. This fork has some additional features, bug fixes and breaking changes. Tested on TeamCity 8.0.5 and 9.1
For more information on TeamCity visit: TeamCity REST API v9
##License http://stack72.mit-license.org/
##Installation Currently there is one way of using TeamCitySharp:
- Download source and compile
##Sample Usage To get a list of projects
var client = new TeamCityClient("localhost:81");
client.Connect("admin", "qwerty");
var projects = client.Projects.All();
To get a list of running builds
var client = new TeamCityClient("localhost:81");
client.Connect("admin", "qwerty");
var builds = client.Builds.ByBuildLocator(BuildLocator.RunningBuilds());
##Connecting to a server
To connect as an authenticated user:
var client = new TeamCityClient("localhost:81");
client.Connect("username", "password");
To connect as a Guest:
var client = new TeamCityClient("localhost:81");
client.ConnectAsGuest();
##API Interaction Groups There are many tasks that the TeamCity API can do for us. TeamCitySharp groups these tasks into specialist areas
- Builds
- Projects
- BuildConfigs
- ServerInformation
- Users
- Agents
- VcsRoots
- Changes
- BuildArtifacts
- TestOccurrences
Each area has its own list of methods available
###Builds List SuccessfulBuildsByBuildConfigId(string buildConfigId); Build LastSuccessfulBuildByBuildConfigId(string buildConfigId); List FailedBuildsByBuildConfigId(string buildConfigId); Build LastFailedBuildByBuildConfigId(string buildConfigId); Build LastBuildByBuildConfigId(string buildConfigId); List ErrorBuildsByBuildConfigId(string buildConfigId); Build LastErrorBuildByBuildConfigId(string buildConfigId); List ByBuildConfigId(string buildConfigId); List ByConfigIdAndTag(string buildConfigId, string tag); List ByUserName(string userName); List ByBuildLocator(BuildLocator locator); List AllSinceDate(DateTime date); List AllBuildsOfStatusSinceDate(DateTime date, BuildStatus buildStatus); List NonSuccessfulBuildsForUser(string userName); Build LastBuildByAgent(string agentName);
###Projects List All(); Project ByName(string projectLocatorName); Project ById(string projectLocatorId); Project Details(Project project); Project Create(string projectName); void Delete(string projectName); void DeleteProjectParameter(string projectName, string parameterName); void SetProjectParameter(string projectName, string settingName, string settingValue);
###BuildConfigs List All(); BuildConfig ByConfigurationName(string buildConfigName); BuildConfig ByConfigurationId(string buildConfigId); BuildConfig ByProjectNameAndConfigurationName(string projectName, string buildConfigName); BuildConfig ByProjectNameAndConfigurationId(string projectName, string buildConfigId); BuildConfig ByProjectIdAndConfigurationName(string projectId, string buildConfigName); BuildConfig ByProjectIdAndConfigurationId(string projectId, string buildConfigId); List ByProjectId(string projectId); List ByProjectName(string projectName); BuildConfig CreateConfiguration(string projectName, string configurationName);
void SetConfigurationSetting(BuildTypeLocator locator, string settingName, string settingValue);
void PostRawArtifactDependency(BuildTypeLocator locator, string rawXml);
void PostRawBuildStep(BuildTypeLocator locator, string rawXml);
void PostRawBuildTrigger(BuildTypeLocator locator, string rawXml);
void SetConfigurationParameter(BuildTypeLocator locator, string key, string value);
void PostRawAgentRequirement(BuildTypeLocator locator, string rawXml);
void DeleteBuildStep(BuildTypeLocator locator, string buildStepId);
void DeleteArtifactDependency(BuildTypeLocator locator, string artifactDependencyId);
void DeleteAgentRequirement(BuildTypeLocator locator, string agentRequirementId);
void DeleteParameter(BuildTypeLocator locator, string parameterName);
void DeleteBuildTrigger(BuildTypeLocator locator, string buildTriggerId);
void SetBuildTypeTemplate(BuildTypeLocator locatorBuildType, BuildTypeLocator locatorTemplate);
void DeleteSnapshotDependency(BuildTypeLocator locator, string snapshotDependencyId);
void PostRawSnapshotDependency(BuildTypeLocator locator, XmlElement rawXml);
BuildConfig BuildType(BuildTypeLocator locator);
void DeleteConfiguration(BuildTypeLocator locator);
void DeleteAllBuildTypeParameters(BuildTypeLocator locator);
void PutAllBuildTypeParameters(BuildTypeLocator locator, IDictionary<string, string> parameters);
void DownloadConfiguration(BuildTypeLocator locator, Action<string> downloadHandler);
void TriggerBuildConfiguration(string buildConfigId)
void TriggerBuildConfiguration(string buildConfigId, Property[] properties);
void TriggerBuildConfiguration(string buildConfigId, int agentId, Property[] properties)
void UpdateName(BuildtypeLocator buildTypeLocator, string newName);
###ServerInformation Server ServerInfo(); List AllPlugins(); string TriggerServerInstanceBackup(BackupOptions backupOptions);
###Users List All(); User Details(string userName); List AllRolesByUserName(string userName); List AllGroupsByUserName(string userName); List AllUserGroups(); List AllUsersByUserGroup(string userGroupName); List AllUserRolesByUserGroup(string userGroupName); bool Create(string username, string name, string email, string password); bool AddPassword(string username, string password);
###Agents List All();
###VcsRoots List All(); VcsRoot ById(string vcsRootId); VcsRoot AttachVcsRoot(BuildTypeLocator locator, VcsRoot vcsRoot); void DetachVcsRoot(BuildTypeLocator locator, string vcsRootId); void SetVcsRootField(VcsRoot vcsRoot, VcsRootField field, object value);
###Changes List All(); Change ByChangeId(string id); Change LastChangeDetailByBuildConfigId(string buildConfigId); List ByBuildConfigId(string buildConfigId);
// Return list of changes with basic information
List<Change> ByBuildId(long buildId);
/// Returns list of changes with their details
List<Change> ByBuildIdWithDetails(long buildId);
###BuildArtifacts void DownloadArtifactsByBuildId(string buildId, Action downloadHandler);
###TestOccurrences List TestOccurrencesByBuildId(long buildId, int? indexStart = 0, int? maxResults = 100); List FailedTestOccurrencesByBuildId(long buildId, int? indexStart = 0, int? maxResults = 100);
/// Retrieves an instance of TestOccurence by Id as received from TeamCity API
TestOccurrence TestOccurrenceById(string testOccurenceLocator);
###Investigations List InvestigationsById(string testId); List InvestigationsByName(string testName);
##Credits
Copyright (c) 2013 Paul Stack (@stack72)
Thanks to the following contributors:
- Barry Mooring (@codingbadger)
- Simon Bartlett (@sibartlett)
- Mike Larah (@MikeLarah)
- Alexander Fast (@mizipzor)
- Serge Baltic
- Philipp Dolder
- Mark deVilliers