#TeamCitySharp
*.NET Library to access TeamCity via their REST API.
For more information on TeamCity visit: http://www.jetbrains.com/teamcity
##Releases Please find the release notes here
##License http://stack72.mit-license.org/
##Installation
- Download source and compile
##Build Monitor
- There is a sample build monitor built with TeamCitySharp. It can be found at TeamCityMonitor
##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
Each area has its own list of methods available
###Builds
List<Build> SuccessfulBuildsByBuildConfigId(string buildConfigId);
Build LastSuccessfulBuildByBuildConfigId(string buildConfigId);
List<Build> FailedBuildsByBuildConfigId(string buildConfigId);
Build LastFailedBuildByBuildConfigId(string buildConfigId);
Build LastBuildByBuildConfigId(string buildConfigId);
List<Build> ErrorBuildsByBuildConfigId(string buildConfigId);
Build LastErrorBuildByBuildConfigId(string buildConfigId);
List<Build> ByBuildConfigId(string buildConfigId);
List<Build> ByConfigIdAndTag(string buildConfigId, string tag);
List<Build> ByUserName(string userName);
List<Build> ByBuildLocator(BuildLocator locator);
List<Build> AllSinceDate(DateTime date);
List<Build> AllBuildsOfStatusSinceDate(DateTime date, BuildStatus buildStatus);
List<Build> NonSuccessfulBuildsForUser(string userName);
Build LastBuildByAgent(string agentName);
###Projects
List<Project> 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<BuildConfig> 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<BuildConfig> ByProjectId(string projectId);
List<BuildConfig> 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);
###ServerInformation
Server ServerInfo();
List<Plugin> AllPlugins();
string TriggerServerInstanceBackup(BackupOptions backupOptions);
###Users
List<User> All();
User Details(string userName);
List<Role> AllRolesByUserName(string userName);
List<Group> AllGroupsByUserName(string userName);
List<Group> AllUserGroups();
List<User> AllUsersByUserGroup(string userGroupName);
List<Role> AllUserRolesByUserGroup(string userGroupName);
bool Create(string username, string name, string email, string password);
bool AddPassword(string username, string password);
###Agents
List<Agent> All();
###VcsRoots
List<VcsRoot> 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<Change> All();
Change ByChangeId(string id);
Change LastChangeDetailByBuildConfigId(string buildConfigId);
List<Change> ByBuildConfigId(string buildConfigId);
###BuildArtifacts
void DownloadArtifactsByBuildId(string buildId, Action<string> downloadHandler);
##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