WIP: This gem is not live, but we would love your help and input! Core issue here: github.com/inspec/inspec/issues/5095

InSpecStyle

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file lib/rubocop/inspecstyle. To experiment with that code, run bin/console for an interactive prompt.

Full Documentation

rubydoc.info/gems/inspecstyle

Installation

Add this line to your application's Gemfile:

gem 'inspecstyle', require: false

And then execute:

$ bundle install

Or install it yourself as:

$ gem install inspecstyle

Usage

InSpecStyle integrates with rubocop to lint your InSpec code.

#.rubocop.yml
require:
  - inspecstyle

This gem must be installed to use the InSpecStyle atom linter package.

To only run these cops on your local rubocop run, execute:

rubocop . --only InSpecStyle

TODO:

  • Instead of referencing issues in the cops, point to a general inspecstyle.guide

  • Known issue, resources that work on manual runs but not in atom package: [

  • AzureGenericResource ]

  • Cop ideas: “ its('minimum_days_between_password_change') { should eq 0 } becomes 'mindays' its('maximum_days_between_password_change') { should eq 0 } becomes 'maxdays' Inspec.deprecate(:resource_user_serverspec_compat, "The user resourcehas_home_directory?matcher is deprecated. Please useits('home').") Inspec.deprecate(:resource_user_serverspec_compat, "The user resourcehas_authorized_key?` matcher is deprecated. There is no currently implemented alternative“)

shadow resource deprecations (e.g.) describe shadow('/etc/my-custom-place/shadow') do its('count') { should eq 32 } end

property deprecations:

user -> users password -> passwords last_change -> last_changes expiry_date -> expiry_dates lines (no replacement)

e.g.

sql = oracledb_session(user: 'my_user', pass: 'password') describe sql.query("SELECT UPPER(VALUE) AS VALUE FROM V$PARAMETER WHERE UPPER(NAME)='AUDIT_SYS_OPERATIONS'").row(0).column('value') do its('value') { should eq 'TRUE' } end

oracledb_session deprecated pass, use password instead “`

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at github.com/schwad/inspecstyle. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the of conduct[https://github.com/schwad]/inspecstyle/blob/master/CODE_OF_CONDUCT.md].

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Rubocop::InSpecStyle project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.