0.0
The project is in a healthy, maintained state
ronin-repos provides a repository system for installing, managing, and accessing third-party git repositories, which can contain code or other data.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.0

Runtime

 Project Readme

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:
    help
    install
    list, ls
    new
    purge
    remove, rm
    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. bundle install
  5. git checkout -b my_feature
  6. Code It!
  7. bundle exec rake spec
  8. git push origin my_feature

License

Copyright (c) 2021-2023 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/.