Our First activeCollab Module for Better Git Support

activecollab gitolite moduleToday, for the first time in rtCamp’s more than 3 years journey, we are releasing something NOT related to WordPress! An activeCollab module. 🙂

We have been using activeCollab for project-management and collaboration since day-6. We moved to rtCamp’s first formal office on Aug 25, 2009 and purchased activeCollab license on Sep 1, 2009.

Unlike most premium apps which comes with encrypted/obfuscated source codes, activeCollab come with a very clean, well structured and nicely documented source code.

We were playing with its codebase from long time but when activeCollab 3 released, with limited git support, we decided to create a complete module to enhance activeCollab’s git-support.

So here it is!

activeCollab-Gitolite Module

It adds the following new feature to activeCollab:

  1. Create new git repository directly from projects’ source tab.
  2. Manage user-access level for every repository i.e. no-access, read-only, commit-access.
  3. Team-members can manage multiple public keys from their profile.

It uses Gitolite for git-hosting. Our module comes bundled with Gitolite installation script. Gitolite is used by kernel.org to control git-access to Linux’s source code. So you can definitely count on it! 😉

Demo:

You can check-out a live demo here.

Screenshots:

Credits:

This release has been possible due to the hard-work of Kasim Badami and Mitesh Shah. Product itself is polished by Saurabh Shukla and its store-page-cum-documentation is improved by Akshat Oswal.

Thanks Ilija for allowing us to create an online demo setup of activeCollab. I thought  creating the demo might involve some paperwork but it was as simple as dropping an email and getting a warm reply with permission and good wishes. We also thank Nirav Mehta from Apps Magnet for sharing his success-story which inspired many people including us. 🙂

Link: activeCollab Gitolite Module

10 responses to “Our First activeCollab Module for Better Git Support”

  1. Great to see you released a Git module for ActiveCollab. I been waiting for this for a long time. Does this module support Git repos on third party hosting such as GitHub or BitBucket? Or does the Git repo have to be hosted on the same server?

    • @Steven

      As of you it works with Gitolite only hosted on same server.
      There is no feature to clone repos from GitHub or BitBucket but we are working on that. Hopefully, it will be added by month end.

      • If you’re really working on Bitbucket support, please keep me posted when that becomes available 🙂

        Great work!

        • @Thomas

          We will not add support for BitBucket explicitly.

          Rather we have added a new option to clone remote repos from any private/public server.

          Creating new repo will be still limited to Gitolite server for now as we use that only.

  2. Hi Rahul,

    any plans to support GitLab, and not only Gitolite? GitLab has removed Gitolite from the Last Version.

    Best
    Mucky

    • GitLab and Gitolite are completely different things. I am not sure how you are comparing or how you are expecting us to do activeCollab + GitLab integration.

      I am following GitLab project from long time and I am aware that they have replaced Gitolite with their own GitLab-Shell.

      If you are expecting us to move to GitLab-shell from Gitolite, then sorry to say but that is not on list.

      You can already clone and sync repos from GitHub, GitLab, BitBucket or any git-hosting which works with SSH-keys in current activeCollab-Gitolite version.

      Please let us know if you are looking for anything specific.

  3. it would be great if you aren’t able to support it directly to support it via symlink if on the same server

    eg it would be great to “clone” gitlab repo’s when on the same server by symlinking to the git repo – appreciate theres a whole lot of stuff about permissions that has to be handled (or make sure gitlab and activecollab run as same user)

    i suspect this would be useful not just for gitlab users but users of any other git self hosting solution that might be in use locally on an activecollab server and save space

    • Sorry but I couldn’t understand the problem and the purpose.

      AC-Gitolite module needs its own copy of Gitolite. Like Gitlab needs its own copy of Gitlab-shell (they earlier used to need their own copy of Gitolite).

      Mixing is not possible and recommended because of permission-issue. Also it could lead to unsecure environment.

      We use Gitlab heavily for our products. Git part in AC is used for client projects where time-tracking, invoicing and other AC features are needed.

      Git being distributed system, allows you to have multiple remote end-points for a working copy. You can do git push to multiple destinations.

      If whole purpose of getting into complication is saving disk space, git repos don’t eat up much disk space for that matter.

      If its integration with other system, then you can use AC-Gitolite to create read-only clone’s of git repo from any system. It will be synced automatically.

      If you want to do read/write via AC and elsewhere, you can create similar repos and use multiple upstreams as I explained in above paragraph.

      Useful references: 1. http://stackoverflow.com/questions/165092/can-i-push-to-more-than-one-repository-in-a-single-command-in-git 2. http://stackoverflow.com/a/849960/156336

      Please let us know if there is any other questions or you need any more details.

      Thanks.

      • git repo’s can take huge amounts of space if you are dealing with a lot of large changesets and/or large files but i see your point, its just a nice to have so that you dont have to do a manual config step within git to push to multiple remotes

        • If large files means binary files, git is never designed to work with binary files.

          Manul config is better and recommended way. In current state also we get many support requests becuase of permission issues. We already have to deal with web-server user, php-user, shell-user.

          But if any other system wish to use existing gitolite, then we don’t any problem as long as those system do not change gitolite config in undesired way.

          In long feature, we have plans to evaluate gitlab-shell. If gitlab-shell turn out to be more flexible that gitolite, better degree of freedom will be possible. 🙂