========================
Using Breezy with GitHub
========================

GitHub: the largest code-hosting site
-------------------------------------

This tutorial looks at how Breezy and GitHub can be used together.

Accessing code in GitHub using Breezy
========================================

Getting the code for a project
------------------------------

Breezy users can grab code from GitHub using regular GitHub URLs:

  brz branch git://github.com/owner/name

where `owner` is the name of the owner and `name` is the repository name. Here are some examples::

  brz branch https://github.com/inkscape/inkscape
  brz branch git://github.com/KDE/amarok
  brz branch https://github.com/python/cpython

You can then browse the code locally using your favorite editor or IDE and
change the code if you wish.

To access a non-default branch, specify the 'branch' segment parameter::

  brz branch https://github.com/inkscape/inkscape,branch=backports

Publishing your changes
-----------------------

Having fixed that annoying bug or added that cool feature you've always
wanted, it's time to impress your friends and make the world a better
place by making your code available to others. As explained earlier,
GitHub is a code hosting service so you can push your
branch to it and others can access your code from there.

In the GitHub web UI, you can create a "fork" of an upstream repository. For
example, if user "jelmer" forked the inkscape repository at
https://github.com/inkscape/inkscape then the fork would be at
https://github.com/jelmer/inkscape.

You can then push your changes to a branch like this::

  brz push git+ssh://github.com/jelmer/inkscape,branch=my-branch

Others can then download your code like this::

  brz branch git://github.com/jelmer/inkscape,branch=my-branch


Associating branches with GitHub issues
---------------------------------------

The standard Breezy bugtracking functionality can also be used for GitHub
issues.

When you commit using Breezy, use the --fixes option like this::

  brz commit --fixes github:inkscape/inkscape/1234

where 1234 is the bug ID. This will add some metadata to the commit message.

You can also define a short name for a specific project, by adding an alias for
a project. For example, to add an alias for dulwich::

  brz config bugtracker_dulwich_url=https://github.com/dulwich/dulwich/issues/{id}
