 Hi, my name is Edward Thompson. I'm a program manager for Azure DevOps, and I focus on Git and version control. Today, I'd like to introduce you to Azure Repos. Azure Repos is a best in class experience for hosting your Git repositories. In this video, I'd like to show you the repository navigation in Azure Repos, the rich pull request experience, and a powerful feature called branch policies that helps keep your master branch safe. Here, I have my project in Azure DevOps, and if I hover over it, these icons light up. These will take me to different areas of my project, like Agile boards or continuous integration pipelines, but I want to select this orange one, the one with the branches. That's the logo for Azure Repos, where my source code lives. When I do, you can see that I jump right in to the file navigator for my repository. Here, I can browse my repository structure, and at the top level, you can see that I have a folder that contains an ASP.NET application. I can click through that to navigate through other folders, and I can select a file to view it. Here, I have a markdown file in my docs directory, and when I click on it, Azure Repos will show me a rendered version of my markdown. This is great to include readme's and other documentation in your repository, so you can see it right as you browse. You'll notice that someone has actually made some errors in this markdown. They've put some hash marks at the end of a line, so I want to edit this. For a simple change like this, I can make it right from within Azure Repos, right from within my browser. I can just click this Edit button, and this is great for simple changes. I can just update these header lines to remove the trailing hash marks. Now, even for markdown changes, I want to test this before I check it in, so I can click the Preview tab to make sure that I've updated everything correctly, and once I'm happy, I can click Commit. Here, I can write a commit message. I could even create a new pull request on a new branch, but for something this simple, I can commit straight to my master branch. But although committing straight to master is a simple workflow, it's not really a healthy one because the best practice for committing on a Git repository is opening a pull request so that other developers have visibility into your changes and can provide code reviews. And this is where Azure Repos really shines. I can create branch policies to enforce best practices. I just need to navigate to Branches in the sidebar, then I'll select my master branch, select this ellipses, and then click Branch Policies. I can require code reviews so that one of my collaborators must sign off on a pull request before it can be merged. I can't just push a change straight into the master branch like I did earlier. So I'm going to enable that and set the minimum number of reviewers at one. Then I'm going to enforce that there's a linked work item. This makes sure that when I'm changing code that I have traceability back to a user story in Azure boards. This gives the full context to some change. I'm also going to enforce that comments must be resolved by a reviewer before a pull request can get merged. And finally, down here, what I think is the most important branch policy is build validation. I already have a continuous integration build set up for this project in Azure Pipelines. So all I have to do is click to enable it as a build validation. And now every pull request must go through this pipeline before it can get merged. So now I know that every PR will build and all my tests will pass. So I'm confident that I won't break the master branch when I accept pull requests. I'm going to save this. Then I'm going to navigate to the pull requests page to see it in action. My colleague Dave already has a pull request open and I'm going to look at that. Here I can review Dave's code. I could either look at the changes in the files tab or I can click on the Commits tab to review each commit one at a time. And if I have some feedback for Dave on this pull request, maybe I wanted to make some changes, then I can enter those here. But in this case, I think it's a great change. And in fact, I'm so excited about it that maybe I want bold. So I could use some mark down here, maybe even an emoji. And if I thought it was a really great change, I could even paste in an animated GIF. Maybe one of my buddy Donovan. There, that's perfect. But just because we've left feedback, we're still not ready to merge this branch. The complete pull request button isn't available. And if I look in the policy area, you can see that I still need to resolve Dave's comment. So as nice as that animated GIF is, what I really need to do is satisfy the branch policy. So I'm going to mark Dave's comment as resolved and now I can click to complete the pull request. So you can see that not only do I have a rich browsing and editing experience and a powerful code review experience with pull requests, but I also have branch policies to help keep my master branch safe and secure. So that was a very brief introduction to Azure Repos, pull requests and branch policies. If you'd like to learn more about Azure Repos, go to dev.azure.com and be sure to follow us on Twitter, we're at Azure DevOps. So again, I'm Edward Thompson, thanks for watching and I hope that you'll get started with Azure Repos for your next project.