Giter VIP home page Giter VIP logo

gitbucket's Introduction

GitBucket Gitter chat build gitbucket Scala version support License

GitBucket is a Git web platform powered by Scala offering:

  • Easy installation
  • Intuitive UI
  • High extensibility by plugins
  • API compatibility with GitHub

GitBucket

Features

The current version of GitBucket provides many features such as:

  • Public / Private Git repositories (with http/https and ssh access)
  • GitLFS support
  • Repository viewer including an online file editor
  • Issues, Pull Requests and Wiki for repositories
  • Activity timeline and email notifications
  • Account and group management with LDAP integration
  • a Plug-in system

Installation

GitBucket requires Java 11. You have to install it, if it is not already installed.

  1. Download the latest gitbucket.war from the releases page and run it by java -jar gitbucket.war.
  2. Go to http://[hostname]:8080/ and log in with ID: root / Pass: root.

You can also deploy gitbucket.war to a servlet container which supports Servlet 3.0 (like Jetty, Tomcat, JBoss, etc). Note that GitBucket doesn't support Jakarta EE yet.

For more information about installation on Mac or Windows Server (with IIS), or configuration of Apache or Nginx and also integration with other tools or services such as Jenkins or Slack, see Wiki.

To upgrade GitBucket, replace gitbucket.war with the new version, after stopping GitBucket. All GitBucket data is stored in HOME/.gitbucket by default. So if you want to back up GitBucket's data, copy this directory to the backup location.

Plugins

GitBucket has a plug-in system that allows extra functionality. Officially the following plug-ins are provided:

You can find more plugins made by the community at GitBucket community plugins.

Building and Development

If you want to try the development version of GitBucket, or want to contribute to the project, please see the Developer's Guide. It provides instructions on building from source and on setting up an IDE for debugging. It also contains documentation of the core concepts used within the project.

Support

  • If you have any questions about GitBucket, see Wiki and check issues whether there is a same question or request in the past.
  • If you can't find same question and report, send it to our Gitter room before raising an issue.
  • The highest priority of GitBucket is the ease of installation and API compatibility with GitHub, so your feature request might be rejected if they go against those principles.

What's New in 4.40.x

4.40.0 - 22 Oct 2023

  • Configurable default branch name
  • Support custom fields of issues and pull requests in search condition
  • Create pull request from default branch of forked repositories
  • News feed shows activities of all visible repositories
  • Drop Java 8 support
  • Improve git push performance

See the change log for all of the updates.

gitbucket's People

Contributors

aadrian avatar dependabot[bot] avatar imeszaros avatar int128 avatar jtyr avatar kariyayo avatar kazuki43zoo avatar kounoike avatar lefou avatar mcfoggy avatar mrkm4ntr avatar mslinn avatar nazoking avatar nus avatar onukura avatar oohira avatar sapk avatar scala-steward avatar scala-steward-bot avatar seratch avatar shiena avatar shimamoto avatar sikebe avatar silentspud avatar t-tsutsumi avatar takezoe avatar tanacasino avatar tkgdsg avatar uli-heller avatar xuwei-k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitbucket's Issues

Redirects to wrong url when create a new wiki page

When I create a new wiki page, gitbucket show me a blank page because it redirects to wrong url http://[host]:18080/[user]/[repo]/wiki/NewPage
instead of http://[host]:18080/gitbucket/[user]/[repo]/wiki/NewPage.

Environment: Tomcat7 on Amazon Linux. Deployed on http://[host]:18080/gitbucket/

Multi-byte label support

Usually English is enough for issue label name but it would be better if we can create multi-byte label.

Can't push from Eclipse (EGit)

GitBucket returns 401 only for /git-receive-pack. But EGit send authentication information at only the first GET request to /info/refs.

So in the next POST request to /git-receive-pack, EGit receives 401, And it's reported as error to users.

Website and screenshots?

