2011-06-24 8 views
6

Programowo generujemy wiadomości e-mail dotyczące wdrażania, w oparciu o historię zestawów zmian i powiązanych elementów roboczych od czasu ostatniej wdrożonej kompilacji. Wyglądają trochę jak informacje podsumowujące kompilację wewnątrz Visual Studio (ale z wieloma kompilacjami łącznie).Jak zmapować URL elementu TFS do czegoś widocznego

Nie wydaje się być użyteczne adresy URL w danych (jak vstfs:///VersionControl/Changeset/205151), ale jest nowy w TFS SDK I NIE jeśli/jak to mapy do widocznego elementu (np http: // tfsserver: port/somepath/...). Linki podsumowania kompilacji wewnątrz Visual Studio są klikalne, ale czy są to tylko łącza VS?

Jeśli to możliwe, chcemy umieścić linki w wiadomościach e-mail, które otwierają powiązany element (w przeglądarce?), Więc domyślam się, że muszę wiedzieć, czy ścieżki TFS można przeglądać przez Internet, a jeśli tak, to w jaki sposób?

Propozycje z zadowoleniem. Dzięki.

Odpowiedz

6

Poniższy wydaje się być standardowego adresu URL dostępu

http://TFS_Name:port_number/WorkItemTracking/Workitem.aspx?artifactMoniker=work_Item_Id

+6

To jest adres URL usługi śledzenia zasobów przedmiotów roboczych w TFS 2005 i 2008. (W 2010 roku prawdopodobnie będziesz chciał użyć http: // server: port/tfs/CollectionName/... zamiast tylko http: // serwer: port /.) Zapewni to ograniczony dostęp do przeglądania elementów pracy. Podobnie możesz użyć http: // serwer: port/VersionControl/Changeset.aspx? ArtifactMoniker = ... aby wyświetlić zestaw zmian. Jednak dostęp do sieci Web TFS jest prawdopodobnie lepszy niż widoków tylko do odczytu udostępnianych przez usługi WWW. –

+1

Działa na poczęstunek. Wielkie dzięki. @Edward Thomson: +1 Dziękujemy za dodatkową wersję zestawu zmian. Działa traktować –

3

Linki vstfs nazywane są „artefakt ID” i są to dane wewnętrzne elementy pracy TFS, że oczekuje się, aby być spożywane wyłącznie przez TFS klient. Klient TFS przeanalizuje te dane i zdecyduje, jak wyświetlić te dane. W przypadku linku zmiany, jaki podasz, bogaci klienci otworzą okno dialogowe ze szczegółami zestawu zmian. Klient WWW przetłumaczyłby ten link na URI. Różne biblioteki TFS są w stanie dostarczyć więcej danych na temat tego artefaktu przy użyciu tego identyfikatora.

Jeśli chciałbyś utworzyć swój własny link do TFS Web Access, ściśle właściwym sposobem jest wysłanie zapytania do niektórych informacji na serwerze. Po uzyskaniu usługi TswaClientHyperlinkService można wyszukiwać identyfikatory URI dostępu do sieci dla różnych usług, takich jak wyświetlanie zestawu zmian lub wyświetlanie elementu pracy. Niektóre przykłady są wyświetlane na Martin Woodward's blog.

13

Jest to adres URL używam dostęp do elementów roboczych,

=>http://ServerName:PortNumber/tfs/web/wi.aspx?id=xxidxx

Edit Format mam określony sposób pracy z TFS 2010. To w zasadzie generuje ścieżkę do element pracy w widoku sieciowym. Kliknięcie tego przycisku otwiera element pracy w widoku internetowym.

Jako alternatywa można programowo uzyskać adres URL, który można przeszukiwać.

var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TFSURL")); 
var versionControl = tfs.GetService<ICommonStructureService>(); 

var projects = versionControl.ListAllProjects(); 

var myService = tfs.GetService<TswaClientHyperlinkService>(); 

var myUrl = myService.GetChangesetDetailsUrl(21); 

Tak, usługa "TswaClientHyperlinkService" to usługa Microsoftu TFS hiperłącze. Spowoduje to wygenerowanie formatów URL dla ścieżki Absolute, ścieżki względnej, ścieżki i zapytania, bla bla bla.

HTH,

Cheers, Tarun

PS - Nienawidzę być źle !!! hahaha ... enter image description here

EDIT A ponieważ w twoim przypadku masz URI dostępne i już używasz TFS API, te dwie linie kodu by rade.

var testManagementService = tfs.GetService<ILinking>(); 
var testControllers = testManagementService.GetArtifactUrl(@"vstfs:///VersionControl/Changeset/205151"); 

To spowoduje, https://ServerName:PortNumber/defaultcollection/VersionControl/Changeset.aspx?artifactMoniker=205151

HTH,

zdrowie, Tarun

+0

tfs/web/wi.aspx Nie oznacza to prawidłowej strony na naszym serwerze TFS 2008. Rozwiązania workitem od Daniela działały podobnie jak dodatek do zestawu zmian autorstwa Edwarda. –

+0

Właśnie uratowałeś mój dzień, dzięki! :) – casaout

0

W TFS2012 dodatkowy pcguid parametr URL musi być obecna. Oto nowy format, rozszerzenie dobre rozwiązanie podane przez @TarunArora:

http://ServerName:PortNumber/tfs/web/wi.aspx?pcguid=xxguidxx&id=xxidxx

This blog post opisuje, jak znaleźć pcguid poprzez Visual Studio.

Jednakże, jeśli tak jak ja jesteś próbuje użyć TFS bez zainstalowanego (nie pytajcie) Visual Studio, oto alternatywa użyciu interfejs oparty na przeglądarce TFS:

  1. Go do „Otwórz Zagadnienia "
  2. Kliknij przycisk, który wygląda jak koperta (" Wyślij zapytanie jako wiadomość e-mail ") w prawym górnym rogu panelu elementu pracy.
  3. Kliknij prawym przyciskiem myszy jedno z linków w wiadomości e-mail i skopiuj położenie linku
  4. Anuluj wysyłanie wiadomości e-mail bez jej wysyłania.
  5. Wklej lokalizację linku do edytora tekstu i wyodrębnij wartość pcguid.
Powiązane problemy