2011-01-13 11 views
8

Voglio interrogare il mio server CCNet per scoprire lo stato delle build. Ho sentito dire che c'è una specie di API (ReST?), Ma non riesco a trovare alcuna documentazione per questo.API CCNet, documenti?

C'è qualche documentazione per questo, o devo scaricare il codice sorgente CCNet e iniziare a leggere?

MODIFICA: ho trovato l'endpoint /XmlStatusReport.aspx, che fornisce una panoramica XML di tutti i progetti. Lo stesso nome di file in qualsiasi cartella dà esattamente la stessa risposta, quindi temo che potrebbe essere l'unica API che ci sia.

+0

Guarda questa domanda per le possibili risposte: http://stackoverflow.com/questions/3467364/is-there-an-api-for-cruise-control-net –

risposta

4

In alternativa all'XML già menzionato, è possibile utilizzare i servizi remoti come fa l'applicazione CCTray. Se si fa riferimento a ThoughtWorks.CruiseControl.Remote.dll dalla cartella CruiseControl.NET \ server, è possibile creare un'istanza di CruiseServerRemotingClient e utilizzarla per recuperare le informazioni dal server.

il seguente frammento stampa l'elenco dei progetti presenti sul server e il relativo stato di build:

CruiseServerRemotingClient client = new CruiseServerRemotingClient("tcp://ccnetserver:21234/CruiseManager.rem"); 
ProjectStatus[] statusList = client.GetProjectStatus(); 
foreach (ProjectStatus status in statusList) 
{ 
    Console.WriteLine("{0}: {1}", status.Name, status.BuildStatus); 
} 

Si potrebbe anche recuperare il registro per l'ultima build in formato XML come segue:

string buildName = client.GetLatestBuildName("Jasenje"); 
Console.WriteLine(client.GetLog("Jasenje", buildName)); 

Non sono riuscito a trovare alcuna documentazione reale per l'API ma almeno ci sono commenti XML con brevi descrizioni di metodi e parametri.