Please add a "website" (Github has support for it, and it's better than the Wiki pages) and most important: some screenshots :).

Git 1.8 not available

Git 1.7 is OK. But 1.8 is maybe not available.

Result

$ /usr/local/bin/git --version
git version 1.8.3.2
$ /usr/local/bin/git clone http://<mydomain>/gitbucket/git/testuser/test.git
Cloning into 'test'...
fatal: http://<mydomain>/gitbucket/git/testuser/test.git/info/refs not valid: is this a git repository?

I' m wondering this is jgit problem, but I don't have enough information about it.

Please state that gitbucket users have to do use Git 1.7 in README.md.

Match committer to username by email address

If gitbucket's Account(cf. USER_NAME in ACCOUNT table) was different from Committer(cf. git config user.name), "Not Found" is displayed when click link to commiter name on commit message.

I think that to match committer to username by email address is one of solution.

Two or more users cannot add as Collaborators

When I add collaborators, 1st user can be added, but 2nd user can not be added.

The following is a stack trace.

SEVERE: Servlet.service() for servlet [default] in context with path [/gitbucket] threw exception [フィルタの実行により例外を投げました] with root cause
org.h2.jdbc.JdbcSQLException: ユニークインデックス、またはプライマリキー違反: "PRIMARY_KEY_F ON PUBLIC.COLLABORATOR(USER_NAME, REPOSITORY_NAME)"
Unique index or primary key violation: "PRIMARY_KEY_F ON PUBLIC.COLLABORATOR(USER_NAME, REPOSITORY_NAME)"; SQL statement:
INSERT INTO "COLLABORATOR" ("USER_NAME","REPOSITORY_NAME","COLLABORATOR_NAME") VALUES (?,?,?) [23505-171]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:82)
at org.h2.index.PageBtree.find(PageBtree.java:121)
at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:147)
at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:100)
at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:102)
at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:93)
at org.h2.table.RegularTable.addRow(RegularTable.java:122)
at org.h2.command.dml.Insert.insertRows(Insert.java:124)
at org.h2.command.dml.Insert.update(Insert.java:84)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:156)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:142)
at scala.slick.driver.BasicInvokerComponent$InsertInvoker$$anonfun$insert$1.apply(BasicInvokerComponent.scala:87)
at scala.slick.driver.BasicInvokerComponent$InsertInvoker$$anonfun$insert$1.apply(BasicInvokerComponent.scala:84)
at scala.slick.session.Session$class.withPreparedStatement(Session.scala:68)
at scala.slick.session.BaseSession.withPreparedStatement(Session.scala:201)
at scala.slick.driver.BasicInvokerComponent$InsertInvoker.prepared(BasicInvokerComponent.scala:81)
at scala.slick.driver.BasicInvokerComponent$InsertInvoker.insert(BasicInvokerComponent.scala:84)
at service.RepositoryService$class.addCollaborator(RepositoryService.scala:152)
at app.SettingsController.addCollaborator(SettingsController.scala:9)
at app.SettingsControllerBase$$anonfun$8.apply(SettingsController.scala:70)
at app.SettingsControllerBase$$anonfun$8.apply(SettingsController.scala:69)
at util.OwnerAuthenticator$$anonfun$ownerOnly$1$$anonfun$apply$2.apply(Authenticator.scala:31)
at util.OwnerAuthenticator$$anonfun$ownerOnly$1$$anonfun$apply$2.apply(Authenticator.scala:31)
at util.OwnerAuthenticator$$anonfun$util$OwnerAuthenticator$$authenticate$1.apply(Authenticator.scala:38)
at util.OwnerAuthenticator$$anonfun$util$OwnerAuthenticator$$authenticate$1.apply(Authenticator.scala:36)
at scala.Option.map(Option.scala:145)
at util.OwnerAuthenticator$class.util$OwnerAuthenticator$$authenticate(Authenticator.scala:36)
at util.OwnerAuthenticator$$anonfun$ownerOnly$1.apply(Authenticator.scala:31)
at jp.sf.amateras.scalatra.forms.ClientSideValidationFormSupport$$anonfun$post$1$$anonfun$apply$2.apply(ClientSideValidationFormSupport.scala:22)
at jp.sf.amateras.scalatra.forms.package$.withValidation(package.scala:19)
at jp.sf.amateras.scalatra.forms.ClientSideValidationFormSupport$$anonfun$post$1.apply(ClientSideValidationFormSupport.scala:21)
at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$liftAction(ScalatraBase.scala:183)
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:178)
at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:178)
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175)
at app.ControllerBase.withRouteMultiParams(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.invoke(ScalatraBase.scala:177)
at app.ControllerBase.org$scalatra$json$JsonSupport$$super$invoke(ControllerBase.scala:13)
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:65)
at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:57)
at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175)
at app.ControllerBase.withRouteMultiParams(ControllerBase.scala:13)
at org.scalatra.json.JsonSupport$class.invoke(JsonSupport.scala:57)
at app.ControllerBase.invoke(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$3.apply(ScalatraBase.scala:163)
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$3.apply(ScalatraBase.scala:162)
at scala.Option.flatMap(Option.scala:170)
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:162)
at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:161)
at scala.collection.immutable.Stream.flatMap(Stream.scala:446)
at org.scalatra.ScalatraBase$class.runRoutes(ScalatraBase.scala:161)
at app.ControllerBase.runRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:114)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
at scala.Option.getOrElse(Option.scala:120)
at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
at app.ControllerBase.withResponse(ControllerBase.scala:13)
at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
at app.ControllerBase.withRequest(ControllerBase.scala:13)
at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
at app.ControllerBase.handle(ControllerBase.scala:13)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
at app.ControllerBase.doFilter(ControllerBase.scala:13)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at servlet.TransactionFilter$$anonfun$doFilter$1.apply$mcV$sp(TransactionFilter.scala:30)
at servlet.TransactionFilter$$anonfun$doFilter$1.apply(TransactionFilter.scala:28)
at servlet.TransactionFilter$$anonfun$doFilter$1.apply(TransactionFilter.scala:28)
at scala.slick.session.BaseSession.withTransaction(Session.scala:236)
at scala.slick.session.Database$$anonfun$withTransaction$2.apply(Database.scala:58)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at scala.slick.session.Database$$anonfun$withSession$1.apply(Database.scala:46)
at scala.slick.session.Database$$anonfun$withSession$1.apply(Database.scala:46)
at scala.slick.session.Database.withSession(Database.scala:38)
at scala.slick.session.Database.withSession(Database.scala:46)
at scala.slick.session.Database.withTransaction(Database.scala:58)
at servlet.TransactionFilter.doFilter(TransactionFilter.scala:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Failed to show tag tree view

I got this error when access tag tree view.

HTTP ERROR 500

Problem accessing /root/gitbucket/tree/1.0. Reason:

    Object 1f164ecf2f59190afc8d7204a221c739e707df4c is not a commit.

Caused by:

org.eclipse.jgit.errors.IncorrectObjectTypeException: Object 1f164ecf2f59190afc8d7204a221c739e707df4c is not a commit.
    at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:152)
    at org.eclipse.jgit.revwalk.RevWalk.getCachedBytes(RevWalk.java:853)
    at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:142)
    at org.eclipse.jgit.revwalk.RevWalk.markStart(RevWalk.java:276)
    at org.eclipse.jgit.api.LogCommand.add(LogCommand.java:312)
    at org.eclipse.jgit.api.LogCommand.add(LogCommand.java:172)
    at util.JGitUtil$$anonfun$getLatestCommitFromPaths$1.apply(JGitUtil.scala:353)
    at util.JGitUtil$$anonfun$getLatestCommitFromPaths$1.apply(JGitUtil.scala:352)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at util.JGitUtil$.getLatestCommitFromPaths(JGitUtil.scala:352)
    at util.JGitUtil$.getFileList(JGitUtil.scala:234)
    at app.RepositoryViewerControllerBase$$anonfun$app$RepositoryViewerControllerBase$$fileList$1$$anonfun$apply$17.apply(RepositoryViewerController.scala:214)
    at app.RepositoryViewerControllerBase$$anonfun$app$RepositoryViewerControllerBase$$fileList$1$$anonfun$apply$17.apply(RepositoryViewerController.scala:210)

