1

I'm not sure if this topic belongs here, to SO, or nowhere on the SE network, because I couldn't find anyone with the same requirement, so here goes:

Goal

To create a platform where me and my clients can share code projects we've developed and collaborate on them, under a single "umbrella" of my organization.

(Said projects are usually extensions to my software, which clients are willing to share with me and with other clients happily)

Why?

Currently, each of my clients that develops said projects stores them wherever they feel like - their own Github account, Google Drive, etc. That means they're harder to collaborate on, and impossible to find. I would like them to be able to host their code on a service/platform I provide, so that other clients can easily see all the projects that have been created with relation to my company/product.

What am I looking for?

I'm looking for a git-based source control solution, either self-hosted or cloud-based, that would allow the following abilities:

  1. Create some sort of segregation for my organization (if it's cloud, that is) as I need the ability to group all repositories that are associated to my organization and give users the ability to browse them. Doesn't apply for self-hosted solutions.
  2. Manage users, where some would be from my organization (employees) and would get certain privileges, but the majority would be external collaborators (customers)
  3. External collaborators must be able to create repositories associated with my organization
  4. Being able to create private repositories would be nice to have, not strictly required though
  5. Should either be free, or have a fixed price regardless of how many users I have (not including hardware costs, of course) - mostly due to said external collaborators
  6. Nice to have would be some SSO model to integrate with the identities of these external collaborators I have in other systems
  7. Have a decent web UI with authentication, pull request, code highlighting, forks and all the other features we've come to expect. Crucial abilities are:
    1. Support both SSH and HTTPS
    2. Syntax highlighting when viewing code files
    3. Graphical display of the branches and commits
    4. Readme.md rendering as each repo's landing page
    5. Branches, tags, forks
    6. Ability to download a repo (specific tag/branch) as zip
    7. Some basic ability to open and manage issues for each repo

What I've tried so far:

  • I've looked at GitHub's organizations but as far as I could tell, while external collaborators can be added to the org's repos, they can't open their own repos in the org
  • GitLab allows private repos and inviting members, but has no organizations feature I could find
  • Both of the above have paid options but charge per user, and the prices are too steep for the purpose this will serve
  • Some open source solutions that I can host myself exist (such as "GitBucket") but besides the maintenance and hardware costs, I'm not sure they are stable and well built enough for a "production" environment.

Any tips and pointers would be much appreciated.

  • do you want to be able to attach one tag to a certain revision, or perhaps multiple tags to a certain issue, the way github does it? these are distinct things – AnonymousLurker Dec 11 '18 at 20:46
  • I haven't thought about it, but I lean towards multiple tags per revision. A potential use case for that would be tagging versions of the extension to reflect their compatibility with the main product's versions, in which case one revision might fit multiple version, requiring multiple tags. Not sure about that yet. Thanks! – motig88 Dec 12 '18 at 18:10
1

If you are not against self-hosting, Gogs can be a nice option I think, everything will be stored at your "home" so no organization or accounts management problems. It manage SSH and HTTPS, private and public repos, groups, is free and open source, The UI is pleasent.

I've been using it for one year now and never had any issues with it until now, plus the installation, maintenance and updates are easy and it just need Go to be able to run coupled with apache as a reverse proxy.

  • Gogs has a UI very similar to Github, so it should be familiar to anyone who has worked with Github. – user9811991 Dec 11 '18 at 16:26
  • also, some prefer the Gitea fork of Gogs – AnonymousLurker Dec 11 '18 at 20:48
  • Thanks for the suggestion - I actually looked at Gogs myself before posting this, but having someone else suggest it is a boost of confidence. I'm a little concerned with hosting Gogs specifically as it's built on a technology stack I'm not familiar with, but I doubt I'll find a nodejs-based alternative ;) This might end up as my solution. – motig88 Dec 12 '18 at 18:01
0

Have you looked at Bitbucket? Here you can create teams, team groups and manage team repositories.

The graphic representation of the branch is however rather a table. Except for that, I think the tool should meet all your requirements: https://bitbucket.org

Edit: Sorry, I missed the "unlimited user" in your headline. There is a user limit for the free accounts!

  • 1
    Bitbucket, owned by Atlassian, Australia based, affected by the most draconic anti-encryption bill that got passed recently. I suppose for a certain share of people this is a total show stopper – AnonymousLurker Dec 11 '18 at 20:49
  • @AnonymousLurker This is new to me! I think I'm also looking for an alternative. Thanks for the info! – Markus Dec 11 '18 at 20:57
  • I've actually moved away from Bitbucket (for my internal use-cases) for various reasons I won't go into here, but the news about Australia's A&A law is new to me, and disturbing. – motig88 Dec 12 '18 at 18:08

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.