2017-09-19 5 views
1

TFSでPowerShellのREST APIを使用してバグを作成しようとしていますが、$Bug変数にこれらのパラメータとデータの名前を入力する方法がわかりません。PowerShellでREST APIを使用してTFSにバグを作成するにはどうすればよいですか?

Param(
    [string]$vstsAccount = "MyAccountName", 
    [string]$projectName = "ProjectName", 
    [string]$keepForever = "true", 
    [string]$user = "", 
    [string]$token = "Mytoken" 
) 

# Base64-encodes the Personal Access Token (PAT) appropriately 
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token))) 
#$uri = "https://$($vstsAccount).visualstudio.com/$($projectName)/_apis/wit/workitems/$Bug?api-version=2.2" 
$result = Invoke-RestMethod -Uri $uri -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} 

C#hereのサンプルが見つかりましたが、PowerShellのサンプルは見つかりませんでした。どんな助けもありがとう。あなたはPATCHメソッドを使用するも、PowserShellで作業項目を作成するために、REST APIを使用すると、Content-Typeapplication/json-patch+jsonあるべきジェイソン本体を作成する必要が

乾杯

+0

が1の場合は、 'GET'要求をサーバーに任意のデータを送信していません。 – TheIncorrigible1

+0

'$ Bug'は変数ではなく、URLの一部です。あなたはそれをエスケープする必要があります: "$ bug"(バックティックに気をつけてください) – marsze

+0

@ TheIncorrigible1、返事ありがとう、私は間違いを訂正し、その前に私はPOSTを試してみましたが、後で私はAndyによって提案されたパッチを使用しました – SCode

答えて

1

。詳細は、Create a work itemを参照してください。

あなたはクレートにサンプルPowerShellスクリプトの下にバグを参照することができます。

Param(
    [string]$baseurl = "http://server:8080/tfs/DefaultCollection", 
    [string]$projectName = "ProjectName", 
    [string]$keepForever = "true", 
    [string]$user = "username", 
    [string]$token = "token" 
) 

# Base64-encodes the Personal Access Token (PAT) appropriately 
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token))) 

function CreateJsonBody 
{ 

    $value = @" 
[ 
    { 
    "op": "add", 
    "path": "/fields/System.Title", 
    "value": "0925Bug" 
    }, 
    { 
    "op": "add", 
    "path": "/fields/System.AreaPath", 
    "value": "LCScrum" 
    }, 

    { 
    "op": "add", 
    "path": "/fields/System.IterationPath", 
    "value": "LCScrum\\Sprint 1" 
    }, 

    { 
    "op": "add", 
    "path": "/fields/System.Tags", 
    "value": "Tag0921;Tag0926;Tag0927;Tag0928" 
    }, 

    { 
    "op": "add", 
    "path": "/fields/Microsoft.VSTS.Common.Activity", 
    "value": "Development" 
    }, 

    { 
    "op": "add", 
    "path": "/fields/Microsoft.VSTS.Scheduling.Effort", 
    "value": "8" 
    }, 
    { 
    "op": "add", 
    "path": "/fields/Microsoft.VSTS.Common.ValueArea", 
    "value": "Business" 
    }, 
    { 
    "op": "add", 
    "path": "/fields/Microsoft.VSTS.Common.Severity", 
    "value": "3 - Medium" 
    }, 
    { 
     "op": "add", 
     "path": "/relations/-", 
     "value": 
     { 
      "rel": "System.LinkTypes.Dependency-Forward", 
      "url": "http://server:8080/tfs/DefaultCollection/_apis/wit/workItems/324", 
      "attributes": 
      { 
       "usage": "workItemLink", 
       "editable": false, 
       "enabled": true, 
       "acyclic": true, 
       "directional": true, 
       "singleTarget": true, 
       "topology": "dependency" 
      } 
     } 
    }, 
    { 
     "op": "add", 
     "path": "/relations/-", 
     "value": 
     { 
      "rel": "System.LinkTypes.Hierarchy-Reverse", 
      "url": "http://server:8080/tfs/DefaultCollection/_apis/wit/workItems/58", 
      "attributes": 
      { 
       "usage": "workItemLink", 
       "editable": false, 
       "enabled": true, 
       "acyclic": true, 
       "directional": true, 
       "singleTarget": false, 
       "topology": "tree" 
      } 
     } 
    } 
] 
"@ 

return $value 
} 

$json = CreateJsonBody 

$uri = "$baseurl/$($projectName)/_apis/wit/workitems/"+"$"+"bug?api-version=2.2" 
Write-Host $uri 
$result = Invoke-RestMethod -Uri $uri -Method Patch -Body $json -ContentType "application/json-patch+json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} 

enter image description here

+0

こんにちはAndyその答えをありがとう、それは有用でしたが、私はいくつかの後続の問題を持っていた..作成されているようなバグは、プロジェクト(バックログ)の下に表示されませんが、同じは、画面の角。私は再びそれをチェックしたときに起こったのは、何のspritnt/iterationでも作成されないからです。 – SCode

+0

2)どのようにタグ、反復、努力など(フィールド、パスの名前など)などの問題を作成するためにJsonオブジェクトに追加できる他のすべてのフィールドを把握するには – SCode

+0

@SCode各パラメータ[作業項目の作成](https://www.visualstudio.com/en-us/docs/integrate/api/wit/work-items#create-a-work-item)を参照してください。とにかく、私は答えを更新しました、あなたはそれに応じて値を変更するには、サンプルを参照することができます。 –

関連する問題