# Gitano -- Git with Augmented Network Operation

## Website

Gitano has a website at https://www.gitano.org.uk/ and a cgit instance at
https://git.gitano.org.uk/ -- Enjoy them.

In addition, further documentation and examples can be found on the Gitano
wiki at https://wiki.gitano.org.uk/

## Development is tracked on a Kanban board

Gitano's development is tracked on a Kanban board which can be found linked
from the sidebar of https://www.gitano.org.uk/

## Dependencies

Gitano depends on [lua-scrypt], [Luxio], [Lace], [Supple], [Gall], [Clod], and
[Tongue].

[lua-scrypt]: https://www.gitano.org.uk/lua-scrypt/
[Luxio]: https://www.gitano.org.uk/luxio/
[Lace]: https://www.gitano.org.uk/lace/
[Supple]: https://www.gitano.org.uk/supple/
[Clod]: https://www.gitano.org.uk/clod/
[Gall]: https://www.gitano.org.uk/gall/
[Tongue]: https://www.gitano.org.uk/tongue/

In addition, Gitano depends on the Lua PCRE package lrexlib which can typically
be found in lua-rex-pcre or liblua5.1-rex-pcre0 in Debian or Ubuntu.

If you wish to use the http access capability in post-recive hooks then you
will need to ensure cURL is installed and the `curl` binary itself is present
on your PATH.

If you wish to use password authentication
then the `htpasswd` binary must be present in your PATH.
In debian this is provided by `apache2-utils`.

If you wish to build the manual then you will need pandoc and the recommended
latex/other packages for pandoc to make PDFs and HTML.

## Contributing to Gitano

Gitano development is tracked on the `gitano-dev@gitano.org.uk` mailing-list

If you wish to suggest changes, offer patches, report bugs, or simply ask
how to do something with Gitano, then please join the list and ask there.

There may be more appropriate avenues of discussion or assistance made
available after this document was written, in which case you will find them
linked from the Gitano website or wiki.

Specific instructions on how to format patches for submission to Gitano or
any of its sub-projects, can be found on the Gitano wiki.

## Stability guarantees

* **Rulesets**: During the v1.x series of releases, Gitano rulesets will
continue to work and while additional variables or predicates may be added,
nothing will be removed or renamed entirely unless failing to do so would
constitute a security risk.  This guarantee is not provided for a move from
v1.x to v2.x.  or from any v1.n to v.(n-1).
* **Commands**: The command interface of Gitano is meant for humans to interact
with, and there is no stability of the command interface defined for the v1.x
series of Gitano.
* **Hooks**: The interface between Gitano and hooks is guaranteed to only
increase in functionality through the v1.x series unless failing to remove or
incompatibly alter functionality would constitute a security risk.
* **Plugins**: The plugin interface is considered entirely unstable at this
time and there is no guarantee that the current interfaces will remain stable
through the v1.x series.  Any rules, commands, hooks, etc, defined in published
plugins distributed with Gitano will be subject to the same constraints as
stated above.
* **Lua API**: The API of the Gitano Lua modules is an internal implementation
detail for the purposes of the v1.x series and should not be relied upon to
remain stable between any two releases in the series.
