moose-inventory 1.0.8 → 2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +49 -0
  3. data/.github/workflows/release.yml +58 -0
  4. data/.gitignore +1 -1
  5. data/.gitleaks.toml +9 -0
  6. data/.rubocop.yml +19 -784
  7. data/BACKLOG.md +290 -0
  8. data/Gemfile.lock +95 -0
  9. data/README.md +38 -9
  10. data/Rakefile +1 -1
  11. data/bin/moose-inventory +1 -1
  12. data/docs/release/publishing.md +109 -0
  13. data/docs/release/release-readiness.md +55 -0
  14. data/docs/security-audit-2026-05-21.md +71 -0
  15. data/docs/security-audit-2026-05-26-rerun.md +75 -0
  16. data/docs/security-audit-2026-05-26.md +63 -0
  17. data/lib/moose_inventory/cli/formatter.rb +16 -17
  18. data/lib/moose_inventory/cli/group.rb +4 -1
  19. data/lib/moose_inventory/cli/group_add.rb +89 -75
  20. data/lib/moose_inventory/cli/group_addchild.rb +84 -71
  21. data/lib/moose_inventory/cli/group_addhost.rb +78 -69
  22. data/lib/moose_inventory/cli/group_addvar.rb +37 -37
  23. data/lib/moose_inventory/cli/group_get.rb +23 -26
  24. data/lib/moose_inventory/cli/group_list.rb +12 -15
  25. data/lib/moose_inventory/cli/group_listvars.rb +12 -14
  26. data/lib/moose_inventory/cli/group_rm.rb +104 -76
  27. data/lib/moose_inventory/cli/group_rmchild.rb +99 -54
  28. data/lib/moose_inventory/cli/group_rmhost.rb +64 -60
  29. data/lib/moose_inventory/cli/group_rmvar.rb +5 -5
  30. data/lib/moose_inventory/cli/helpers.rb +76 -0
  31. data/lib/moose_inventory/cli/host.rb +4 -1
  32. data/lib/moose_inventory/cli/host_add.rb +51 -66
  33. data/lib/moose_inventory/cli/host_addgroup.rb +77 -68
  34. data/lib/moose_inventory/cli/host_addvar.rb +6 -6
  35. data/lib/moose_inventory/cli/host_get.rb +15 -18
  36. data/lib/moose_inventory/cli/host_list.rb +3 -3
  37. data/lib/moose_inventory/cli/host_listvars.rb +21 -23
  38. data/lib/moose_inventory/cli/host_rm.rb +9 -9
  39. data/lib/moose_inventory/cli/host_rmgroup.rb +63 -60
  40. data/lib/moose_inventory/cli/host_rmvar.rb +3 -3
  41. data/lib/moose_inventory/config/config.rb +43 -40
  42. data/lib/moose_inventory/db/db.rb +92 -52
  43. data/lib/moose_inventory/db/models.rb +11 -12
  44. data/lib/moose_inventory/inventory_context.rb +50 -0
  45. data/lib/moose_inventory/operations/add_associations.rb +127 -0
  46. data/lib/moose_inventory/operations/add_groups.rb +115 -0
  47. data/lib/moose_inventory/operations/add_hosts.rb +110 -0
  48. data/lib/moose_inventory/operations/group_child_relations.rb +118 -0
  49. data/lib/moose_inventory/operations/group_cleanup.rb +55 -0
  50. data/lib/moose_inventory/operations/remove_associations.rb +101 -0
  51. data/lib/moose_inventory/operations/remove_groups.rb +79 -0
  52. data/lib/moose_inventory/version.rb +1 -1
  53. data/moose-inventory.gemspec +38 -20
  54. data/scripts/check.sh +10 -0
  55. data/scripts/ci/check_permissions.sh +35 -0
  56. data/scripts/ci/check_rubocop.sh +28 -0
  57. data/scripts/ci/check_secrets.sh +26 -0
  58. data/scripts/ci/check_security.sh +68 -0
  59. data/scripts/ci/install_security_tools.sh +47 -0
  60. data/scripts/ci/package_sanity.sh +46 -0
  61. data/scripts/files.rb +1 -4
  62. data/scripts/install_dependencies.sh +19 -0
  63. data/scripts/reports.sh +2 -2
  64. data/spec/lib/moose_inventory/cli/cli_spec.rb +13 -14
  65. data/spec/lib/moose_inventory/cli/group_add_spec.rb +118 -119
  66. data/spec/lib/moose_inventory/cli/group_addchild_spec.rb +49 -51
  67. data/spec/lib/moose_inventory/cli/group_addhost_spec.rb +80 -83
  68. data/spec/lib/moose_inventory/cli/group_addvar_spec.rb +91 -91
  69. data/spec/lib/moose_inventory/cli/group_get_spec.rb +22 -23
  70. data/spec/lib/moose_inventory/cli/group_list_spec.rb +19 -20
  71. data/spec/lib/moose_inventory/cli/group_listvar_spec.rb +35 -36
  72. data/spec/lib/moose_inventory/cli/group_rm_spec.rb +115 -78
  73. data/spec/lib/moose_inventory/cli/group_rmchild_spec.rb +86 -45
  74. data/spec/lib/moose_inventory/cli/group_rmhost_spec.rb +43 -46
  75. data/spec/lib/moose_inventory/cli/group_rmvar_spec.rb +131 -131
  76. data/spec/lib/moose_inventory/cli/group_spec.rb +9 -9
  77. data/spec/lib/moose_inventory/cli/host_add_spec.rb +103 -43
  78. data/spec/lib/moose_inventory/cli/host_addgroup_spec.rb +78 -80
  79. data/spec/lib/moose_inventory/cli/host_addvar_spec.rb +122 -122
  80. data/spec/lib/moose_inventory/cli/host_get_spec.rb +16 -16
  81. data/spec/lib/moose_inventory/cli/host_list_spec.rb +8 -8
  82. data/spec/lib/moose_inventory/cli/host_listvar_spec.rb +50 -52
  83. data/spec/lib/moose_inventory/cli/host_rm_spec.rb +12 -12
  84. data/spec/lib/moose_inventory/cli/host_rmgroup_spec.rb +48 -51
  85. data/spec/lib/moose_inventory/cli/host_rmvar_spec.rb +136 -136
  86. data/spec/lib/moose_inventory/config/config_spec.rb +16 -3
  87. data/spec/lib/moose_inventory/db/db_spec.rb +386 -2
  88. data/spec/lib/moose_inventory/db/models_spec.rb +10 -11
  89. data/spec/lib/moose_inventory/operations/add_associations_spec.rb +77 -0
  90. data/spec/lib/moose_inventory/operations/add_groups_spec.rb +65 -0
  91. data/spec/lib/moose_inventory/operations/add_hosts_spec.rb +69 -0
  92. data/spec/lib/moose_inventory/operations/group_child_relations_spec.rb +76 -0
  93. data/spec/lib/moose_inventory/operations/remove_associations_spec.rb +78 -0
  94. data/spec/lib/moose_inventory/operations/remove_groups_spec.rb +57 -0
  95. data/spec/shared/shared_config_setup.rb +2 -2
  96. data/spec/spec_helper.rb +7 -8
  97. metadata +157 -105
  98. data/.coveralls.yml +0 -0
  99. data/Guardfile +0 -38
  100. data/config/dotfiles/coveralls.yml +0 -0
  101. data/config/dotfiles/gitignore +0 -20
  102. data/config/dotfiles/rubocop.yml +0 -793
  103. data/scripts/guard_quality.sh +0 -3
  104. data/scripts/guard_test.sh +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d4c867504f182214f4cb07980133ad5de8a68832
