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
rubygem activerecord activejob mvc feature-flag grape feature-toggle rubocop feature oauth2-server
Last synced: about 14 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-04-28T05:20:45.000Z (3 days ago)
- Last Synced: 2026-04-28T12:35:10.078Z (2 days ago)
- Topics: law, legal, licensing, open-source, open-source-licensing, ruby, ruby-gem
- Language: Ruby
- Homepage: https://licensee.github.io/licensee/
- Size: 3.45 MB
- Stars: 879
- Watchers: 59
- Forks: 325
- Open Issues: 7
- Releases: 99
-
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: 110
- Commit comment event: 1
- Release event: 1
- Delete event: 103
- Pull request event: 277
- Fork event: 41
- Issues event: 24
- Watch event: 65
- Issue comment event: 56
- Push event: 166
- Pull request review comment event: 41
- Pull request review event: 108
Last Year
- Delete event: 69
- Pull request event: 182
- Fork event: 15
- Issues event: 18
- Watch event: 27
- Issue comment event: 29
- Push event: 119
- Pull request review comment event: 28
- Pull request review event: 61
- Create event: 68
- Commit comment event: 1
Committers metadata
Last synced: 2 days ago
Total Commits: 1,529
Total Committers: 67
Avg Commits per committer: 22.821
Development Distribution Score (DDS): 0.515
Commits in past year: 198
Committers in past year: 7
Avg Commits per committer in past year: 28.286
Development Distribution Score (DDS) in past year: 0.551
| Name | Commits | |
|---|---|---|
| Ben Balter | b****r@g****m | 741 |
| Mike Linksvayer | m****a@g****m | 386 |
| dependabot[bot] | 4****] | 190 |
| Jon Ruskin | j****c@g****m | 22 |
| github-actions[bot] | g****] | 22 |
| Sebastian Schuberth | s****h@g****m | 21 |
| Vicent Marti | t****u@g****m | 21 |
| copilot-swe-agent[bot] | 1****t | 14 |
| Jim Hester | j****r@g****m | 8 |
| Pablo Rodríguez González | p****z@g****m | 8 |
| Waldir Pimenta | w****s@g****m | 5 |
| Paul Chaignon | p****n@g****m | 5 |
| Jarryd Lee | j****d@s****m | 5 |
| Arfon Smith | a****h@g****m | 5 |
| Andrew Nesbitt | a****z@g****m | 4 |
| Ville Lahdenvuo | t****i@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 |
| Adam Hess | H****r@g****m | 2 |
| Atakan Yenel | a****l@t****e | 2 |
| Ben Wiley | b****y@a****m | 2 |
| Erick Tryzelaar | e****r@g****m | 2 |
| Naren Dasan | n****n@n****m | 2 |
| Nicolas Spalinger | n****r@s****g | 2 |
| W. Trevor King | w****g@t****s | 2 |
| 1138-4EB | 1****B | 1 |
| Adam Roben | a****m@r****g | 1 |
| and 37 more... | ||
Committer domains:
- github.com: 8
- pks.im: 1
- triplecheck.de: 1
- gocardless.com: 1
- nleger.com: 1
- roben.org: 1
- tremily.us: 1
- sil.org: 1
- narendasan.com: 1
- google.com: 1
- autodesk.com: 1
- tum.de: 1
- malwarefight.wip.la: 1
- tastyworks.com: 1
- mumuki.org: 1
- opensoul.org: 1
- hroncok.cz: 1
- lu.is: 1
- gluster.org: 1
- weightpoint.se: 1
- amazon.com: 1
- 4angle.com: 1
- daniel-boehmer.de: 1
- adap.tv: 1
- fsf.org: 1
- gitlab.com: 1
- yardenshoham.com: 1
- willbar.com: 1
- mit.edu: 1
- stepsecurity.io: 1
- roryokane.com: 1
- debian.org: 1
- semgrep.com: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 78
Total pull requests: 452
Average time to close issues: 5 months
Average time to close pull requests: 11 days
Total issue authors: 61
Total pull request authors: 25
Average comments per issue: 2.82
Average comments per pull request: 0.32
Merged pull request: 365
Bot issues: 8
Bot pull requests: 374
Past year issues: 16
Past year pull requests: 105
Past year average time to close issues: 5 days
Past year average time to close pull requests: 1 day
Past year issue authors: 9
Past year pull request authors: 6
Past year average comments per issue: 0.81
Past year average comments per pull request: 0.23
Past year merged pull request: 74
Past year bot issues: 8
Past year bot pull requests: 88
Top Issue Authors
- github-actions[bot] (8)
- TheJJ (3)
- lsmith77 (3)
- ale5000-git (2)
- villelahdenvuo (2)
- yongyongsi (2)
- mlinksva (2)
- Pandapip1 (2)
- juliecarolmiller1 (2)
- Zocker1999NET (1)
- varunkumar (1)
- jensljungblad (1)
- DerionFaleneva (1)
- philippneugebauer (1)
- Lazerbeak12345 (1)
Top Pull Request Authors
- dependabot[bot] (304)
- github-actions[bot] (70)
- mlinksva (34)
- 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)
- repo-assist (7)
- automation (7)
- documentation (6)
- wontfix (5)
- bug (4)
- enhancement (2)
- agentic-workflows (1)
- feature (1)
- needs triage (1)
- more-information-needed (1)
Top Pull Request Labels
- dependencies (304)
- github_actions (193)
- docker (99)
- automation (12)
- ruby (12)
- repo-assist (12)
- more-information-needed (4)
- bug (1)
- documentation (1)
- enhancement (1)
Package metadata
- Total packages: 6
- Total downloads: unknown
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 99
- Total maintainers: 1
proxy.golang.org: github.com/licensee/licensee
- Homepage:
- Documentation: https://pkg.go.dev/github.com/licensee/licensee#section-documentation
- Licenses: mit
- Latest release: v9.19.0+incompatible (published about 1 month ago)
- Last Synced: 2026-04-26T03:01:26.040Z (5 days ago)
- Versions: 94
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 8.686%
- Average: 9.241%
- Dependent repos count: 9.796%
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 3 months ago)
- Last Synced: 2026-04-15T21:04:25.469Z (15 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
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 3 months ago)
- Last Synced: 2026-03-07T06:21:02.277Z (about 2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
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 3 months ago)
- Last Synced: 2026-03-09T05:14:44.620Z (about 2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
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 3 months ago)
- Last Synced: 2026-03-06T18:16:07.148Z (about 2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Maintainers (1)
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 3 months ago)
- Last Synced: 2026-03-07T00:04:23.457Z (about 2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Maintainers (1)
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: 10.991409569996048