>> Hi. My name is Edward Thompson.
I'm a Program Manager of Microsoft working on Azure DevOps.
Today, I'd like to introduce you to
some new integration between GitHub and Azure Boards.
If you use GitHub to manage your source,
but you want an advanced work item tracking experience
that allows you to plan your work,
manage tasks and track bugs,
this new integration might be perfect for you.
That's because Azure Boards provides Kanban boards,
backlogs, Team dashboards and custom reporting.
Now, it has tight integration
with GitHub pull requests. Let's take a look.
Here, I have my GitHub repository,
and it contains the code for my application,
but it only contains the code.
I don't use GitHub issues to manage my work instead,
I use Azure Boards.
Let's open that up.
Here, you can see my work items in a sprint backlog.
If I look over on the right-hand side,
you can see that I'm in Sprint number 2 and that there are
six work items that my Team has planned to tackle this sprint.
So this gives me a nice overview
of everything that's going on in the current sprint.
There's another visualization though that I quite
like and that's called a Kanban board and I
can get to that on the left-hand side by selecting "Boards".
Now, this is the same work item data,
but it's just a different visualization.
Here, I've just got three columns
where I can manage my work in progress.
The first column on the left is To-Do.
That's where the work that my Team plans to work on lives.
Once I start working on one of these work items,
it goes into the Doing column.
Of course, once the work is actually done,
it moves into the Done column.
So this gives me a really nice way for me to visualize, exactly,
what my Team plans to work on,
what everybody is currently doing and what's done for my Team.
So I find this incredibly useful.
But what I really want is to be able to link
these work items to pull requests within GitHub, and now I can.
So what I want to do is go down here to "Project
Settings" and then I
want to click "GitHub Connections" that's right under "Boards".
That's what it let me connect my GitHub repository
to an Azure Boards subscription.
There we go. Then, I just need to click to
"Connect my GitHub account" and this will
prompt you for your GitHub username and
password unless you already
authenticated your Azure DevOps account to GitHub,
and I have because I set up Azure Pipelines for
continuous integration builds and tests in my GitHub repository.
So what I need to do now is selected
the GitHub repository that I'd like to link to Azure Boards.
I can select this from this list
or I can just go ahead and type it
in and that's what I'll do instead of
trying to navigate through that list of repositories.
Then I'll click "Save".
What that does is it will set up
web hooks in GitHub that go to Azure Boards.
So every time I create
a pull request or comments on a pull request,
Azure Boards will be notified.
That's what allows a linking between that
pull request and a work item to occur.
So once that's set up,
I want to actually get started working on a work item,
and I'll go through the process,
creating a pull request and linking it to that work item.
So let me go back to my boards.
I want to just take the first work item,
the top work item in the To-Do column.
That's work item number 6.
The first thing that I wanted to do is assign it to myself.
So I'll pop this down and click,
and then I'll get a list of my Team.
I'll just select myself.
Now, my Team knows
that I'm going to be the one working on this work item.
I also want to drag it into
the Doing column from the To-Do column.
Now, what I want to do is, actually,
write some code and fix this bug.
I've actually already done this on this computer here.
So what I can do is just push
that branch with my code chain up to GitHub.
Now, what I want to do is start the pull request process.
So I want to leave Azure Boards,
and go to github.com,
and open up my repository there.
When I do, the first thing that you notice is this yellow box.
It's in the middle of the display.
It's telling me that I've just pushed up
a branch and it's prompting me to start a pull request,
and that's exactly what I wanted to do.
So I'll just slide
over and click the "Compare and pull request" button.
Now, the new pull request screen is where I'm given
the opportunity to link this pull request to Azure Boards.
What I want to do is go into
the comments area and I want to use what's called a smart mention.
That is what Azure Boards actually looks for to understand
how to link a pull request to a work item.
So what I want to do is type "Fixes AB#6".
AB number 6 of course means Azure Boards work item number 6.
That was the one that I moved from
the To-Do column into the doing column.
Okay. Now, I want to scroll down and click "Create pull request".
Now that the pull request is created,
two things have actually happened.
The first thing is
that a continuous integration build has been started.
That's because I already set up
Azure Pipelines as a continuous integration build provider.
So it's cued to build and it'll run my unit tests.
The other thing that's happened is that
Azure Boards has actually changed
that smart mention that I made into a hyperlink.
So you can see it's blue and underlined. Let's click on it.
That will actually take us to the work item in Azure Boards.
Now, it's great that I can get right from
the pull request to the work item and Azure Boards.
Because that will allow people who are reviewing my pull request
to go right to the work item
and get a better understanding of the requirements,
the reasons that I'm making these changes.
They can look at the bug or the task,
the actual information that describes the issue,
as well as the code in GitHub that fixes the issue.
Of course, this linking goes both ways You can see over on
the right-hand side of
this work item a link back to the pull request.
So let's actually click on that to go back to the PR.
Now, what we want to do is actually review the code.
So we'll go to the "Files changed"
tab and take a look at the changes that
were introduced to fix this issue. Does look good to me.
The other thing that I want to do besides reviewing the code,
is to actually look at the continuous integration data.
I want to look at the checks that GitHub
ran when I opened this pull request.
So I can look here in the checks area in the center of the screen,
I can expand that to show all checks.
That will give me information about what ran.
I can click on "Details" to get
more information about the execution.
So the GitHub checks area will give me a summary of what happened.
I can see a build ran and succeeded with one warning.
I can also scroll down and get
a little bit of information about the test and the code coverage.
But what I really want to do here is click
on "Azure Pipelines" because
that will give me much richer information
about the build that ran in the tests.
So I could look at any of those build steps.
I could actually expand that and look
at line-by-line the build output.
I can also go up here to the "Tests"
tab and look at the unit test that
ran as part of this build and I can go
to "Code Coverage" tab and look at that information.
That's the code coverage that my unit tests are running.
So now, I've done a code review,
I looked at the build output,
evaluated the tests and now I'm confident about these changes.
So I'm ready to merge my pull request.
So I wan to go back to GitHub,
go back to the "Conversation" tab.
Now, before I actually do this merge,
I want to open up Azure Boards side-by-side.
Let's get a little more room.
I want to shrink the Azure DevOps sidebar
and scroll over so that you can see
both the Doing and the Done column.
This is incredibly important,
because I want you to watch work item number 6.
I want you to see exactly how tight
this integration is when I merge the pull request.
Let me scroll down.
Okay. When I click "Merge" and then "Confirm",
watch that work item.
It moved itself. So Azure Boards
is listening for these web hooks that it configured in GitHub.
Since we used that smart mention that said Fixes AB#6,
when Azure Boards was notified of that change,
it knew that since the work item was fixed,
it can move it out of the Doing column and into
the Done column and it does that automatically.
So you're able to get this really tight integration
between GitHub and Azure Boards.
If you'd like more information about Azure Boards,
visit azure.com/boards.
For more information about the rest of the Azure DevOps family of
development tools, visit azure.com/devops.
Thanks for watching and I hope you have a great build conference.