diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..a20a89b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,29 @@ +--- +version: 2 +updates: + - package-ecosystem: bundler + vendor: true + directory: "/" + schedule: + interval: weekly + day: "monday" + time: "21:00" + groups: + prod-ruby-dependencies: + dependency-type: "production" + patterns: + - "*" + dev-ruby-dependencies: + dependency-type: "development" + patterns: + - "*" + - package-ecosystem: github-actions + directory: "/" + groups: + github-actions: + patterns: + - "*" + schedule: + interval: weekly + day: "tuesday" + time: "21:00" diff --git a/.github/workflows/acceptance.yml b/.github/workflows/acceptance.yml index 16b8f3f..6bcb090 100644 --- a/.github/workflows/acceptance.yml +++ b/.github/workflows/acceptance.yml @@ -17,7 +17,7 @@ jobs: has_change: ${{ steps.diff.outputs.has_change}} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: fetch-base if: github.event_name == 'pull_request' @@ -50,10 +50,10 @@ jobs: if: github.event_name == 'push' run: echo "::set-output name=has_change::true" - acceptance-suite: + acceptance: needs: changes - runs-on: ubuntu-latest - name: runner / acceptance-tests + runs-on: ubuntu-latest-xl + name: acceptance permissions: contents: read @@ -67,7 +67,7 @@ jobs: - name: checkout if: ${{ needs.changes.outputs.has_change == 'true' }} - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Use Docker layer caching for 'docker build' and 'docker-compose build' commands. # https://github.com/satackey/action-docker-layer-caching/releases/tag/v0.0.11 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f69d66..5d81d57 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,13 +15,17 @@ permissions: jobs: build: name: build - runs-on: ubuntu-latest + + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # pin@v1.152.0 + - uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 # pin@v1.173.0 with: bundler-cache: true diff --git a/.github/workflows/gem.yml b/.github/workflows/gem.yml index d724ffa..a4f67d9 100644 --- a/.github/workflows/gem.yml +++ b/.github/workflows/gem.yml @@ -18,9 +18,9 @@ jobs: steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # pin@v1.152.0 + - uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 # pin@v1.173.0 with: bundler-cache: true @@ -31,7 +31,7 @@ jobs: run: bundle exec rubocop -c .rubocop.yml lib/ spec/ - name: test - run: script/test + run: script/test -d -k - name: set GEM_NAME from gemspec run: echo "GEM_NAME=$(ls | grep gemspec | cut -d. -f1)" >> $GITHUB_ENV @@ -46,7 +46,7 @@ jobs: GEM_HOST_API_KEY=${{ secrets.GITHUB_TOKEN }} gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} ${{ env.GEM_NAME }}-${{ env.GEM_VERSION }}.gem - name: release - uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # pin@v1.12.0 + uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 # pin@v1.14.0 with: artifacts: "${{ env.GEM_NAME }}-${{ env.GEM_VERSION }}.gem" tag: "v${{ env.GEM_VERSION }}" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 37f21e9..0a55d04 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,20 +6,24 @@ on: - main pull_request: +permissions: + contents: read + jobs: - rubocop: - name: runner / rubocop + lint: + name: lint runs-on: ubuntu-latest - permissions: - contents: read steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # pin@v1.152.0 + - uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 # pin@v1.173.0 with: bundler-cache: true + - name: bootstrap + run: script/bootstrap + - name: rubocop run: bundle exec rubocop -c .rubocop.yml lib/ spec/ diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7833f83..7a57040 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,20 +6,29 @@ on: - main pull_request: +permissions: + contents: read + jobs: - rubocop: - name: runner / rspec + test: + name: test runs-on: ubuntu-latest - permissions: - contents: read + + strategy: + matrix: + ruby: [ '3.1.2', '3.1.4', '3.2.2', '3.2.3', '3.3.0' ] steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # pin@v1.152.0 + - uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 # pin@v1.173.0 with: bundler-cache: true + ruby-version: ${{ matrix.ruby }} + + - name: bootstrap + run: script/bootstrap - name: rspec tests - run: script/test -d + run: script/test -d -k diff --git a/.rubocop.yml b/.rubocop.yml index 5ae9443..8b0b726 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,9 +3,10 @@ inherit_gem: - config/default.yml AllCops: + NewCops: disable SuggestExtensions: false DisplayCopNames: true - TargetRubyVersion: 3.1 + TargetRubyVersion: 3.3 Exclude: - 'bin/*' - 'spec/acceptance/fixtures/**/*' diff --git a/.ruby-version b/.ruby-version index ef538c2..15a2799 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.2 +3.3.0 diff --git a/Gemfile.lock b/Gemfile.lock index 35fffd1..b6c235b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,59 +1,70 @@ PATH remote: . specs: - entitlements-gitrepo-auditor-plugin (0.4.0) - contracts (= 0.17) - entitlements-app (= 0.3.0) + entitlements-gitrepo-auditor-plugin (0.4.1) + contracts (~> 0.17) + entitlements-app (~> 0.3) GEM remote: https://rubygems.org/ specs: - activesupport (7.0.7.2) + activesupport (7.1.3.2) + base64 + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) minitest (>= 5.1) + mutex_m tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) base64 (0.1.1) + bigdecimal (3.1.7) concurrent-ruby (1.1.9) + connection_pool (2.4.1) contracts (0.17) crack (0.4.5) rexml diff-lcs (1.5.0) docile (1.4.0) - entitlements-app (0.3.0) + drb (2.2.1) + entitlements-app (0.3.1) concurrent-ruby (= 1.1.9) faraday (~> 2.0) net-ldap (~> 0.17) octokit (~> 4.18) optimist (= 3.0.0) - faraday (2.7.11) - base64 - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) + faraday (2.9.0) + faraday-net_http (>= 2.0, < 3.2) + faraday-net_http (3.1.0) + net-http hashdiff (1.0.1) - i18n (1.14.1) + i18n (1.14.4) concurrent-ruby (~> 1.0) json (2.6.3) - minitest (5.19.0) - net-ldap (0.18.0) + language_server-protocol (3.17.0.3) + minitest (5.22.3) + mutex_m (0.2.0) + net-http (0.4.1) + uri + net-ldap (0.19.0) octokit (4.25.1) faraday (>= 1, < 3) sawyer (~> 0.9) optimist (3.0.0) - parallel (1.23.0) - parser (3.2.2.3) + parallel (1.24.0) + parser (3.3.0.5) ast (~> 2.4.1) racc public_suffix (5.0.3) - racc (1.7.1) - rack (3.0.8) + racc (1.7.3) + rack (3.0.10) rainbow (3.1.1) rake (13.0.6) - regexp_parser (2.8.1) + regexp_parser (2.9.0) rexml (3.2.6) rspec (3.8.0) rspec-core (~> 3.8.0) @@ -68,31 +79,33 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.8.0) rspec-support (3.8.3) - rubocop (1.29.1) + rubocop (1.62.1) + json (~> 2.3) + language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.17.0, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.29.0) - parser (>= 3.2.1.0) - rubocop-github (0.17.0) - rubocop - rubocop-performance - rubocop-rails - rubocop-performance (1.13.3) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rails (2.15.2) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.31.2) + parser (>= 3.3.0.4) + rubocop-github (0.20.0) + rubocop (>= 1.37) + rubocop-performance (>= 1.15) + rubocop-rails (>= 2.17) + rubocop-performance (1.20.2) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) + rubocop-rails (2.24.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) + rubocop (>= 1.33.0, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (1.13.0) - ruby2_keywords (0.0.5) - rugged (0.27.5) + rugged (1.7.2) sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) @@ -105,7 +118,8 @@ GEM simplecov-html (0.10.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) + uri (0.13.0) vcr (4.0.0) webmock (3.4.2) addressable (>= 2.3.6) @@ -120,10 +134,10 @@ DEPENDENCIES rake (= 13.0.6) rspec (= 3.8.0) rspec-core (= 3.8.0) - rubocop (= 1.29.1) - rubocop-github (= 0.17.0) - rubocop-performance (= 1.13.3) - rugged (= 0.27.5) + rubocop (= 1.62.1) + rubocop-github (= 0.20.0) + rubocop-performance (= 1.20.2) + rugged (~> 1.7, >= 1.7.2) simplecov (= 0.16.1) simplecov-erb (= 1.0.1) vcr (= 4.0.0) diff --git a/entitlements-gitrepo-auditor-plugin.gemspec b/entitlements-gitrepo-auditor-plugin.gemspec index 46beaed..26b6a9b 100644 --- a/entitlements-gitrepo-auditor-plugin.gemspec +++ b/entitlements-gitrepo-auditor-plugin.gemspec @@ -14,16 +14,16 @@ Gem::Specification.new do |s| s.homepage = "https://github.com/github/entitlements-gitrepo-auditor-plugin" s.executables = %w[] - s.add_dependency "contracts", "0.17" - s.add_dependency "entitlements-app", "0.3.0" + s.add_dependency "contracts", "~> 0.17" + s.add_dependency "entitlements-app", "~> 0.3" s.add_development_dependency "rake", "= 13.0.6" s.add_development_dependency "rspec", "= 3.8.0" s.add_development_dependency "rspec-core", "= 3.8.0" - s.add_development_dependency "rubocop", "= 1.29.1" - s.add_development_dependency "rubocop-github", "= 0.17.0" - s.add_development_dependency "rubocop-performance", "= 1.13.3" - s.add_development_dependency "rugged", "= 0.27.5" + s.add_development_dependency "rubocop", "= 1.62.1" + s.add_development_dependency "rubocop-github", "= 0.20.0" + s.add_development_dependency "rubocop-performance", "= 1.20.2" + s.add_development_dependency "rugged", "~> 1.7", ">= 1.7.2" s.add_development_dependency "simplecov", "= 0.16.1" s.add_development_dependency "simplecov-erb", "= 1.0.1" s.add_development_dependency "vcr", "= 4.0.0" diff --git a/lib/entitlements/auditor/gitrepo.rb b/lib/entitlements/auditor/gitrepo.rb index e27c851..53dcf46 100644 --- a/lib/entitlements/auditor/gitrepo.rb +++ b/lib/entitlements/auditor/gitrepo.rb @@ -330,7 +330,7 @@ def member_strings_as_text(group) end member_array = if config["person_dn_format"] - group.member_strings.map { |ms| config["person_dn_format"].gsub("%KEY%", ms).downcase } + group.member_strings.map { |ms| config["person_dn_format"].gsub("%KEY%", ms).downcase } else group.member_strings.map(&:downcase) end diff --git a/lib/version.rb b/lib/version.rb index 77a4604..9ca6764 100644 --- a/lib/version.rb +++ b/lib/version.rb @@ -2,6 +2,6 @@ module Entitlements module Version - VERSION = "0.4.0" + VERSION = "0.4.1" end end diff --git a/script/bootstrap b/script/bootstrap index ae08178..3cd5402 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -1,15 +1,54 @@ -#!/bin/bash +#! /usr/bin/env bash -set -e -set -x +# COLORS +OFF='\033[0m' +RED='\033[0;31m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +PURPLE='\033[0;35m' + +set -e # Prevent any kind of script failures + +# if any of the following env vars are set, use them for the APP_ENV value +if [ -n "$APP_ENV" ]; then + export APP_ENV="$APP_ENV" +elif [ -n "$ENV" ]; then + export APP_ENV="$ENV" +elif [ -n "$ENVIRONMENT" ]; then + export APP_ENV="$ENVIRONMENT" +elif [ -n "$RAILS_ENV" ]; then + export APP_ENV="$RAILS_ENV" +elif [ -n "$RACK_ENV" ]; then + export APP_ENV="$RACK_ENV" +fi + +# set the working directory to the root of the project DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" -cd "$DIR" -export PATH=/usr/share/rbenv/shims:$PATH -export RBENV_VERSION="$(cat .ruby-version)" -rm -rf "${DIR}/.bundle" +# set the ruby version to the one specified in the .ruby-version file +[ -z "$RBENV_VERSION" ] && export RBENV_VERSION=$(cat "$DIR/.ruby-version") + +# set the app environment to development if it's not set +[ -z "$APP_ENV" ] && export APP_ENV="development" + +# set the path to include the rbenv shims if they exist +[ -d "/usr/share/rbenv/shims" ] && export PATH=/usr/share/rbenv/shims:$PATH -# Using Deprecated Flags to avoid pulling from upstream -bundle install --path vendor/gems --local --clean +TRASHDIR=$(mktemp -d /tmp/bootstrap.XXXXXXXXXXXXXXXXX) +cleanup() { + rm -rf "$TRASHDIR" + # Remove empty directory + rmdir "$DIR/vendor/cache" 2>/dev/null || true +} +trap cleanup EXIT -bundle binstubs rake rspec-core rubocop +# Bootstrap gem dependencies. +if [ "$APP_ENV" == "production" ]; then + echo -e "๐Ÿ’Ž ${BLUE}Installing Gems for ${GREEN}production${BLUE}...${OFF}" + BUNDLE_WITHOUT=development bundle install --local + BUNDLE_WITHOUT=development bundle binstubs --all +else + echo -e "๐Ÿ’Ž ${BLUE}Installing Gems for ${PURPLE}development${BLUE}...${OFF}" + bundle install --local + bundle binstubs --all +fi diff --git a/script/test b/script/test index ab02e2c..0fff564 100755 --- a/script/test +++ b/script/test @@ -1,15 +1,22 @@ -#!/bin/bash +#! /usr/bin/env bash # run script/test -h for help +# COLORS +OFF='\033[0m' +RED='\033[0;31m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' + set -e function usage() { echo -e "\t ================== script/test usage ==================" echo -e "\t-h --help : displays help message" + echo -e "\t-k --no-linter : disables linting tests" echo -e "\t-d --disable-bootstrap : disables bootstrap" - echo -e "\n\t Suggested flags for development: script/test -d" + echo -e "\n\t Suggested flags for development: script/test -d -s" } while [ "$1" != "" ]; do @@ -35,42 +42,64 @@ while [ "$1" != "" ]; do shift done -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" - -export PATH=/usr/share/rbenv/shims:$PATH -export RBENV_VERSION="$(cat "${DIR}/.ruby-version")" - -TRASHDIR=$(mktemp -d /tmp/cibuild.XXXXXXXXXXXXXXXXXX) -cleanup() { - rm -rf "$TRASHDIR" -} -trap cleanup EXIT - -cd "$DIR" -. "${DIR}/script/lib/fold.sh" +# setup +export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" +[ -z "$RBENV_VERSION" ] && export RBENV_VERSION=$(cat "$DIR/.ruby-version") if [[ -z $no_bootstrap ]]; then # bootstrap - begin_fold "Bootstrapping" - ./script/bootstrap - end_fold + echo -e "\n๐Ÿฅพ ${BLUE}Bootstrapping: $(date "+%H:%M:%S")${OFF}\n" + echo "%%%FOLD {bootstrap}%%%" + cd "$DIR" + script/bootstrap + echo "%%%END FOLD%%%" else - echo -e "\nBypass Bootstrap" + echo -e "\nโฉ ${BLUE}Skipping Bootstrap${OFF}" fi -bundle exec rspec spec/unit && rspec_exit=$? || rspec_exit=$? +# Run Rubocop +if [[ -z $no_linter ]]; then + echo -e "\n๐Ÿค– ${BLUE}Running Rubocop: $(date "+%H:%M:%S")${OFF}\n" + bundle exec bin/rubocop +else + echo -e "\nโฉ ${BLUE}Skipping Rubocop${OFF}" +fi + +# run tests +echo -e "\n๐Ÿงช ${BLUE}Running tests: $(date "+%H:%M:%S")${OFF}\n" +cd "$(dirname $0)/.." -cat "$DIR/coverage/coverage.txt" -grep -q "You're all set, friend" "$DIR/coverage/coverage.txt" && cov_exit=0 || cov_exit=1 +bundle exec bin/rspec spec/unit && rspec_exit=$? || rspec_exit=$? + +total_coverage=$(cat "$DIR/coverage/total-coverage.txt") + +if grep -q "100.0" "$DIR/coverage/total-coverage.txt"; then + cov_exit=0 + echo -e "\nโœ… Total Coverage: ${GREEN}$total_coverage${OFF}" +else + cov_exit=1 + echo -e "\nโŒ Total Coverage: ${RED}$total_coverage${OFF}" +fi echo "" echo "---------------------------------------" -echo "Summary Results" +echo "๐Ÿ“Š Summary Results" echo "---------------------------------------" echo "" -echo "rspec: exitcode=${rspec_exit}" -echo "coverage: exitcode=${cov_exit}" + +if [[ $rspec_exit == 0 ]]; then + echo -e "โœ… ${GREEN}rspec: exitcode=${rspec_exit}${OFF}" +else + echo -e "โŒ ${RED}rspec: exitcode=${rspec_exit}${OFF}" +fi + +if [[ $cov_exit == 0 ]]; then + echo -e "โœ… \033[0;32mcoverage: exitcode=${cov_exit}\033[0m" +else + echo -e "โŒ \033[0;31mcoverage: exitcode=${cov_exit}\033[0m" +fi [ $rspec_exit -gt 0 ] && exit 1 [ $cov_exit -gt 0 ] && exit 1 + exit 0 diff --git a/spec/acceptance/Dockerfile.entitlements-gitrepo-auditor-plugin b/spec/acceptance/Dockerfile.entitlements-gitrepo-auditor-plugin index 79d43be..0cd7224 100644 --- a/spec/acceptance/Dockerfile.entitlements-gitrepo-auditor-plugin +++ b/spec/acceptance/Dockerfile.entitlements-gitrepo-auditor-plugin @@ -1,4 +1,4 @@ -FROM ruby:3.1-slim +FROM ruby:3.3-slim LABEL maintainer="GitHub Security Ops " ENV HOME /root ENV RELEASE=buster @@ -17,7 +17,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ pkg-config # Install bundler -RUN gem install bundler +RUN gem install bundler -v 2.3.19 # Bootstrap files and caching for speed COPY "vendor/cache/" "/data/entitlements/vendor/cache/" diff --git a/spec/unit/spec_helper.rb b/spec/unit/spec_helper.rb index 9eca814..b8e9179 100644 --- a/spec/unit/spec_helper.rb +++ b/spec/unit/spec_helper.rb @@ -6,10 +6,22 @@ require "simplecov" require "simplecov-erb" +COV_DIR = File.expand_path("../../coverage", File.dirname(__FILE__)) + +SimpleCov.root File.expand_path("..", File.dirname(__FILE__)) +SimpleCov.coverage_dir COV_DIR + SimpleCov.formatters = [ SimpleCov::Formatter::HTMLFormatter, SimpleCov::Formatter::ERBFormatter ] + +SimpleCov.minimum_coverage 100 + +SimpleCov.at_exit do + File.write("#{COV_DIR}/total-coverage.txt", SimpleCov.result.covered_percent) + SimpleCov.result.format! +end SimpleCov.start do # don't show specs as missing coverage for themselves add_filter "/spec/" diff --git a/vendor/cache/activesupport-7.0.7.2.gem b/vendor/cache/activesupport-7.0.7.2.gem deleted file mode 100644 index a334fb7..0000000 Binary files a/vendor/cache/activesupport-7.0.7.2.gem and /dev/null differ diff --git a/vendor/cache/activesupport-7.1.3.2.gem b/vendor/cache/activesupport-7.1.3.2.gem new file mode 100644 index 0000000..219df77 Binary files /dev/null and b/vendor/cache/activesupport-7.1.3.2.gem differ diff --git a/vendor/cache/bigdecimal-3.1.7.gem b/vendor/cache/bigdecimal-3.1.7.gem new file mode 100644 index 0000000..2d3f415 Binary files /dev/null and b/vendor/cache/bigdecimal-3.1.7.gem differ diff --git a/vendor/cache/connection_pool-2.4.1.gem b/vendor/cache/connection_pool-2.4.1.gem new file mode 100644 index 0000000..093ee0e Binary files /dev/null and b/vendor/cache/connection_pool-2.4.1.gem differ diff --git a/vendor/cache/drb-2.2.1.gem b/vendor/cache/drb-2.2.1.gem new file mode 100644 index 0000000..3653844 Binary files /dev/null and b/vendor/cache/drb-2.2.1.gem differ diff --git a/vendor/cache/entitlements-app-0.3.0.gem b/vendor/cache/entitlements-app-0.3.0.gem deleted file mode 100644 index 38a0da2..0000000 Binary files a/vendor/cache/entitlements-app-0.3.0.gem and /dev/null differ diff --git a/vendor/cache/entitlements-app-0.3.1.gem b/vendor/cache/entitlements-app-0.3.1.gem new file mode 100644 index 0000000..c59b98c Binary files /dev/null and b/vendor/cache/entitlements-app-0.3.1.gem differ diff --git a/vendor/cache/faraday-2.7.11.gem b/vendor/cache/faraday-2.7.11.gem deleted file mode 100644 index 2b9a69c..0000000 Binary files a/vendor/cache/faraday-2.7.11.gem and /dev/null differ diff --git a/vendor/cache/faraday-2.9.0.gem b/vendor/cache/faraday-2.9.0.gem new file mode 100644 index 0000000..101f508 Binary files /dev/null and b/vendor/cache/faraday-2.9.0.gem differ diff --git a/vendor/cache/faraday-net_http-3.0.2.gem b/vendor/cache/faraday-net_http-3.0.2.gem deleted file mode 100644 index f6b5175..0000000 Binary files a/vendor/cache/faraday-net_http-3.0.2.gem and /dev/null differ diff --git a/vendor/cache/faraday-net_http-3.1.0.gem b/vendor/cache/faraday-net_http-3.1.0.gem new file mode 100644 index 0000000..5719f4b Binary files /dev/null and b/vendor/cache/faraday-net_http-3.1.0.gem differ diff --git a/vendor/cache/i18n-1.14.1.gem b/vendor/cache/i18n-1.14.1.gem deleted file mode 100644 index 27d6d5d..0000000 Binary files a/vendor/cache/i18n-1.14.1.gem and /dev/null differ diff --git a/vendor/cache/i18n-1.14.4.gem b/vendor/cache/i18n-1.14.4.gem new file mode 100644 index 0000000..5dc8323 Binary files /dev/null and b/vendor/cache/i18n-1.14.4.gem differ diff --git a/vendor/cache/language_server-protocol-3.17.0.3.gem b/vendor/cache/language_server-protocol-3.17.0.3.gem new file mode 100644 index 0000000..c70b95a Binary files /dev/null and b/vendor/cache/language_server-protocol-3.17.0.3.gem differ diff --git a/vendor/cache/minitest-5.19.0.gem b/vendor/cache/minitest-5.19.0.gem deleted file mode 100644 index 2b14e41..0000000 Binary files a/vendor/cache/minitest-5.19.0.gem and /dev/null differ diff --git a/vendor/cache/minitest-5.22.3.gem b/vendor/cache/minitest-5.22.3.gem new file mode 100644 index 0000000..033e2e1 Binary files /dev/null and b/vendor/cache/minitest-5.22.3.gem differ diff --git a/vendor/cache/mutex_m-0.2.0.gem b/vendor/cache/mutex_m-0.2.0.gem new file mode 100644 index 0000000..197865b Binary files /dev/null and b/vendor/cache/mutex_m-0.2.0.gem differ diff --git a/vendor/cache/net-http-0.4.1.gem b/vendor/cache/net-http-0.4.1.gem new file mode 100644 index 0000000..90a5a59 Binary files /dev/null and b/vendor/cache/net-http-0.4.1.gem differ diff --git a/vendor/cache/net-ldap-0.18.0.gem b/vendor/cache/net-ldap-0.18.0.gem deleted file mode 100644 index 6b5326f..0000000 Binary files a/vendor/cache/net-ldap-0.18.0.gem and /dev/null differ diff --git a/vendor/cache/net-ldap-0.19.0.gem b/vendor/cache/net-ldap-0.19.0.gem new file mode 100644 index 0000000..563ac71 Binary files /dev/null and b/vendor/cache/net-ldap-0.19.0.gem differ diff --git a/vendor/cache/parallel-1.23.0.gem b/vendor/cache/parallel-1.23.0.gem deleted file mode 100644 index 8b23caa..0000000 Binary files a/vendor/cache/parallel-1.23.0.gem and /dev/null differ diff --git a/vendor/cache/parallel-1.24.0.gem b/vendor/cache/parallel-1.24.0.gem new file mode 100644 index 0000000..f2b99ea Binary files /dev/null and b/vendor/cache/parallel-1.24.0.gem differ diff --git a/vendor/cache/parser-3.2.2.3.gem b/vendor/cache/parser-3.2.2.3.gem deleted file mode 100644 index 4ef12e9..0000000 Binary files a/vendor/cache/parser-3.2.2.3.gem and /dev/null differ diff --git a/vendor/cache/parser-3.3.0.5.gem b/vendor/cache/parser-3.3.0.5.gem new file mode 100644 index 0000000..ae80d72 Binary files /dev/null and b/vendor/cache/parser-3.3.0.5.gem differ diff --git a/vendor/cache/racc-1.7.1.gem b/vendor/cache/racc-1.7.1.gem deleted file mode 100644 index c255295..0000000 Binary files a/vendor/cache/racc-1.7.1.gem and /dev/null differ diff --git a/vendor/cache/racc-1.7.3.gem b/vendor/cache/racc-1.7.3.gem new file mode 100644 index 0000000..077ab2e Binary files /dev/null and b/vendor/cache/racc-1.7.3.gem differ diff --git a/vendor/cache/rack-3.0.10.gem b/vendor/cache/rack-3.0.10.gem new file mode 100644 index 0000000..2290c55 Binary files /dev/null and b/vendor/cache/rack-3.0.10.gem differ diff --git a/vendor/cache/rack-3.0.8.gem b/vendor/cache/rack-3.0.8.gem deleted file mode 100644 index 4edcbc6..0000000 Binary files a/vendor/cache/rack-3.0.8.gem and /dev/null differ diff --git a/vendor/cache/regexp_parser-2.8.1.gem b/vendor/cache/regexp_parser-2.8.1.gem deleted file mode 100644 index 58c023a..0000000 Binary files a/vendor/cache/regexp_parser-2.8.1.gem and /dev/null differ diff --git a/vendor/cache/regexp_parser-2.9.0.gem b/vendor/cache/regexp_parser-2.9.0.gem new file mode 100644 index 0000000..ecd5c57 Binary files /dev/null and b/vendor/cache/regexp_parser-2.9.0.gem differ diff --git a/vendor/cache/rubocop-1.29.1.gem b/vendor/cache/rubocop-1.29.1.gem deleted file mode 100644 index a76ade0..0000000 Binary files a/vendor/cache/rubocop-1.29.1.gem and /dev/null differ diff --git a/vendor/cache/rubocop-1.62.1.gem b/vendor/cache/rubocop-1.62.1.gem new file mode 100644 index 0000000..46e28f2 Binary files /dev/null and b/vendor/cache/rubocop-1.62.1.gem differ diff --git a/vendor/cache/rubocop-ast-1.29.0.gem b/vendor/cache/rubocop-ast-1.29.0.gem deleted file mode 100644 index 0c5b37d..0000000 Binary files a/vendor/cache/rubocop-ast-1.29.0.gem and /dev/null differ diff --git a/vendor/cache/rubocop-ast-1.31.2.gem b/vendor/cache/rubocop-ast-1.31.2.gem new file mode 100644 index 0000000..e40e202 Binary files /dev/null and b/vendor/cache/rubocop-ast-1.31.2.gem differ diff --git a/vendor/cache/rubocop-github-0.17.0.gem b/vendor/cache/rubocop-github-0.17.0.gem deleted file mode 100644 index 8b54a32..0000000 Binary files a/vendor/cache/rubocop-github-0.17.0.gem and /dev/null differ diff --git a/vendor/cache/rubocop-github-0.20.0.gem b/vendor/cache/rubocop-github-0.20.0.gem new file mode 100644 index 0000000..eddea29 Binary files /dev/null and b/vendor/cache/rubocop-github-0.20.0.gem differ diff --git a/vendor/cache/rubocop-performance-1.13.3.gem b/vendor/cache/rubocop-performance-1.13.3.gem deleted file mode 100644 index 17ca043..0000000 Binary files a/vendor/cache/rubocop-performance-1.13.3.gem and /dev/null differ diff --git a/vendor/cache/rubocop-performance-1.20.2.gem b/vendor/cache/rubocop-performance-1.20.2.gem new file mode 100644 index 0000000..1cb9cae Binary files /dev/null and b/vendor/cache/rubocop-performance-1.20.2.gem differ diff --git a/vendor/cache/rubocop-rails-2.15.2.gem b/vendor/cache/rubocop-rails-2.15.2.gem deleted file mode 100644 index 48018f5..0000000 Binary files a/vendor/cache/rubocop-rails-2.15.2.gem and /dev/null differ diff --git a/vendor/cache/rubocop-rails-2.24.1.gem b/vendor/cache/rubocop-rails-2.24.1.gem new file mode 100644 index 0000000..7706a0b Binary files /dev/null and b/vendor/cache/rubocop-rails-2.24.1.gem differ diff --git a/vendor/cache/ruby2_keywords-0.0.5.gem b/vendor/cache/ruby2_keywords-0.0.5.gem deleted file mode 100644 index d311c5d..0000000 Binary files a/vendor/cache/ruby2_keywords-0.0.5.gem and /dev/null differ diff --git a/vendor/cache/rugged-0.27.5.gem b/vendor/cache/rugged-0.27.5.gem deleted file mode 100644 index 79bb2ef..0000000 Binary files a/vendor/cache/rugged-0.27.5.gem and /dev/null differ diff --git a/vendor/cache/rugged-1.7.2.gem b/vendor/cache/rugged-1.7.2.gem new file mode 100644 index 0000000..5e4af1b Binary files /dev/null and b/vendor/cache/rugged-1.7.2.gem differ diff --git a/vendor/cache/unicode-display_width-2.4.2.gem b/vendor/cache/unicode-display_width-2.4.2.gem deleted file mode 100644 index 4402c5d..0000000 Binary files a/vendor/cache/unicode-display_width-2.4.2.gem and /dev/null differ diff --git a/vendor/cache/unicode-display_width-2.5.0.gem b/vendor/cache/unicode-display_width-2.5.0.gem new file mode 100644 index 0000000..7f3e24b Binary files /dev/null and b/vendor/cache/unicode-display_width-2.5.0.gem differ diff --git a/vendor/cache/uri-0.13.0.gem b/vendor/cache/uri-0.13.0.gem new file mode 100644 index 0000000..511d128 Binary files /dev/null and b/vendor/cache/uri-0.13.0.gem differ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy