https://github.com/licensee/licensee
A Ruby Gem to detect under what license a project is distributed.
https://github.com/licensee/licensee
Keywords
law legal licensing open-source open-source-licensing ruby ruby-gem
Keywords from Contributors
rubygems activerecord mvc activejob feature-flag grape identity rubocop feature-toggle feature
Last synced: about 6 hours ago
JSON representation
Repository metadata
A Ruby Gem to detect under what license a project is distributed.
- Host: GitHub
- URL: https://github.com/licensee/licensee
- Owner: licensee
- License: mit
- Created: 2014-08-16T16:39:56.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2026-02-22T06:43:12.000Z (9 days ago)
- Last Synced: 2026-02-28T18:05:15.811Z (3 days ago)
- Topics: law, legal, licensing, open-source, open-source-licensing, ruby, ruby-gem
- Language: Ruby
- Homepage: https://licensee.github.io/licensee/
- Size: 3.08 MB
- Stars: 872
- Watchers: 56
- Forks: 319
- Open Issues: 17
- Releases: 98
-
Metadata Files:
- Readme: docs/README.md
- Contributing: docs/CONTRIBUTING.md
- Funding: .github/funding.yml
- License: LICENSE.md
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: docs/SECURITY.md
- Support: docs/SUPPORT.md
docs/README.md
Licensee
A Ruby Gem to detect under what license a project is distributed.
The problem
- You've got an open source project. How do you know what you can and can't do with the software?
- You've got a bunch of open source projects, how do you know what their licenses are?
- You've got a project with a license file, but which license is it? Has it been modified?
The solution
Licensee automates the process of reading LICENSE files and compares their contents to known licenses using several strategies (which we call "Matchers"). It attempts to determine a project's license in the following order:
- If the license file has an explicit copyright notice, and nothing more (e.g.,
Copyright (c) 2015 Ben Balter), we'll assume the author intends to retain all rights, and thus the project isn't licensed. - If the license is an exact match to a known license. If we strip away whitespace and copyright notice, we might get lucky, and direct string comparison in Ruby is cheap.
- If we still can't match the license, we use a fancy math thing called the Sørensen–Dice coefficient, which is really good at calculating the similarity between two strings. By calculating the percent changed from the known license to the license file, you can tell, e.g., that a given license is 95% similar to the MIT license, that 5% likely representing legally insignificant changes to the license text.
Special thanks to @vmg for his Git and algorithmic prowess.
Installation
To use the latest released gem from RubyGems:
gem install licensee
To use licensee programmatically in your own Ruby project, add gem 'licensee' to your project's Gemfile.
To run licensee directly from source:
gem install bundler
bundle install
bundle exec bin/licensee
On Windows, the last line needs to include the Ruby interpreter:
bundle exec ruby bin\licensee
Docker
Licensee also comes with a Dockerfile if you prefer to run Licensee within a Docker container:
git clone https://github.com/licensee/licensee && cd licenseedocker build . --tag licenseedocker run licensee [COMMAND](see command line usage)
Documentation
See the docs folder for more information. You may be interested in:
- Instructions for using Licensee
- Customizing Licensee's behavior
- Contributing to Licensee (and development instructions)
- More information about what Licensee looks at (or doesn't, and why)
Semantic Versioning
This project conforms to semver. As a result of this policy, you can (and should) specify a dependency on this gem using the Pessimistic Version Constraint with two digits of precision. For example:
spec.add_dependency 'licensee', '~> 1.0'
This means your project is compatible with licensee 1.0 up until 2.0. You can also set a higher minimum version:
spec.add_dependency 'licensee', '~> 1.1'
Owner metadata
- Name: Licensee
- Login: licensee
- Email:
- Kind: organization
- Description: A Ruby Gem to detect under what license a project is distributed.
- Website: https://licensee.github.io
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/47460333?v=4
- Repositories: 4
- Last ynced at: 2024-05-19T00:05:03.678Z
- Profile URL: https://github.com/licensee
GitHub Events
Total
- Create event: 102
- Commit comment event: 1
- Release event: 1
- Delete event: 82
- Pull request event: 237
- Fork event: 39
- Issues event: 17
- Watch event: 65
- Issue comment event: 49
- Push event: 120
- Pull request review comment event: 35
- Pull request review event: 101
Last Year
- Delete event: 54
- Pull request event: 161
- Fork event: 19
- Issues event: 12
- Watch event: 31
- Issue comment event: 25
- Push event: 77
- Pull request review comment event: 23
- Pull request review event: 63
- Create event: 68
- Commit comment event: 1
Committers metadata
Last synced: 1 day ago
Total Commits: 1,452
Total Committers: 64
Avg Commits per committer: 22.688
Development Distribution Score (DDS): 0.492
Commits in past year: 135
Committers in past year: 4
Avg Commits per committer in past year: 33.75
Development Distribution Score (DDS) in past year: 0.541
| Name | Commits | |
|---|---|---|
| Ben Balter | b****r@g****m | 737 |
| Mike Linksvayer | m****a@g****m | 352 |
| dependabot[bot] | 4****] | 182 |
| Jon Ruskin | j****c@g****m | 22 |
| Sebastian Schuberth | s****h@g****m | 21 |
| Vicent Marti | t****u@g****m | 21 |
| Jim Hester | j****r@g****m | 8 |
| Pablo Rodríguez González | p****z@g****m | 8 |
| copilot-swe-agent[bot] | 1****t | 7 |
| Jarryd Lee | j****d@s****m | 5 |
| Arfon Smith | a****h@g****m | 5 |
| Paul Chaignon | p****n@g****m | 5 |
| Waldir Pimenta | w****s@g****m | 5 |
| Ville Lahdenvuo | t****i@g****m | 4 |
| Andrew Nesbitt | a****z@g****m | 4 |
| Brandon Keepers | b****n@o****g | 3 |
| Franco Bulgarelli | f****o@m****g | 3 |
| Jordan von Kluck | j****n@t****m | 3 |
| Mislav Marohnić | m****c@g****m | 3 |
| pandaninjas | a****n@m****a | 3 |
| Ben Wiley | b****y@a****m | 2 |
| Atakan Yenel | a****l@t****e | 2 |
| Erick Tryzelaar | e****r@g****m | 2 |
| Naren Dasan | n****n@n****m | 2 |
| Nicolas Spalinger | n****r@s****g | 2 |
| Adam Hess | H****r@g****m | 2 |
| W. Trevor King | w****g@t****s | 2 |
| 1138-4EB | 1****B | 1 |
| Adam Roben | a****m@r****g | 1 |
| Nicolas Leger | n****r@n****m | 1 |
| and 34 more... | ||
Committer domains:
- github.com: 7
- gitlab.com: 1
- fsf.org: 1
- gocardless.com: 1
- nleger.com: 1
- roben.org: 1
- tremily.us: 1
- sil.org: 1
- narendasan.com: 1
- google.com: 1
- tum.de: 1
- autodesk.com: 1
- malwarefight.wip.la: 1
- tastyworks.com: 1
- mumuki.org: 1
- opensoul.org: 1
- adap.tv: 1
- daniel-boehmer.de: 1
- 4angle.com: 1
- amazon.com: 1
- weightpoint.se: 1
- gluster.org: 1
- lu.is: 1
- hroncok.cz: 1
- triplecheck.de: 1
- pks.im: 1
- debian.org: 1
- roryokane.com: 1
- stepsecurity.io: 1
- mit.edu: 1
- willbar.com: 1
- yardenshoham.com: 1
- semgrep.com: 1
Issue and Pull Request metadata
Last synced: 9 days ago
Total issues: 67
Total pull requests: 435
Average time to close issues: 4 months
Average time to close pull requests: 11 days
Total issue authors: 57
Total pull request authors: 25
Average comments per issue: 3.03
Average comments per pull request: 0.31
Merged pull request: 355
Bot issues: 0
Bot pull requests: 358
Past year issues: 7
Past year pull requests: 124
Past year average time to close issues: about 23 hours
Past year average time to close pull requests: 1 day
Past year issue authors: 7
Past year pull request authors: 7
Past year average comments per issue: 0.57
Past year average comments per pull request: 0.19
Past year merged pull request: 88
Past year bot issues: 0
Past year bot pull requests: 106
Top Issue Authors
- TheJJ (3)
- lsmith77 (3)
- ale5000-git (2)
- mlinksva (2)
- villelahdenvuo (2)
- yongyongsi (2)
- Pandapip1 (2)
- juliecarolmiller1 (2)
- shenyileirob (1)
- Zocker1999NET (1)
- varunkumar (1)
- jensljungblad (1)
- DerionFaleneva (1)
- philippneugebauer (1)
- Lazerbeak12345 (1)
Top Pull Request Authors
- dependabot[bot] (300)
- github-actions[bot] (58)
- mlinksva (33)
- Copilot (12)
- erickt (4)
- benbalter (3)
- jarrydlee (2)
- Melissa1181 (2)
- villelahdenvuo (2)
- Myahr208 (2)
- abitrolly (2)
- pandaninjas (2)
- yardenshoham (1)
- DerionFaleneva (1)
- Pandapip1 (1)
Top Issue Labels
- help wanted (13)
- good first issue (8)
- wontfix (5)
- feature (1)
- more-information-needed (1)
- bug (1)
Top Pull Request Labels
- dependencies (300)
- github_actions (189)
- docker (99)
- ruby (12)
- more-information-needed (4)
Package metadata
- Total packages: 6
- Total downloads: unknown
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 98
proxy.golang.org: github.com/licensee/licensee
- Homepage:
- Documentation: https://pkg.go.dev/github.com/licensee/licensee#section-documentation
- Licenses: mit
- Latest release: v9.18.0+incompatible (published over 1 year ago)
- Last Synced: 2026-02-27T23:01:30.491Z (3 days ago)
- Versions: 93
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 8.686%
- Average: 9.241%
- Dependent repos count: 9.796%
nixpkgs-23.11: licensee
A Ruby Gem to detect under what license a project is distributed
- Homepage: https://licensee.github.io/licensee/
- Documentation: https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/tools/package-management/licensee/default.nix#L11
- Licenses: MIT
- Latest release: 9.16.0 (published 29 days ago)
- Last Synced: 2026-02-03T20:35:17.454Z (27 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
nixpkgs-24.05: licensee
A Ruby Gem to detect under what license a project is distributed
- Homepage: https://licensee.github.io/licensee/
- Documentation: https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/tools/package-management/licensee/default.nix#L15
- Licenses: MIT
- Latest release: 9.16.1 (published 29 days ago)
- Last Synced: 2026-02-03T18:52:31.366Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
nixpkgs-23.05: licensee
A Ruby Gem to detect under what license a project is distributed
- Homepage: https://licensee.github.io/licensee/
- Documentation: https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/tools/package-management/licensee/default.nix#L11
- Licenses: MIT
- Latest release: 9.16.0 (published about 1 month ago)
- Last Synced: 2026-02-02T12:43:20.871Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
nixpkgs-unstable: licensee
Ruby Gem to detect under what license a project is distributed
- Homepage: https://licensee.github.io/licensee/
- Documentation: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/package-management/licensee/default.nix#L15
- Licenses: MIT
- Latest release: 9.18.0 (published about 1 month ago)
- Last Synced: 2026-02-02T10:36:16.133Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
nixpkgs-24.11: licensee
Ruby Gem to detect under what license a project is distributed
- Homepage: https://licensee.github.io/licensee/
- Documentation: https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/tools/package-management/licensee/default.nix#L15
- Licenses: MIT
- Latest release: 9.16.1 (published 30 days ago)
- Last Synced: 2026-02-03T17:39:14.926Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
Dependencies
- gem-release ~> 2.0 development
- mustache >= 0.9, < 2.0 development
- pry ~> 0.9 development
- rspec ~> 3.5 development
- rubocop ~> 1.0 development
- rubocop-performance ~> 1.5 development
- rubocop-rspec ~> 2.0 development
- simplecov ~> 0.16 development
- webmock ~> 3.1 development
- dotenv ~> 2.0
- octokit ~> 4.20
- reverse_markdown ~> 1.0
- rugged >= 0.24, < 2.0
- thor >= 0.19, < 2.0
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- actions/checkout v3 composite
- peter-evans/create-pull-request v4 composite
- ruby/setup-ruby v1 composite
- ruby 3.2.0 build
- actions/checkout 08c6903cd8c0fde910a37f88322edcfb5dd907a8 composite
- actions/dependency-review-action 40c09b7dc99638e5ddb0bfd91c1673effc064d8a composite
- step-security/harden-runner 95d9a5deda9de15063e7595e9719c11c38c90ae2 composite
- actions/checkout 08c6903cd8c0fde910a37f88322edcfb5dd907a8 composite
- actions/upload-artifact 330a01c490aca151604b8cf639adc76d48f6c5d4 composite
- github/codeql-action/upload-sarif 0499de31b99561a6d14a36a5f662c2a54f91beee composite
- ossf/scorecard-action 4eaacf0543bb3f2c246792bd56e8cdeffafb205a composite
- step-security/harden-runner 95d9a5deda9de15063e7595e9719c11c38c90ae2 composite
Score: -Infinity