C#
Pull request Compare This branch is 3 commits ahead, 35 commits behind appharbor:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.nuget
AppHarbor.ConsoleSample
AppHarbor.Sdk
AppHarbor.Test
Samples/AppHarbor.Sample
.gitignore
AppHarbor.Sdk.sln
AppHarbor.png
LICENSE.txt
README.markdown
appharbor.nuspec
package.cmd

README.markdown

AppHarbor SDK - A .NET client for the AppHarbor API

License: Apache License 2.0

Twitter

Features

  • Full support for the AppHarbor API
  • Managed API Access (currently .NET 3.5, send a pull request if you want .NET 2.0 support)
  • Implements AppHarbor OAuth header: Authorization: BEARER :access_token
  • Sample web application with AppHarbor OAuth sample
  • Unit tested

Current uses

Usage

Create Api Client instance

// create an Api Client instance with the token obtained from oAuth
var appHarborClient = new AppHarborClient(new AuthInfo("token obtained via oAuth"));

Get list of AppHarbor applications

// get a list of all applications
var applications = appHarborClient.GetApplications();

foreach (var application in applications)
{
	Console.WriteLine(string.Format("Application name: {0}, Url: {1}", 
		application.Name, application.Url));
}

Create new AppHarbor application

// creating always returns a CreateResult
// which has a Status, ID, Location
var createResult = appHarborClient.CreateApplication("New Application Name", null);

// based on the Status decide on what todo
switch (createResult.Status)
{
	case CreateStatus.Created:
		{
			var newID = createResult.ID;
			var newURL = createResult.Location;

			// get actual application object via the api client
			var newApplication = appHarborClient.GetApplication(newID);

			// more code
			break;
		}
	case CreateStatus.AlreadyExists:
	case CreateStatus.Undefined:
		{
			// handle
			break;
		}
	default:
		break;
}

Sample web application project

  • Basic OAuth Access Token retrieval implementation

Todo

  • More unit tests
  • Add integration tests
  • Add XML Comments for public methods
  • Expand sample web application