This is about collaboration and sharing. Automation is the first step. Gitlab consists of Git plus a Web Server.
This was first launched in July - available for the entire campus. Only about 40 people signed up. Now, we're ready for a larger group.
One can store anything one wishes, not just code. One can also use the console as well as the command line.
We want to have this campus-wide because we have a problem (campus-wide) with isolate team solutions - people are re-inventing the same solutions multiple times. We've used isolated team solutions up to this point. We need a "bigger" collaboration.
With GitLab, we have most of what we want. We have source version control, team collaboration, issue tracking, SSO, Project Access Control and Continuous Integration.
The life cycle is development --> push to code repository --> Continuous Integration --> Deployment. We don't offer any support for Continuous Integration (CI). Teams that are using GitLab have to do that themselves.
The Load balancer is AWS ELB, the Application Server are Docker containers on EC2 CoreOS cluster, the File Server is AWS EFS, and the Redistribution is AWS ElistiCache and the SQL is run through AWS RDS. The data is backed up to S3 bucket.
There are three levels of project visibility - private, Shared (internal to Stanford only), and Open (we've disabled that one at system level. If group has
public level visibility, although you can mix public private, and internal projects in the group, the group membership is visible to public). There are plenty use case that people want to have public project. We are consider to allow public visibility available.
The only way that anyone gains access is if the Project manager invites that person.
It has grown to over 200 users and over 500 projects.
One can check this out through https://code.stanford.edu Of note, any user's e-mail must be visible to all of Stanford (not private, but open to all of Stanford) in order to login. If the e-mail is private, the user will get a "422" error
Bitbucket repositories can be easily imported into GitLab. Also, GitLab can be easily made into a remote Git repository, but adding an automatic sync is not easy.
Xueshan's contact information is sfeng@stanford.edu
P.S. As of 12/10/2016, public visibility is no longer restricted. You can create public group and public projects now.

