GitHub

GitHub is a website that Habitica uses to house its source code, track bugs and issues, and manage certain types of contributions. Many Comrades also use GitHub to house their code for their tools.
For further information on GitHub in general, see Wikipedia's entry.
==Habitica's Use of GitHub==
===Repositories===
All of the officially code supported by Habitica are housed in HabitRPG account. Some of the main repositories are:
* Source code for the main Habitica site is stored in the habitica repository.
* Mobile App for Android: Habitica is stored at habitica-android 
* Mobile App for iOS: Habitica is stored in habitica-ios.
* Chrome extensions is at habitica-chrome.
* Chrome Chat Extension is housed in habitica-chat-extension.
===Images and Algorithms===
The pixel art is stored in the "assets" directory in the habitica repository. Some are also stored in the "raw_sprites" director in habitica repository.
Most of the algorithms - such as when you score a task - are stored in the "common" directory in the habitica repository, which is used for both mobile and web. That way it can be used in multiple locations and the code does not have to be duplicated.
===Special Rewards===
Blacksmiths (programmers) can contribute new code or bug fixes through GitHub for contributor rewards.
 Certain Habitica bugs on GitHub have special rewards. The Critical Hammer of Bug Crushing is a decorative weapon given to anyone who manages to solve a bug labeled as "priority: critical" on GitHub.
Solutions for bugs categorized on GitHub with "type: bounty" can yield the Blacksmith monetary awards from BountySource. A list of those bugs are also available on the BountySource page for Habitica.
===Bugs and Issues===
With the capacity to house source code, GitHub also provides issue tracking for any repository on its servers. A GitHub account is needed to log a new issue or comment on an existing one.
However, using GitHub is usually not necessary for reporting bugs. Instead, you can go to the Habitica website and click on Help > Report a Bug to send an email to admin@habitica.com. If your bug is complex or requires significant work or detailed information from you, you may be asked to report it on GitHub.
Issues in GitHub are assigned labels which identify the type, priority and status of the issue as well as section of Habitica the issue is related to. You can filter issues by labels or multiple labels in the GitHub issue list.
==Learning How to Use of GitHub==
For those that are new to GitHub, it is recommend to read Pro Git Book. The first two chapters will give you a good overview on using git. The third chapter regarding branching is important if you wish to work in collaborative projects with other developers.
There is also a step by step walk through provided by GitHub itself. This will take you step by step on how to branch and merge the branch with a pull request.
Git-it, a desktop app, is a fun and interactive part of the nodeschool curriculum will help with learning Git and GitHub. (Scroll down to the README for instructions on how to install).
There are also GUI tools like GitHub Desktop which many developers find useful to quickly upload, compare changes, etc., without the need of remembering specific commands.
==See Also==
* GitHub Labels
* BountySource
* Guidance for Blacksmiths
* Guidance for Comrades
fr:GitHub
pt-br:GitHub
ru:GitHub
zh:GitHub
Category:Contributing
Category:Pages with files missing alt tags