martedì 30 settembre 2014

Creare un Work Item con le REST API - Visual Studio Online

A volte può essere utile aggiungere un nuovo Work Item ad un nostro Team Project in modo automatico, magari in risposta ad un determinato evento.

Le nuove "WIT REST API v1.0 (preview 2)" (rilasciate il 4 settembre) esposte da Visual Studio Online ci permettono di farlo.

Quando creiamo un work item, possiamo indicare i valori per qualsiasi tipo di work item fields.

Per creare un work item, è necessario effettuare una richiesta HTTP PATCH a:

https://your_account.visualstudio.com/defaultcollection/team_project_name/_apis/wit/workitems/$work_item_type_name?api-version=1.0-preview.2

Il body della richiesta deve essere valorizzato in base a questo formato:

[
    {
        "op": "add",
        "path": { string }
        "value": { string or int, depending on the field }
    },
    {
        "op": "add",
        "path": "/relations/-",
        "value":
        {
            "rel": { string },
            "url": { string },
            "attributes":
            {
                { name/value pairs }
            }
        }
    }
]

Un esempio di richiesta potrebbe essere:

https://myAccount.visualstudio.com/defaultcollection/myProject/_apis/wit/workitems/$task?api-version=1.0-preview.2

[
  {
    "op": "add",
    "path": "/fields/System.Title",
    "value": "Change blog title height"
  }
]

Questa richiesta produce una response come la seguente, in cui si possono trovare tutte le informazioni relative al work item appena creato:

{
  "id": 88,
  "rev": 1,
  "fields": {
    "System.AreaPath": "myProject",
    "System.TeamProject": "myProject",
    "System.IterationPath": "myProject",
    "System.WorkItemType": "Task",
    "System.State": "To Do",
    "System.Reason": "New task",
    "System.CreatedDate": "2014-09-30T10:25:12.943Z",
    "System.CreatedBy": "Davide Benvegnu",
    "System.ChangedDate": "2014-09-30T10:25:12.943Z",
    "System.ChangedBy": "Davide Benvegnu,
    "System.Title": "Change blog title height"
  },
  "_links": {
    "self": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/workItems/88"
    },
    "workItemUpdates": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/workItems/88/updates"
    },
    "workItemRevisions": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/workItems/88/revisions"
    },
    "workItemHistory": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/workItems/88/history"
    },
    "html": {
      "href": "https://myAccount.visualstudio.com/web/wi.aspx?pcguid=0fa87894-6f48-4458-957d-3438b6bb9343&id=88"
    },
    "workItemType": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/c4637008-2068-4b3f-828d-a214e2ba5210/_apis/wit/workItemTypes/Task"
    },
    "fields": {
      "href": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/fields"
    }
  },
  "url": "https://myAccount.visualstudio.com/DefaultCollection/_apis/wit/workItems/88"
}

venerdì 12 settembre 2014

A proposito di Azure Websites Extensions

Ogni Azure Website fornisce un end point di management estendibile che permette di sfruttare un potente set di strumenti, deployato come site extensions. Questi strumenti spaziano dagli editor di codice sorgente come Visual Studio Online a strumenti di gestione delle risorse connesse, come un database MySQL collegato ad un sito web. 

Le Site Extensions sono, di fatto, delle web app con dei metadati che vengono usati per la registrazione dell'estensione; possono essere create per ogni development stack supportato dalla piattaforma degli Azure Websites.

Le Site Extesions esistenti sono disponibili, per ogni WebSite, all'interno dell'Azure Preview Portal:


Per aggiungere una nuova estensione sito basta andare alla sezione Configurazione nella "pagina" del web site, fare clic sul pulsante ADD e selezionare un'estensione dalla lista.  Ognuna di queste estensioni è resa disponibile dal publisher riportato sotto il nome dell'extension e con i temini legali che devono essere accettati esplicitamente prima dell'installazione.


Una volta aggiunta, il contenuto della Site Extension viene copiato dentro la cartella %HOME%\SiteExtensions parallela alla website root. Attenzione che l'aggiunta di un'estensione fa riavviare il sito.


È possibile anche creare delle nuove estensioni.
Se risultano necessari strumenti che non sono già presenti, è possibile creare nuove Site Extension da utilizzare con i WebSite seguendo le istruzioni a questo link
È inoltre possibile pubblicare nuove estensioni in modo che siano disponibili per tutta la piattaforma Azure WebSites attraverso il portale "Site Extension Gallery submission": http://www.siteextensions.net.