Search code examples
jsonapiversionone

VersionOne: Report on Backlog Items, tasks, defects with Attachments in C# V1 API/JSON


How would you query VersionOne (V1) to build a report that contains (Backlog Items with assoicated tasks, defects and especially Attachments in C# for a given Project? Does anyone have C# V1 API/JSON example on how to do this? I need the the part that queries VersioOne and extracts the Attachment to a directory. I can do the reporting part.

Thanks,

Remy


Solution

  • I suggest using any C# HTTP library you like. Submit a query such as the following to ~/query.v1 . The query text may in a POST body or in a GET url parameter named query:

    where:
      Name: Whatever Project You Want
    from: Scope
    select:
      - Name
      - from: Workitems:PrimaryWorkitem
        select:
          - AssetType
          - Number
          - from: Attachments
            select:
              - Name
              - Description
              - ContentType
              - Content
          - from: Children:Task
            select:
              - Name
              - Number
              - AssetType
              - from: Attachments
                select:
                  - Name
                  - Description
                  - ContentType
                  - Content
    

    Above, I select Attachment.Content which would yield a base64 blob in the output. The attachment content URLs are not present in any attribute that can be selected by query.v1, but you can create them by appending the Attachment id to ~/attachment.v1

    Results will be returned in a straightforward hierarchical JSON response:

    [
     [
      {
       "_oid":"Scope:57460",
       "Name":"openAgile",
       "Workitems:PrimaryWorkitem": [
        {
          "_oid":"Story:83524",
          "AssetType":"Story",
          "Number":"S-08114",
          "Attachments":[],
          "Subs":[],
          "Children:Task": [
            {
              "_oid":"Task:86578",
              "Name":"Test Integration in Atlanta",
              "Number":"TK-11051",
              "AssetType":"Task"
            },
            {
              "_oid":"Task:86581",
              "Name":"Install In our Production environment",
              "Number":"TK-11052",
              "AssetType":"Task"
            },
            {
              "_oid":"Task:86584",
              "Name":"Document",
              "Number":"TK-11053",
              "AssetType":"Task"
            }
        ]
      },
      ]
      }
     ]
    ]
    

    You may also use the rest-1.v1 endpoint or our SDK library, but query.v1 is highly suggested for virtually any report or read-only query that it allows.