How to reproduce.

  1. start gitbucket by sbt

  2. create repository for gitbucket by root user

  3. push mirror

    $ git clone --mirror https://github.com/takezoe/gitbucket.git
    $ cd gitbucket.git
    $ git push --mirror http://localhost:8080/git/root/gitbucket.git
    
  4. open browser http://localhost:8080/root/gitbucket/tree/1.0

Hmm, i think this is related lightweight tag or annotated tag.

$ git show-ref --tags --dereference
1f164ecf2f59190afc8d7204a221c739e707df4c refs/tags/1.0
07512f1df9974fd394fdc999a7bda7993912ea11 refs/tags/1.0^{}
8aec16bf7f164e99605a26b337a79246ca374303 refs/tags/1.1
bdd83a84fd38bf91f7be094e51921d95b807fe00 refs/tags/1.1^{}
f9cf451ceabdc9bd422ce6ac24b1c2aa397a00c2 refs/tags/1.2
777142b9926997b3c3272761ad7a9258e2fabfa1 refs/tags/1.2^{}
d57ec0c73dd5538697d34c56eaa39d8daec0aad0 refs/tags/1.3
188237db2451d10e2e2e27236d64f3e95dbe615b refs/tags/1.3^{}
fd84b3f1c4f6b5d505e72d0585c035347a58dfc2 refs/tags/1.4

I'll try to fix this.

