O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

GitBucket: Git Centric Software Development Platform by Scala

3.924 visualizações

Publicada em

at Scala eXchange 2017

Publicada em: Software
  • Seja o primeiro a comentar

GitBucket: Git Centric Software Development Platform by Scala

  1. 1. GitBucket Git Centric Software Development Platform by Scala Naoki Takezoe @takezoen BizReach, Inc
  2. 2. What's GitBucket? ● Open source Git server ○ https://github.com/gitbucket/gitbucket ● Setup is super easy $ java -jar gitbucket.war
  3. 3. Motivation ● Security policy in my previous company ● GitHub Enterprise was too expensive ● GitLab installation was too complex ● I must make it by myself! ● with Scala!!
  4. 4. Repository viewer
  5. 5. Issues
  6. 6. Pull requests
  7. 7. Features ● Public and private repository hosting ● Dashboard includes activity timeline ● Repository viewer which supports online file editing ● Markdown available Wiki ● Issues and pull requests ● Comment on source code ● Notification via E-mail ● User and group management ● LDAP integration ● Gravator integration ● GitHub compatible Web API ● Plugin system ● External database support (MySQL and PostgreSQL)
  8. 8. Current status (Dec 2017) ● 6727 stars ● 124 contributors ● 473 gitter users ● 72 releases (Monthly release since 2013)
  9. 9. Some of existing GitBucket plugins Name Description Gist plugin Add code snippet Gist-like functionality to GitBucket Asciidoc plugin Add AsciiDoc support to GitBucket Bugspots plugin Apply Google Bugspots to code in GitBucket repositories Pages plugin Publish repository contents as web sites Network plugin Add the commit graph view to GitBucket Emoji plugin Emoji support in Wiki or Issues RST plugin Add ReStructuredText support to GitBucket Explorer plugin Add the tree view for repositories on GitBucket PlantUML plugin Render PlantUML files on GitBucket Jupyter plugin Render Jupyter or IPython files on GitBucket CI Plugin Add simple CI/CD functionality to GitBucket Maven repository plugin Host in-house maven repositories on GitBucket
  10. 10. Demo site is available on Heroku! http://gitbucket.herokuapp.com/
  11. 11. Technology stack Git Repository RDBMS (H2 / MySQL / PostgreSQL) JGit Slick (blocking-slick) Apache MINA SSHD Jetty GitServlet (JGit) Scalatra / Twirl Git Client Web Browser SSH HTTP
  12. 12. Core technologies are Java ● Jetty ○ Embedded to make an executable war file ● H2 ○ Embedded as the default database ● JGit ○ Used for Git operations ● Apache MINA SSHD ○ Embedded to provide SSH git access
  13. 13. Why GitBucket use Scalatra? ● Scalatra is based on traditional Servlet ○ Not so high performance ○ Not super scalable ● Why not use Play? or Finagle? ○ Because to use JGitServlet (HTTP git server) ○ Scalatra can integrate existing Servlet based resources naturally
  14. 14. Technology stack (Java parts) Git Repository RDBMS (H2 / MySQL / PostgreSQL) JGit Slick (blocking-slick) Apache MINA SSHD Jetty GitServlet (JGit) Scalatra / Twirl Git Client Web Browser SSH HTTP
  15. 15. Key is interoperability with Scala and Java ● Getting benefits from fundamental Java libraries or middlewares ● Servlet based frameworks (e.g. Scalatra) makes possible to use existing Servlet based resources with Scala
  16. 16. Try GitBucket!

×