Gitweb plugin for YOURLS ======================== This plugin can be used to automatically redirect to a Gitweb installation, if the provided keyword is not found in the database. For example, imagine a user opening this URL: http://sho.rt/3f14d8fa And further imagine that “3f14d8fa” is not a short URL stored in the database. This plugin will intercept the “redirect_keyword_not_found” action and check if the keyword is a hexadecimal number with at least six (hexadecimal) digits. If so, the plugin will iterate over all Git repositories in a base directory and check if there's an object in one of them which matches the given id. If such an object is found, the user will be redirected to the appropriate Gitweb page. Otherwise, YOURLS will proceed as usual. Installation ------------ First, you need at least YOURLS, version 1.5. Versions before that do not provide a plugin infrastructure. * Copy the plugin to “$yourls_dir/user/plugins/”. To check out the Git repository change into this directory and run: $ git clone git://git.verplant.org/yourls-gitweb.git gitweb * Open the administrative interface in the web-browser of your choice. * Open the “Plugins” page and search for the “Gitweb” plugin in the table. * Click “Activate” in the rightmost “Action” column. * A new bulletin “Gitweb” should appear below the link to the “Plugins” page. * Go to the “Gitweb” page. * Insert the base directory and the Gitweb URL. The base directory should be the same directory you specified using “$projectroot” in your Gitweb configuration. You can pass any valid Gitweb URL into the second box – superfluous arguments are automatically stripped. * Click “Update” to store your changes. Caveats ------- The plugin executes the “git” command line utility to check for objects in the configured Git repositories. Great care has been taken that every argument passed to the shell has been sanitized, but you may experience problems if PHP's “safe mode” is activated. The commands used are: * git rev-parse Check existence of an object and determine it's complete object id. * git cat-file Determine an object's type. License ------- The “Gitweb” plugin is distributed under the terms of the MIT license. The complete licensing terms can be found at the beginning of the file “plugin.php”. Author ------ Florian “octo” Forster