ronin-repos

CI Code Climate Gem Version

Description

ronin-repos provides a repository system for installing, managing, and accessing third-party git repositories, that can contain additional Ruby code or other data.

Third-party git repositories can be used to extend parts of Ronin. Other Ronin libraries can then list and load additional third-party Ruby classes from specific directories within the installed third-party repos:

tl;dr ronin-repos is essentially a decentralized plugin system for Ronin using git repos.

ronin-repos is part of the ronin-rb project, a toolkit for security research and development.

Features

  • Supports installing any Git repository.
  • Manages installed repositories.
  • Has 85% documentation coverage.
  • Has 100% test coverage.

Synopsis

Usage: ronin-repos [options] [COMMAND [ARGS...]]

Options:
    -h, --help                       Print help information

Arguments:
    [COMMAND]                        The command name to run
    [ARGS ...]                       Additional arguments for the command

Commands:
    completion
    help
    install
    list, ls
    new
    purge
    remove, rm
    show, info
    update, up

Install a repository:

$ ronin-repos install https://github.com/...

List installed Repositories:

$ ronin-repos ls

Update all installed Repositories:

$ ronin-repos update

Update a specific Repositories:

$ ronin-repos update NAME

Uninstall a specific Repositories:

$ ronin-repos rm repo-name

Delete all repositories:

$ ronin-repos purge

Generate your own repo:

$ ronin-repos new my-repo
$ git remote add origin git@github.com:user/my-repo.git
$ git push -u origin main

Examples

require 'ronin/repos'

Ronin::Repos.find_file('wordlists/wordlist.txt')
# => "/home/user/.cache/ronin-repos/foo-repo/wordlists/wordlist.txt"

Rnnin::Repos.glob("wordlists/*.txt")
# => ["/home/user/.cache/ronin-repos/foo-repo/wordlists/cities.txt",
#     "/home/user/.cache/ronin-repos/foo-repo/wordlists/states.txt",
#     "/home/user/.cache/ronin-repos/bar-repo/wordlists/bands.txt",
#     "/home/user/.cache/ronin-repos/bar-repo/wordlists/beers.txt"]

Requirements

Install

$ gem install ronin-repos

Gemfile

gem 'ronin-repos', '~> 0.1'

Development

  1. Fork It!
  2. Clone It!
  3. cd ronin-repos
  4. ./scripts/server
  5. git checkout -b my_feature
  6. Code It!
  7. bundle exec rake spec
  8. git push origin my_feature

License

Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)

ronin-repos is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ronin-repos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with ronin-repos. If not, see https://www.gnu.org/licenses/.