2015-07-04

SourceLink 1.0 with private GitHub support

I mentioned recently that when SourceLink works with private GitHub repositories, I would finally mark it 1.0. I'm happy to announce that the day has come! It is long overdue. I've been coding away on this project for a couple of years now.


I've probably been too conservative with the version number. The core code to read a pdb has been solid since the initial code drop a couple of years ago. Much of the documentation, however, I've revised this week. Have a look! http://ctaggart.github.io/SourceLink/

Source Index to Private GitHub Repositories

This is also newly documented. :-) I was able to successfully remote debug a deployed Azure web app we are creating at work. After registering the pdb files with a local symstore, I used Visual Studio > Server Explorer > Azure > Web Apps > Attach Debugger to debug the app in a test environment. I was able to break at the Exception. When I double clicked in the Call Stack, Visual Studio prompted me to provide credentials for SourceLink Proxy for GitHub. I copied in a new GitHub personal access token and Visual Studio downloaded the exact source code used for the compilation. It was incredibly helpful and I was glad to have made SourceLink.

SourceLink Proxy for GitHub

SourceLink Proxy for GitHub is new. It is necessary because GitHub returns an HTTP 404 Not Found instead of the normal HTTP 401 Unauthorized when authentication is required. To fix this, I created a very simple 60-line web service Node.js app in TypeScript. It even comes with Application Insights. It may be cloned and deployed to your server. I have an instance of it hosted on a small Azure App Service plan.




It is on a $56/mo plan that my Microsoft .NET MVP covers. :)


My hope is that AppVeyor and other companies will add this as a Source Service similar to AppVeyor's awesome NuGet Service. My company would gladly pay a bit extra for this instead of hosting it ourselves.

Additional 1.0 Changes

This is indeed a big release. Take a look at the release notes for a list of changes. For the FAKE users, I've added SourceLink.Index that should make it much easier to use. I've updated F# ProjectScaffold and a few projects already.

Enjoy 1.0 and spread the word! I will probably present this at a users group in San Francisco soon. It would be awesome if all open source NuGet libraries in the NuGet Gallery contained source indexed pdb files.