 Hi everyone, it's Kenneth from VS Code. Today, I'm here to talk about the new GitHub pull request extension that we have made in collaboration with the GitHub team. Over the past many months, we have been busy collaborating with GitHub on enabling a rich pull request experience inside VS Code. Today, we are announcing the public preview of GitHub pull requests, which is a new optional experience that you can install as an extension for VS Code. The extension allows you to authenticate and connect VS Code to GitHub. It allows you to list and browse pull requests from within VS Code. You can review pull requests within editor commenting, where we also added markdown support. We are also enabling a more natural PR workflow within editor checkout that enables you to use rich language features, such as go-to-definition and IntelliSense. Lastly, we are enabling a smooth terminal integration that enables the UI in VS Code to coexist with the Git CLI. GitHub pull request is a new type of VS Code extension. It's powered by a new set of APIs we have baked into the core VS Code in order to enable code reviews and commenting. But enough talk, let me show you how it works. All right. So what I have here is the Insiders Edition of VS Code. I have a folder open call pull request demo, which is a node application we have put together to actually demonstrate this new pull request experience. The new thing you have here is that if you go to the source control section in VS Code, you'll notice that we now have this new viewlet here called GitHub pull requests. What you can see in this viewlet is that you can see some categories of pull requests that are available for me to browse. There's one category here called waiting for my review. So I can expand this category, and what you'll see here is that there's actually a pull request on this particular project that is waiting for my review. So I can go expand it, and what you see is that I can get a description of what this pull request is all about, but can also see that the fav icon in this PR is deleted, and I can see that there's some index that JS has been modified. But what I do here is that I just clicked on the description. So what I'm presented with here is an overview of this particular pull request. I can see that it's named like update route titles, it's something about the route tiles being simplified, and I can see Rachel here in my team has been adding some feedback, or adding a comment of some of the changes she made. So I'm a bit curious to know more about the changes she made, so I can just go out here and I can open up the route index, the JS file. What I'm presented here with is a diff editor that is just giving me a nice overview of the changes in this particular pull request, and I can see she's been adding a comment that this is too generic. You know what, this is kind of the same experience that I have on GitHub, and I think this is cool, but we can also do better. So if I go back to the GitHub overview page, what you'll see that we have here in the top is that we have this new button called checkout. This workflow enables me to check out the pull request by checking it out locally on my computer, and then enables me to do an in-depth review of the code. If I click it, what you'll now see is that it's now checked out this particular pull request. I'm now in a review mode, and if you go down here to the bottom, you can kind of see my branch selector has changed. It's now checked out that particular branch for the pull request. And what's cool is that we now also see a new view load here in VS Code called changes in pull request. Here I kind of have the same description page I had before. I can kind of see the changes, but I can also see the commits that's inside this particular PR. And down here at the bottom, I kind of have a new panel that we call the commons panel. This panel gives me an overview of all the commons that has been added in this particular PR. And I'm a bit curious just to see more about Rachel's comments, so I can just click here at the bottom. What you see here is that I'm taking straight to the index.js file with Rachel's comments shown in line inside my editor. So you know what? She's asking, this is too generic. I actually think this looks pretty good to me, so what I can do is I can just add the comment, and bam, I just added the comment straight for my editor. But the key thing here is that because the source code for this particular pull request is checked out locally on my computer, is that I can also start taking advantages of someone like the code intelligence. So if I scroll up here in my code, I can kind of see that some of my variables here are kind of grayed out. So you can kind of see that request is declared, but it's actually never used. I can see here that there's a variable here called product ID that is never used. So what I can do here is that it's not strictly related to Rachel's changes, but I can add a comment and saying here looks like product ID isn't used, maybe remove. And if I can fix my typos here, then you can see here that I've just took advantages of like rich language features inside my editor, and I can now apply that knowledge straight on my PR. But overall, I kind of think that, Rachel's changes looks pretty good, but this deleted fav icon out here makes me a bit worried. Like, I don't know if this is like kind of having some impact on the code. So what I can do here is that I can go to the integrated terminal inside VS Code, and I can actually run my application. I can validate that things are working. So it's a node app, so I can just do a npm start. And what we are actually seeing here is that my node app, when I run npm start is crashing, it's not working. And if I look at the error here, this error is actually related to the missing fav icon. So this is somehow required for the app to boot. And this is interesting because if I just reviewed this outside of my editor, I would not have been able to catch an error like this. So Rachel probably just like, she deleted this by mistake or something, but I should let her know. So what I can do is that I can go back to the description page. I can add a holistic comment on this pull request and saying, looks like the build is broken. Deleted fav icon by mistake. And you know what, I can just say like, I will request some changes because this doesn't work. And bam, I just requested some changes. That's now being sent to GitHub. So now I'm kind of finished with my pull request here. So the way I can exit my review is that I can either go up here and click the exit review mode button. But because I'm kind of a terminal kind of guy, what I can do is that I can just go straight down here to the integrated terminal. And I can just say git check out master because I just want to go back to the master branch. And what you see here is that I just checked out my master branch, but VS code was kind of picking that change up from the CLI that you saw. You now see that the comments panel down here is gone. The changes in this particular PR viewlet is gone. And I'm just back to my regular master branch and I can continue my work. And this is kind of a nice way for me to finish my code review. I don't need to leave my editor. I can just use the tools that are always used. That was the demo. Today we are announcing the public preview of GitHub pull request. It's a preview, so we need your feedback to make it better. You can find it in our marketplace, so please try it out and let us know what you think on GitHub and Twitter. We're really excited on bringing code reviews inside the editor. And on behalf of GitHub and the VS Code team, happy coding.