4
- data.tar.gz: 99a656d44136b36bb7bd2c7187ec9ff66af51bb5
2
+ SHA256:
3
+ metadata.gz: 9740a165b6ef321e367391e80f09876ad3028230b30d27fa62357adeb9cf35ed
4
+ data.tar.gz: d02659ba937e0bf50f8357803d0f04028da75c7a6e190db3b03119d01b9a461a
5
5
  SHA512:
6
- metadata.gz: 3d1fe423b62518e54affd30939593ce8c8d6b0145424651a35aa30186bedd9ba195025abd7ef04385f082a7fedfb496a0aa75b994f1f52b724438e5b998745b7
7
- data.tar.gz: d257057b70e3c25f043d0ae43faac496fe2e5461cf0bcad821196da30c5d86883d1620468bbdef1e6b91ecbb8476459af0eab62c0f0d8cc0d8552dab664aa29b
6
+ metadata.gz: 8e6c10ad4baa0694035f230787cf564ba95be6eacf17a70c156cdf327cf0cd134b8924d2f5c5427c5f4ed725b46f116e1bcf89f389f8d9f3ce5a2222b6c6d461
7
+ data.tar.gz: dd88578501502714954c6c4674120e6eeb0b7b05116c9dd78edc97c7abb51a306290bdfc8b7c30caba75464a81315fd294e55c9e16d3b9c696817674a4b68f35
@@ -0,0 +1,49 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [master]
7
+ pull_request:
8
+ branches: [master]
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+
14
+ jobs:
15
+ test:
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ ruby-version: ['3.2', '3.3', '3.4']
21
+ steps:
22
+ - name: Check out repository
23
+ uses: actions/checkout@v5
24
+
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby-version }}
29
+ bundler-cache: true
30
+
31
+ - name: Set up Go for security tools
32
+ uses: actions/setup-go@v6
33
+ with:
34
+ go-version: '1.25.x'
35
+ cache: false
36
+
37
+ - name: Install native build dependencies
38
+ timeout-minutes: 5
39
+ run: |
40
+ sudo apt-get update
41
+ sudo apt-get install -y build-essential default-libmysqlclient-dev libpq-dev libsqlite3-dev
42
+
43
+ - name: Install security audit tools
44
+ run: ./scripts/ci/install_security_tools.sh
45
+
46
+ - name: Run local check gate
47
+ env:
48
+ MOOSE_INVENTORY_REQUIRE_SECURITY_TOOLS: '1'
49
+ run: ./scripts/check.sh
@@ -0,0 +1,58 @@
1
+ name: Release gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
12
+ jobs:
13
+ push:
14
+ runs-on: ubuntu-latest
15
+ environment: release
16
+ steps:
17
+ - name: Check out repository
18
+ uses: actions/checkout@v5
19
+ with:
20
+ persist-credentials: false
21
+
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: '3.4'
26
+ bundler-cache: true
27
+
28
+ - name: Set up Go for security tools
29
+ uses: actions/setup-go@v6
30
+ with:
31
+ go-version: '1.25.x'
32
+ cache: false
33
+
34
+ - name: Install native build dependencies
35
+ timeout-minutes: 5
36
+ run: |
37
+ sudo apt-get update
38
+ sudo apt-get install -y build-essential default-libmysqlclient-dev libpq-dev libsqlite3-dev
39
+
40
+ - name: Install security audit tools
41
+ run: ./scripts/ci/install_security_tools.sh
42
+
43
+ - name: Verify tag matches gem version
44
+ run: |
45
+ version="$(ruby -e "require './lib/moose_inventory/version'; puts Moose::Inventory::VERSION")"
46
+ tag="${GITHUB_REF_NAME#v}"
47
+ if [ "$tag" != "$version" ]; then
48
+ echo "Tag v$tag does not match gem version $version" >&2
49
+ exit 1
50
+ fi
51
+
52
+ - name: Run local check gate
53
+ env:
54
+ MOOSE_INVENTORY_REQUIRE_SECURITY_TOOLS: '1'
55
+ run: ./scripts/check.sh
56
+
57
+ - name: Publish gem to RubyGems
58
+ uses: rubygems/release-gem@v1
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -18,3 +17,4 @@ mkmf.log
18
17
  *.gem
19
18
  /gems/
20
19
  moose-inventory.spec
20
+ /.openclaw-security-audit/
data/.gitleaks.toml ADDED
@@ -0,0 +1,9 @@
1
+ title = "moose-inventory gitleaks config"
2
+
3
+ [allowlist]
4
+ description = "Ignore generated/local audit artifacts that are not part of the packaged source surface."
5
+ paths = [
6
+ '''^\.openclaw-security-audit/''',
7
+ '''^spec/reports/''',
8
+ '''^tmp/''',
9
+ ]