Step 13

GitHub Issues

Most software projects have a bug tracker of some kind. GitHub's tracker is called Issues, and has its own section in every repository.

Although it was originally intended to track bugs, Issues are now used to keep track of enhancements, product road-map, for planning, feature requests, etc.

Issues is at the heart of GitHub and acts as a kind of chatroom/forum/email where all members of your team can communicate about your software project.

GitHub Collaborators

Go to the "settings" of your GitHub repository! Click on "Manage access".

Here you can invite other GitHub members to collaborate with you.

I have a second account on GitHub, ali-the-student; I've invited myself as a collaborator here!

GitHub Pull Request

A pull request can be made to merge a branch of a repository with another branch of the same repository (or even a different repository). Pull requests are a good way to get feedback on changes from collaborators on the same project.

Let's create a pull request. Go to GitHub, to your SleepTime App repository. Go to the "Pull request" tab and click on "New pull request".

Create a pull request from exercise-2 branch to the master branch:

You can assign collaborators to code review and approve the pull request. We will show you how this works in class.

After the request has been approved by reviewers, and if there is no merge conflict, you can "Merge pull request".

Now the master branch has the latest updates from the exercise-2 branch.

GitHub Flow

The following workflow is known as the GitHub flow:

  • Communicating using GitHub Issues
  • Creating Git branches (for fixing bugs, adding/updating features, etc)
  • Using GitHub Pull request to introduce changes
  • Merging changes

You are expected to follow this workflow for homework.

Here is a poster that summarizes GitHub Flow.

GitHub Forks

A "fork" of a repository is an entirely separate repository which is copy of the original repository. A forked repository can be managed and modified like any other, all without affecting the original copy.

Feel free to fork the repository for this lecture at: https://github.com/cs280fall20/sleeptime-app

Open source projects are often developed using forks. There will be one central version of the software which contributors will fork and improve on, and when they want these changes to be merged into the central repository, they submit a "pull request".