Skip to main content

Licensing a repository

Public repositories on GitHub are often used to share open source software. For your repository to truly be open source, you'll need to license it so that others are free to use, change, and distribute the software.

Choosing the right license

We created choosealicense.com, to help you understand how to license your code. A software license tells others what they can and can't do with your source code, so it's important to make an informed decision.

You're under no obligation to choose a license. However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work. If you're creating an open source project, we strongly encourage you to include an open source license. The Open Source Guide provides additional guidance on choosing the correct license for your project.

Note

If you publish your source code in a public repository on GitHub, according to the Terms of Service, other users of GitHub.com have the right to view and fork your repository. If you have already created a repository and no longer want users to have access to the repository, you can make the repository private. When you change the visibility of a repository to private, existing forks or local copies created by other users will still exist. For more information, see "Setting repository visibility."

Determining the location of your license

Most people place their license text in a file named LICENSE.txt (or LICENSE.md or LICENSE.rst) in the root of the repository; here's an example from Hubot.

Some projects include information about their license in their README. For example, a project's README may include a note saying "This project is licensed under the terms of the MIT license."

As a best practice, we encourage you to include the license file with your project.

Searching GitHub by license type

You can filter repositories based on their license or license family using the license qualifier and the exact license keyword.

LicenseLicense keyword
Academic Free License v3.0AFL-3.0
Apache license 2.0Apache-2.0
Artistic license 2.0Artistic-2.0
Boost Software License 1.0BSL-1.0
BSD 2-clause "Simplified" licenseBSD-2-Clause
BSD 3-clause "New" or "Revised" licenseBSD-3-Clause
BSD 3-clause Clear licenseBSD-3-Clause-Clear
BSD 4-clause "Original" or "Old" licenseBSD-4-Clause
BSD Zero-Clause license0BSD
Creative Commons license familyCC
Creative Commons Zero v1.0 UniversalCC0-1.0
Creative Commons Attribution 4.0CC-BY-4.0
Creative Commons Attribution ShareAlike 4.0CC-BY-SA-4.0
Do What The F*ck You Want To Public LicenseWTFPL
Educational Community License v2.0ECL-2.0
Eclipse Public License 1.0EPL-1.0
Eclipse Public License 2.0EPL-2.0
European Union Public License 1.1EUPL-1.1
GNU Affero General Public License v3.0AGPL-3.0
GNU General Public License familyGPL
GNU General Public License v2.0GPL-2.0
GNU General Public License v3.0GPL-3.0
GNU Lesser General Public License familyLGPL
GNU Lesser General Public License v2.1LGPL-2.1
GNU Lesser General Public License v3.0LGPL-3.0
ISCISC
LaTeX Project Public License v1.3cLPPL-1.3c
Microsoft Public LicenseMS-PL
MITMIT
Mozilla Public License 2.0MPL-2.0
Open Software License 3.0OSL-3.0
PostgreSQL LicensePostgreSQL
SIL Open Font License 1.1OFL-1.1
University of Illinois/NCSA Open Source LicenseNCSA
The UnlicenseUnlicense
zLib LicenseZlib

When you search by a family license, your results will include all licenses in that family. For example, when you use the query license:gpl, your results will include repositories licensed under GNU General Public License v2.0 and GNU General Public License v3.0. For more information, see "Searching for repositories."

Detecting a license

The open source Ruby gem Licensee compares the repository's LICENSE file to a short list of known licenses. Licensee also provides the Licenses API and gives us insight into how repositories on GitHub are licensed. If your repository is using a license that isn't listed on the Choose a License website, you can request including the license.

If your repository is using a license that is listed on the Choose a License website and it's not displaying clearly at the top of the repository page, it may contain multiple licenses or other complexity. To have your license detected, simplify your LICENSE file and note the complexity somewhere else, such as your repository's README file.

Applying a license to a repository with an existing license

The license picker is only available when you create a new project on GitHub.

Screenshot the "Choose a license" section of the new repository page, including a dropdown menu labeled "License."

You can manually add a license using the browser. For more information on adding a license to a repository, see "Adding a license to a repository."

Disclaimer

The goal of GitHub's open source licensing efforts is to provide a starting point to help you make an informed choice. GitHub displays license information to help users get information about open source licenses and the projects that use them. We hope it helps, but please keep in mind that we’re not lawyers and that we make mistakes like everyone else. For that reason, GitHub provides the information on an "as-is" basis and makes no warranties regarding any information or licenses provided on or through it, and disclaims liability for damages resulting from using the license information. If you have any questions regarding the right license for your code or any other legal issues relating to it, it’s always best to consult with a professional.

Further reading