A summary of data about the Ruby ecosystem.

https://github.com/puppetlabs/facter

Collect and display system facts
https://github.com/puppetlabs/facter

Keywords from Contributors

rubocop gitlab ruby-gem rubygems openssl tls feature-flag rspec code-formatter static-code-analysis

Last synced: about 16 hours ago
JSON representation

Repository metadata

Collect and display system facts

README.md

facter

Gem Version

Modules Status
Modules Status
Modules Status
Test Coverage
Maintainability

Facter is a command-line tool that gathers basic facts about nodes (systems)
such as hardware details, network settings, OS type and version, and more.
These facts are made available as variables in your Puppet manifests and can be
used to inform conditional expressions in Puppet.

Documentation

Documentation for the Facter project can be found on the Puppet Docs
site
.

Supported platforms

  • Linux
  • macOS
  • Windows
  • Solaris
  • AIX

Requirements

  • Ruby 2.5+
  • FFI (for facts like mountpoints which are resolved using C API calls)

Basic concepts

The project has three main parts, the framework, facts and resolvers.
In the framework we implement functionality that is agnostic of specific facts like parsing user input, formatting output, etc.

Facts are the nuggets of information that will be provided by facter e.g. os.name, networking.interfaces, etc.

Resolvers have the role of gathering data from the system.
For example a resolver can execute a command on the system, can read a file or any operation that retrieves some data from a single source on the system.

sequenceDiagram
    participant user
    participant framework
    participant fact
    participant resolver
    user->>framework: user query
    framework->>fact: create
    fact->>resolver: resolve
    resolver->>fact: system information
    fact->>framework: fact value
    framework->>user: formatted user output

Getting started

After cloning the project, run bundle install to install all dependencies.

You can run facter by executing ./bin/facter.
The command will output all the facts that facter detected for the current OS.

The implementation can be validated locally by running bundle exec rake check.

Goals - fast, easy, compatible

  • Gain performance similar to the C++ version of Facter. We plan to achieve this goal by gathering multiple facts with only one call and by using the faster Win32 API rather than WMI for the Windows implementation.
  • Facilitate community contribution. At the moment, C++ presents a possible impediment for community contributions.
  • Enable native integration with other Ruby-based projects such as Bolt and puppet.
  • Enable native integration for custom facts.
  • Provide 100% compatibility with C++ Facter (drop-in replacement).

Licensing

See LICENSE file. Puppet is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: info@puppet.com


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 1,633
Total Committers: 78
Avg Commits per committer: 20.936
Development Distribution Score (DDS): 0.785

Commits in past year: 30
Committers in past year: 5
Avg Commits per committer in past year: 6.0
Development Distribution Score (DDS) in past year: 0.3

Name Email Commits
Bogdan Irimie b****e@p****m 351
Josh Cooper j****r 162
oanatmaria 4****a 159
Sebastian Miclea s****a@p****m 95
Michael Hashizume m****e@p****m 93
gimmy g****u@p****m 89
Florin Dragos f****s 61
Filipovici-Andrei F****i 59
Jenkins CI ci@p****m 55
Oana Tanasoiu o****u@p****m 53
Gabriel Nagy g****y@p****m 48
Luchian Nemes l****s@p****m 32
Romain Tartière r****n@b****g 31
gigicampean 5****n 26
Andrei Filipovici a****i@a****t 26
mihaibuzgau m****u@p****m 25
Bogdan Irimie i****n@p****m 24
Aria Li a****i@p****m 22
Ciprian Badescu c****u@p****m 20
Bobosila Victor v****1@g****m 19
Dorin Pleava d****a@p****m 19
Tony Vu v****y@g****m 17
Alexandru Popa a****n@g****m 16
Christopher Thorn c****n@p****m 15
ciprianbadescu 5****u 7
Alex Avlonitis A****s 6
Shubham Shinde s****e@p****m 6
Pat Riehecky r****y@f****v 6
Ewoud Kohl van Wijngaarden e****d@k****l 5
Tim Meusel t****m@b****e 5
and 48 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 4 days ago

Total issues: 43
Total pull requests: 343
Average time to close issues: about 1 month
Average time to close pull requests: about 2 months
Total issue authors: 28
Total pull request authors: 43
Average comments per issue: 2.3
Average comments per pull request: 1.92
Merged pull request: 248
Bot issues: 0
Bot pull requests: 5

