Wednesday, September 23, 2015

[TFS] 設定Bug可顯示於工作面板

▌背景


在TFS2013的工作面板中,預設是看不到BUG的Work item,
當想要將BUG放在工作面板與其他工作在同一個階層下做管理,需要調整範本的Categories。


▌環境

l   Team Foundation Server 2013 Update 5


▌Setup



▋Export the Categories.xml

開啟「VS2015 開發人員命令提示字元」,輸出Categories.xml

witadmin exportcategories /collection:http://localhost:8080/tfs/defaultcollection /p:ForJB /f:"C:\temp\JB\Categories.xml"


▋Modify the XML

在Categories.xml下找到 “<CATEGORY refname="Microsoft.TaskCategory" name="工作分類">” ,
並在裡面加上 “<WORKITEMTYPE name="Bug" />”

<CATEGORY refname="Microsoft.TaskCategory" name="工作分類">
    <DEFAULTWORKITEMTYPE name="工作" />
    <WORKITEMTYPE name="Bug" />
  </CATEGORY>


如下圖,右邊是新增後的結果。





▋Import the modified Categories.xml

重新將改好的XML匯入TFS。

witadmin importcategories /collection:http://localhost:8080/tfs/defaultcollection /p:ForJB /f:C:/temp/JB/Categories.xml


完成。

▌Test


實際建立一個BUG  …
PS. 注意BUG必須指定一個父代給對應的需求,否則仍無法在工作面板無法看到它。





可以在Product Backlog裡面的需求看到BUG囉!







[TFS][安全性] 設定小組可使用共用查詢

▌背景


以一般使用者使用TFS的Portal, 才發現有那麼多安全性的眉眉角角要注意。
今天發現新增共用查詢時被拒絕存取 … lol





▌解決方式



以Admin進去看一下共用查詢的權限 …


原來是預設Contributors這個群組沒有任何權限阿!!
手動設定一下,如下圖。



結案!







Tuesday, September 22, 2015

[TFS][安全性] Set up the permission of Area for individual Project team

▌背景

在Team專案中,可使用區域(Area)來階層化主專案和子專案,
子專案可以再各自建立自己的專案小組。

但是預設在此專案下的每個專案小組是可以看到和編輯主專案和所有子專案的工作項目,
如果希望每個專案小組只能新增或修改自己區域的工作項目,則必須在安全性上多做一些手腳。

PS.
如果希望直接對專案小組隱藏某個區域,可能暫時還沒有官方的作法。


▌相關文章




▌Setup



▋Remove the permission of Contributors

在【區域】設定中,打開Master Area的安全性設定,移除Contributors的權限。

備註:
此舉的作用在於~ 當專案小組為Contributors的成員時,移除此權限再獨立設定各專案小組的權限。





▋Add the permission of each Project Team to every Area

接下來設定每個子區域(Sub-Area)的專案小組存取權限,


l   正常使用的專案小組




l   存取被拒的專案小組






▌Test


由下圖的比較圖,可看出右邊的使用者可正常瀏覽及編輯工作項目。
昨邊則是拒絕存取的使用者。







Monday, September 21, 2015

[TFS][安全性] Set up the permission of Source Code for individual Project team

▌背景

在TFVC的Team專案,如果需要針對專案底下的Source Code資料夾再做更進一步的權限管理也是可以的。 如果Team專案有使用到Area(區域),每個Area的專案小組可擁有各自的Source Code存取權限,可確保平日產出的隱密性。
  

▌Setup


在此範例,將設定Team專案下有兩個專案小組A & B,各自有一個成員;
專案小組只能讀取對應的Source Code資料夾。

▋Set the permission for Source code

開啟【進階】→【安全性】


加入兩個小組的權限設定,請注意因為目標是開放此資料夾給Demo Project A小組使用,所以其實只要選擇該小組並將其權限打開即可; 如果更嚴謹的話,同時將不允許的小組選擇進來,並將其權限全部關閉。

兩個小組目前皆隸屬於 Contributors, 所以一些權限會繼承下來;
因為我們目標是獨立兩個小組的權限,所以必須從Team專案根目錄刪除Contributors的權限。



回到原始檔控制總管,選擇Team專案的【安全性】;