Add third-party plugin support

Do you have any plan to add "plugin" mechanism in the future release?

It's my understanding that "Easy to setup" is a core value of the gitbucket. Plugins can easily extend it's feature, but may cause some troubles.

Return 500 when registering/updating a user whose email address is already taken

ユーザ情報の登録/変更時、すでに存在するメールアドレスを設定すると 500 が返されます。

StackTrace

SEVERE: Servlet.service() for servlet [default] in context with path [/gitbucket] threw exception [フィルタの実行により例外を投げました] with root cause
org.h2.jdbc.JdbcSQLException: ユニークインデックス、またはプライマリキー違反: "IDX_ACCOUNT_1_INDEX_E ON PUBLIC.ACCOUNT(MAIL_ADDRESS)"
Unique index or primary key violation: "IDX_ACCOUNT_1_INDEX_E ON PUBLIC.ACCOUNT(MAIL_ADDRESS)"; SQL statement:
INSERT INTO "ACCOUNT" ("USER_NAME","MAIL_ADDRESS","PASSWORD","ADMINISTRATOR","URL","REGISTERED_DATE","UPDATED_DATE","LAST_LOGIN_DATE") VALUES (?,?,?,?,?,?,?,?) [23505-171]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    at org.h2.message.DbException.get(DbException.java:169)
    at org.h2.message.DbException.get(DbException.java:146)
    at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:82)
    at org.h2.index.PageBtree.find(PageBtree.java:121)
    at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:147)
    at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:100)
    at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:102)
    at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:93)
    at org.h2.table.RegularTable.addRow(RegularTable.java:122)
    at org.h2.command.dml.Insert.insertRows(Insert.java:124)
    at org.h2.command.dml.Insert.update(Insert.java:84)
    at org.h2.command.CommandContainer.update(CommandContainer.java:75)
    at org.h2.command.Command.executeUpdate(Command.java:230)
    at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:156)
    at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:142)
    at scala.slick.driver.BasicInvokerComponent$InsertInvoker$$anonfun$insert$1.apply(BasicInvokerComponent.scala:87)
    at scala.slick.driver.BasicInvokerComponent$InsertInvoker$$anonfun$insert$1.apply(BasicInvokerComponent.scala:84)
    at scala.slick.session.Session$class.withPreparedStatement(Session.scala:68)
    at scala.slick.session.BaseSession.withPreparedStatement(Session.scala:201)
    at scala.slick.driver.BasicInvokerComponent$InsertInvoker.prepared(BasicInvokerComponent.scala:81)
    at scala.slick.driver.BasicInvokerComponent$InsertInvoker.insert(BasicInvokerComponent.scala:84)
    at service.AccountService$class.createAccount(AccountService.scala:16)
    at app.UserManagementController.createAccount(UserManagementController.scala:8)
    at app.UserManagementControllerBase$$anonfun$5.apply(UserManagementController.scala:40)
    at app.UserManagementControllerBase$$anonfun$5.apply(UserManagementController.scala:39)
    at util.AdminAuthenticator$$anonfun$adminOnly$1$$anonfun$apply$4.apply(Authenticator.scala:69)
    at util.AdminAuthenticator$class.util$AdminAuthenticator$$authenticate(Authenticator.scala:74)
    at util.AdminAuthenticator$$anonfun$adminOnly$1.apply(Authenticator.scala:69)
    at jp.sf.amateras.scalatra.forms.ClientSideValidationFormSupport$$anonfun$post$1$$anonfun$apply$2.apply(ClientSideValidationFormSupport.scala:22)
    at jp.sf.amateras.scalatra.forms.package$.withValidation(package.scala:19)
    at jp.sf.amateras.scalatra.forms.ClientSideValidationFormSupport$$anonfun$post$1.apply(ClientSideValidationFormSupport.scala:21)
    at org.scalatra.ScalatraBase$class.org$scalatra$ScalatraBase$$liftAction(ScalatraBase.scala:183)
    at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:178)
    at org.scalatra.ScalatraBase$$anonfun$invoke$1.apply(ScalatraBase.scala:178)
    at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175)
    at app.ControllerBase.withRouteMultiParams(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$class.invoke(ScalatraBase.scala:177)
    at app.ControllerBase.org$scalatra$json$JsonSupport$$super$invoke(ControllerBase.scala:13)
    at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:65)
    at org.scalatra.json.JsonSupport$$anonfun$invoke$1.apply(JsonSupport.scala:57)
    at org.scalatra.ApiFormats$class.withRouteMultiParams(ApiFormats.scala:175)
    at app.ControllerBase.withRouteMultiParams(ControllerBase.scala:13)
    at org.scalatra.json.JsonSupport$class.invoke(JsonSupport.scala:57)
    at app.ControllerBase.invoke(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$3.apply(ScalatraBase.scala:163)
    at org.scalatra.ScalatraBase$$anonfun$runRoutes$1$$anonfun$apply$3.apply(ScalatraBase.scala:162)
    at scala.Option.flatMap(Option.scala:170)
    at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:162)
    at org.scalatra.ScalatraBase$$anonfun$runRoutes$1.apply(ScalatraBase.scala:161)
    at scala.collection.immutable.Stream.flatMap(Stream.scala:446)
    at org.scalatra.ScalatraBase$class.runRoutes(ScalatraBase.scala:161)
    at app.ControllerBase.runRoutes(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:114)
    at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
    at app.ControllerBase.withResponse(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
    at app.ControllerBase.withRequest(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
    at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
    at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
    at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
    at app.ControllerBase.handle(ControllerBase.scala:13)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
    at app.ControllerBase.doFilter(ControllerBase.scala:13)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
    at scala.Option.getOrElse(Option.scala:120)
    at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
    at scala.Option.getOrElse(Option.scala:120)
    at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
    at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
    at app.ControllerBase.withResponse(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
    at app.ControllerBase.withRequest(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
    at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
    at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
    at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
    at app.ControllerBase.handle(ControllerBase.scala:13)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
    at app.ControllerBase.doFilter(ControllerBase.scala:13)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply$mcV$sp(ScalatraFilter.scala:71)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
    at org.scalatra.ScalatraFilter$$anonfun$1.apply(ScalatraFilter.scala:71)
    at scala.Option.getOrElse(Option.scala:120)
    at org.scalatra.ScalatraBase$$anonfun$executeRoutes$1.apply(ScalatraBase.scala:117)
    at scala.Option.getOrElse(Option.scala:120)
    at org.scalatra.ScalatraBase$class.executeRoutes(ScalatraBase.scala:116)
    at app.ControllerBase.executeRoutes(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply$mcV$sp(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at org.scalatra.ScalatraBase$$anonfun$handle$1.apply(ScalatraBase.scala:80)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withResponse(DynamicScope.scala:80)
    at app.ControllerBase.withResponse(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$$anonfun$withRequestResponse$1.apply(DynamicScope.scala:60)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.DynamicScope$class.withRequest(DynamicScope.scala:71)
    at app.ControllerBase.withRequest(ControllerBase.scala:13)
    at org.scalatra.DynamicScope$class.withRequestResponse(DynamicScope.scala:59)
    at app.ControllerBase.withRequestResponse(ControllerBase.scala:13)
    at org.scalatra.ScalatraBase$class.handle(ScalatraBase.scala:78)
    at app.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:13)
    at org.scalatra.servlet.ServletBase$class.handle(ServletBase.scala:43)
    at app.ControllerBase.handle(ControllerBase.scala:13)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV$sp(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply(ScalatraFilter.scala:33)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:32)
    at app.ControllerBase.doFilter(ControllerBase.scala:13)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at servlet.TransactionFilter$$anonfun$doFilter$1.apply$mcV$sp(TransactionFilter.scala:30)
    at servlet.TransactionFilter$$anonfun$doFilter$1.apply(TransactionFilter.scala:28)
    at servlet.TransactionFilter$$anonfun$doFilter$1.apply(TransactionFilter.scala:28)
    at scala.slick.session.BaseSession.withTransaction(Session.scala:236)
    at scala.slick.session.Database$$anonfun$withTransaction$2.apply(Database.scala:58)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
    at scala.slick.session.Database$$anonfun$withSession$1.apply(Database.scala:46)
    at scala.slick.session.Database$$anonfun$withSession$1.apply(Database.scala:46)
    at scala.slick.session.Database.withSession(Database.scala:38)
    at scala.slick.session.Database.withSession(Database.scala:46)
    at scala.slick.session.Database.withTransaction(Database.scala:58)
    at servlet.TransactionFilter.doFilter(TransactionFilter.scala:28)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

Make it possible to create empty repository

GitBucket always add README.md after repository creation.

But it's inconvenient to port existing git repository to GitBucket. In such a case, we want to create an empty repository. Then, we can only push to that.

So 'Create empty repository' option should be added to the new repository creation form.

Mail notification

Administrator can toggle mail notification at the system settings page.
It also can be viewed and managed read / unread on the web browser.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.