Past year issues: 4
Past year pull requests: 10
Past year average time to close issues: 12 days
Past year average time to close pull requests: about 16 hours
Past year issue authors: 3
Past year pull request authors: 7
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.8
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 3

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/puppetlabs/facter

Top Issue Authors

  • bastelfreak (6)
  • jcpunk (3)
  • sharewax (3)
  • mhashizume (3)
  • joshcooper (3)
  • SaltyAlan (2)
  • jonathannewman (2)
  • morsik (1)
  • personjs (1)
  • rismoney (1)
  • archaron (1)
  • molhamalnasr (1)
  • Hegelund (1)
  • aqueos (1)
  • tvpartytonight (1)

Top Pull Request Authors

  • joshcooper (106)
  • mhashizume (71)
  • AriaXLi (26)
  • tvpartytonight (20)
  • bastelfreak (12)
  • smortex (12)
  • cthorn42 (10)
  • jcpunk (9)
  • lollipopman (6)
  • shubhamshinde360 (6)
  • skyamgarp (4)
  • jonathannewman (4)
  • smokris (4)
  • kenyon (4)
  • mminkus (3)

Top Issue Labels

  • bug (26)
  • enhancement (14)
  • triaged (11)
  • maintenance (1)
  • accepted (1)

Top Pull Request Labels

  • maintenance (64)
  • bug (39)
  • enhancement (37)
  • dependencies (3)
  • github_actions (3)
  • blocked (2)
  • triaged (2)

Package metadata

gem.coop: facter

You can prove anything with facts!

  • Homepage: https://github.com/puppetlabs/facter
  • Documentation: http://www.rubydoc.info/gems/facter/
  • Licenses: Apache-2.0
  • Latest release: 4.10.0 (published about 1 year ago)
  • Last Synced: 2025-12-09T11:03:16.934Z (1 day ago)
  • Versions: 262
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 48,585,987 Total
  • Docker Downloads: 127,147,911
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 0.169%
    • Downloads: 0.508%
  • Maintainers (1)
rubygems.org: facter

You can prove anything with facts!

proxy.golang.org: github.com/puppetlabs/facter

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/puppetlabs/facter#section-documentation
  • Licenses: apache-2.0
  • Latest release: v4.0.6+incompatible (published almost 6 years ago)
  • Last Synced: 2025-12-07T21:02:19.425Z (3 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%

Dependencies

.github/workflows/acceptance_tests.yml actions
  • actions/checkout v4 composite
  • ruby/setup-ruby v1 composite
.github/workflows/checks.yaml actions
  • actions/checkout v4 composite
  • gimmyxd/rtc-action 0.3.1 composite
  • ruby/setup-ruby v1 composite
.github/workflows/coverage.yaml actions
  • actions/checkout v4 composite
  • ruby/setup-ruby v1 composite
.github/workflows/integration_tests.yaml actions
  • actions/checkout v4 composite
  • ruby/setup-ruby v1 composite
.github/workflows/mend.yaml actions
  • actions/checkout v4 composite
  • actions/setup-java v3 composite
  • ruby/setup-ruby v1 composite
.github/workflows/unit_tests.yaml actions
  • actions/checkout v4 composite
  • ruby/setup-ruby v1 composite
Gemfile rubygems
  • ronn ~> 0.7.3 development
  • ffi = 1.15.5
  • octokit ~> 4.18.0
  • packaging >= 0
acceptance/Gemfile rubygems
  • multi_json ~> 1.8
  • rake >= 12.3.3
facter.gemspec rubygems
  • ffi = 1.15.5 development
  • rake ~> 13.0, >= 13.0.6 development
  • rspec ~> 3.0 development
  • rubocop ~> 0.81.0 development
  • rubocop-performance ~> 1.5.2 development
  • rubocop-rspec ~> 1.38 development
  • simplecov ~> 0.17.1 development
  • sys-filesystem ~> 1.4 development
  • webmock ~> 3.12 development
  • yard ~> 0.9 development
  • hocon ~> 1.3
  • thor >= 1.0.1, < 2.0

Score: 30.547619243002703