VSTS-Tools ‘Keep’ Build Extension

If you are making use of Visual Studio Team Services (VSTS) to manage your automated builds then you are likely already aware that completed builds are kept for a maximum of 10 days by default. You can increase the default up to 30 days but no longer (using TFS on premises gives you more control over the retention). If you want to keep your build artifacts longer than the maximum 30 days allowed, you must set the retention for the build to “keep forever”. There are some cases where it makes sense to automate this task – e.g. you’re calling…
Read More

VSTS-Tools Build Extensions

Last week I wrote about how you can make use of PowerShell to log extended diagnostics information when running a build. The two examples I included showed you how to collect environment variable information (e.g. names and values) as well as list (recursively) folders and files beneath a specified folder. As an additional exercise, I decided to convert these two examples to build tasks and publish them as the VSTS-Tools extensions.The VSTS-Tools extensions currently includes two build tasks:VSTS-List FilesVSTS-List VariablesVSTS-List FilesThis extension will list out (in the log) all files beneath the folder specified as the Root Folder. There are…
Read More

Get (more) Build Agent Details with PowerShell

Chance are you are already aware that you can use the system.debug variable with your builds to get diagnostics-level information (i.e. verbose) when running your builds. If this is news to you, then try setting system.debug to true in the Variables tab for one of your build definitions and run the build.   After running the build, check the build log and you will notice a lot of extra information that wasn’t there before. This is great for getting a better understanding of what is going on behind the scenes when your build runs. However, keep in mind that some…
Read More

VSTS-Tools now on GitHub

Several of the past few posts that I have published have revolved around various Visual Studio Team Services (VSTS) REST API calls (you can click on the “View API Articles” button to the right to view the list of articles). Rather than relying purely on blog posts to provide example source code for these REST API calls, I thought I’d start making them available in a GitHub repo.Introducing VSTS-Tools!You can find the initial release on GitHub here: https://github.com/jbramwell/VSTS-ToolsThe initial release contains code examples for two command-line utilities:VSTS-Get – CLI to download a single file or entire folder tree from VSTS…
Read More

Download a File using VSTS REST APIs

Adding yet another post related to Visual Studio Team Services (VSTS) REST APIs, I thought I’d cover an example of how to download a file from a Git repo in VSTS using the REST APIs (I will cover TFVC-based repositories in another post). In the example below, I will be using C# to make the API calls. However, you can use whatever approach makes the most sense for you (e.g. JavaScript, PowerShell, etc.).If you are new to calling the VSTS REST APIs or you are new to this series of articles then I would recommend on clicking the View API…
Read More

Calling VSTS APIs with PowerShell

Continuing along with my other various examples of VSTS API calls, I thought I’d include an example on how to call a Visual Studio Team Services REST API using PowerShell.To provide a concrete example, consider this scenario:We use VSTS-based builds to build our projects and create artifacts (e.g. web apps/services, binaries, etc.). We then make use of Octopus Deploy to deploy our artifacts into our various environments (e.g. development, test, production, etc.). Once these artifacts have been deployed to the production environment, we’d like to keep them around indefinitely.As you are likely aware, VSTS has a default retention policy on…
Read More

VSTS Keyboard Shortcuts

Computers have been part of my daily routine for many years now (over three decades!) and I’ve used a lot of software in that time. My primary applications tend to include various software development tools (such as Visual Studio, ReSharper, Fiddler, etc.), productivity software (such as Microsoft Office, various text editors, etc.) and so on. Over the years, I’ve found that if I used a command more than twice in a single session, I will take the time to learn the associated hotkey sequence – assuming one exists. For example, in Visual Studio, I tend to build the source code…
Read More

Discovering VSTS APIs

Building on our current theme of Visual Studio Team Services (VSTS) API calls, let’s take a look at discovering what APIs are available.The likely starting point for figuring out VSTS APIs is the REST API Reference for VS Team Services and TFS. Here you can view the various information and examples for the APIs currently exposed by VSTS (and TFS). The APIs are broken out into major categories with each category including links to the various resources provided by their respective APIs as shown in the excerpt below:If you’re like me, however, you might enjoy viewing the available APIs just…
Read More

Calling VSTS APIs with C#

In the last API-related article, Personal Access Tokens and VSTS APIs, we looked at how we can use Fiddler, along with a Personal Access Token (PAT), to query the Visual Studio Team Services (VSTS) REST APIs. In this post, we’ll take a look at how we can use a 3rd party Fiddler extension, Request to Code, along with the “Paste JSON as Classes” Visual Studio feature to jump start the process of calling VSTS APIs with C#. Pre-Requisites – Install the Extension Before we get started we must make sure we’ve installed the Fiddler extension Request to Code. On the…
Read More

Personal Access Tokens and VSTS APIs

One of the great features of Visual Studio Team Services (VSTS) and Team Foundation Server (TFS) is its extensibility model. I am specifically referring to the REST APIs that Microsoft has started making available for their platform. Until recently, you had two options for authenticating with the REST APIs:Basic Authentication – requires that you enable alternate credentials on your VSTS/TFS account, Base64-encode them and send them “over the wire” along with your REST API call. This approach is simple though not very secure since your credentials are not encrypted “at rest” (though they are encrypted when used since the APIs…
Read More