刪除Contributors的權限。


回到每個資料夾,重新設定各自的小組存取權限。


(嚴謹的將B小組的權限全部關閉,實際上可直接不選擇該小組進來即可)



▌Test


以A小組登入,只能看到TestProjectA這個資料夾。


以B小組登入的結果。






[TFS] How to use Custom Controls from TFS WIT team

▌背景

如果你需要在TFS中客製化團隊的控制項,可以參考此篇文章:

對多數人來說這可不是一件簡單的工程 XD

當然如果直接使用官方的TFS WIT Custom Controls, 步驟就簡單多了;
目前大家很希望納入的Checkbox和Multi-values下拉式選單,
可直接安裝TFS WIT team在Codeplex的Work Item Tracking Custom Controls來達成。

雖然使用別人寫好的Custom Controls步驟相對簡單,但是過程中會遇到一些地雷,因此記錄一下。

▌下載&安裝


進入Work Item Tracking Custom Controls首頁,馬上下載最新版的來使用!!
But … 如果是這樣,可能會踩到第一個雷。 

因為最新版可能只支援最新版的Team Foundation Server~
記錄本篇文章時,TFS 2015 RTM已發佈,目前首頁上最新的1.3.1.0只支援TFS2015,
可是我目前使用的是TFS2013, 所以必須要另外下載對應的版本!

▋Download the correct version

進入到「Download」, 仔細找一下符合自己的版本,TFS 2013的版本為1.2.2.0,
利用右方的OTHER DOWNLOADS 的Release links下載對應的版本。


▋How to install it

下載回來後,解開後有兩個檔案:

1.  WitCustomControlSetup2013.msi
2.  CodePlex.WitCustomControls.MultiValueControl.zip

PS. File Name可能依據下載的版本而不同。


如果你有了解一下如何自己做控制項,可以打開.zip看一下裡面的東西~~


步驟如下:
l   請在TFS Server安裝.msi檔。
l   打開TFS Portal,進入管理介面後,在「擴充功能」安裝這些客製化控制項。記得路徑必須指向解壓縮後的另一個 .zip


安裝後,請啟用它。


以上步驟完成後, 可至
C:\ProgramData\Microsoft\Team Foundation\Work Item Tracking\Custom Controls

依據TFS的版本*,查看資料夾下是否至少有以下兩個檔案 ~


PS.
2013版本是C:\ProgramData\Microsoft\Team Foundation\Work Item Tracking\Custom Controls\12.0
2015版本是C:\ProgramData\Microsoft\Team Foundation\Work Item Tracking\Custom Controls\14.0


▌How to use it



▋Multi-Value Control

開啟Power Editor並加入一個新的Field,
並在規則加入 Suggested Values, 即為我們稍後的Multi-Values可複選下拉式選單的清單。




接著在Layout加入新的控制項,並指定對應欄位為上面建立的Field,
Type選擇:MultiValueControl




存檔! 如果正確的話,你的WIT應該可正常顯示Multi-Value控制項了!BTW,儲存在資料庫是以逗號分隔的字串。




▋Checkbox Control

如果要建立Checkbox控制項更簡單,只要在建立Field時,Type選擇為 Boolean即可。




備註:
不過你如果使用Visual Studio的Team Explorer來管理工作的話,會發現Checkbox無法帶出,仍為Texbox。 這時候就必須手動輸入“true” 或 “false”。




▌注意事項


▋使用Team Explorer的客戶端,必須安裝WIT Custom Controls套件

是的,如果平常是用Visual Studio的Team Explorer做工作管理、
或是在local端使用Power Tool的使用者,除了TFS Server,本地端也必須安裝這一個套件。

但是只有使用TFS Portal的使用者則不必額外安裝。




▋排除”無法載入組件”的錯誤

在安裝後使用的過程中,開啟工作編輯畫面時如果你發現以下錯誤:


可以嘗試將
C:\ProgramData\Microsoft\Team Foundation\Work Item Tracking\Custom Controls\12.0
的 .dll和 .wicc 複製一份放在
C:\ProgramData\Microsoft\Team Foundation\Work Item Tracking\Custom Controls\

再重新啟動TFS Service;應該就可以排除了。



▌Reference