El TFS se puede consultar por llamadas REST, puedes usar las librerías para tal efecto o puedes hacerlas tú las llamadas
Obtener una lista de proyectos seria
public ListofProjectsResponse.Projects GetAllProjects()
{
ListofProjectsResponse.Projects viewModel = null;
using (HttpClient confClient = new HttpClient(GetCredential()))
{
confClient.BaseAddress = @”http://nametfs:8080/tfs/DefaultCollection/”;
confClient.DefaultRequestHeaders.Accept.Clear();
confClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage message = confClient.GetAsync("_apis/projects?stateFilter=All&api-version=1.1").Result;
if (message.IsSuccessStatusCode)
{
viewModel = message.Content.ReadAsAsync<ListofProjectsResponse.Projects>().Result;
}
}
return viewModel;
}
La seguridad puede ser por un tokent del TFS o puede que no lo tengas así configurado y sea una configuración de Windows. Si ese es tu caso en USUARIO y PASSWORD tienes que poner un usuario con permisos sobre el TFS
private WebRequestHandler GetCredential()
{
WebRequestHandler authtHandler = new WebRequestHandler()
{
Credentials = new NetworkCredential(USUARIO, PASSWORD)
};
return authtHandler;
}
Si está configurado con autentificación Basic
public ListofProjectsResponse.Projects GetAllProjects()
{
ListofProjectsResponse.Projects viewModel = null;
using (HttpClient confClient = new HttpClient())
{
confClient.BaseAddress = @”http:// nametfs:8080/tfs/DefaultCollection/”;
confClient.DefaultRequestHeaders.Accept.Clear();
confClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
confClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials);
HttpResponseMessage message = confClient.GetAsync("_apis/projects?stateFilter=All&api-version=1.1").Result;
if (message.IsSuccessStatusCode)
{
viewModel = message.Content.ReadAsAsync<ListofProjectsResponse.Projects>().Result;
}
}
return viewModel;
}
Donde: _credentials= Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", PersonalAccessToken)))
PersonalAccessToken à este es un valor que tienes en el TFS