# Gold Sponsors

![collabnet-logo](images/collabnet.png)

[CollabNet](http://www.collab.net)

CollabNet is the leading partner for Secure DevOps of Enterprise and
Federal Applications. Increase the speed and quality of software
development and operations with CollabNet’s connected solutions.

![gerritforge-logo](images/gerritforge.png)

[GerritForge](http://www.gerritforge.com)

GerritForge is one of the main contributors of Gerrit Code Review
and provides LDAP integration, Single-Sign-On, Role-Based Access
Control, Lifecycle Integration with a Enterprise-grade Support 24x7
for medium and large installations.

GerritForge provides [GerritHub.io](http://gerrithub.io), an open Gerrit server
to perform code reviews on top of GitHub repositories.

## Silver Sponsors

![skillsmatter-logo](images/skillsmatter.png)

[SkillsMatter](http://skillsmatter.com)

Skills Matter was founded to help drive innovation in software
engineering by bringing smart and creative developers together to
learn and share new skills, discover emerging technologies and evolve
practices and ideas.

### Would you like to contribute?

If you would like to sponsor the event, please get in touch with
[GerritForge](http://www.gerritforge.com/contact) to become part
of the Gerrit Community Event of this year.



