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