mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 15:05:50 +01:00
Merge remote-tracking branch 'upstream/master' into pr-multi-mailaddress
# Conflicts: # src/main/scala/gitbucket/core/GitBucketCoreModule.scala
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
# Changelog
|
||||
All changes to the project will be documented in this file.
|
||||
|
||||
### 4.23.1 - 10 Apr 2018
|
||||
- Fix bug that the contents API doesn't work for the repository root
|
||||
- Fix shutdown problem in Tomcat deployment
|
||||
- Render by plugins at the blob view even if it's a binary file
|
||||
|
||||
### 4.23.0 - 31 Mar 2018
|
||||
- Allow tail slash in URL
|
||||
- Display commit message of tags at the releases page
|
||||
|
||||
@@ -70,6 +70,11 @@ Support
|
||||
|
||||
What's New in 4.23.x
|
||||
-------------
|
||||
### 4.23.1 - 10 Apr 2018
|
||||
- Fix bug that the contents API doesn't work for the repository root
|
||||
- Fix shutdown problem in Tomcat deployment
|
||||
- Render by plugins at the blob view even if it's a binary file
|
||||
|
||||
### 4.23.0 - 31 Mar 2018
|
||||
- Allow tail slash in URL
|
||||
- Display commit message of tags at the releases page
|
||||
|
||||
@@ -3,7 +3,7 @@ import com.typesafe.sbt.pgp.PgpKeys._
|
||||
|
||||
val Organization = "io.github.gitbucket"
|
||||
val Name = "gitbucket"
|
||||
val GitBucketVersion = "4.23.0"
|
||||
val GitBucketVersion = "4.23.1"
|
||||
val ScalatraVersion = "2.6.1"
|
||||
val JettyVersion = "9.4.7.v20170914"
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
sbt.version=1.1.2
|
||||
sbt.version=1.1.3
|
||||
|
||||
@@ -51,5 +51,7 @@ object GitBucketCoreModule
|
||||
new Version("4.21.2"),
|
||||
new Version("4.22.0", new LiquibaseMigration("update/gitbucket-core_4.22.xml")),
|
||||
new Version("4.23.0", new LiquibaseMigration("update/gitbucket-core_4.23.xml")),
|
||||
new Version("4.23.0", new LiquibaseMigration("update/gitbucket-core_4.23.xml")),
|
||||
new Version("4.23.1")
|
||||
new Version("4.24.0", new LiquibaseMigration("update/gitbucket-core_4.24.xml"))
|
||||
)
|
||||
|
||||
@@ -158,10 +158,21 @@ trait ApiControllerBase extends ControllerBase {
|
||||
}) getOrElse NotFound()
|
||||
})
|
||||
|
||||
/*
|
||||
* https://developer.github.com/v3/repos/contents/#get-contents
|
||||
*/
|
||||
get("/api/v3/repos/:owner/:repo/contents")(referrersOnly { repository =>
|
||||
getContents(repository, ".", params.getOrElse("ref", repository.repository.defaultBranch))
|
||||
})
|
||||
|
||||
/*
|
||||
* https://developer.github.com/v3/repos/contents/#get-contents
|
||||
*/
|
||||
get("/api/v3/repos/:owner/:repo/contents/*")(referrersOnly { repository =>
|
||||
getContents(repository, multiParams("splat").head, params.getOrElse("ref", repository.repository.defaultBranch))
|
||||
})
|
||||
|
||||
private def getContents(repository: RepositoryService.RepositoryInfo, path: String, refStr: String) = {
|
||||
def getFileInfo(git: Git, revision: String, pathStr: String): Option[FileInfo] = {
|
||||
val (dirName, fileName) = pathStr.lastIndexOf('/') match {
|
||||
case -1 =>
|
||||
@@ -172,18 +183,11 @@ trait ApiControllerBase extends ControllerBase {
|
||||
getFileList(git, revision, dirName).find(f => f.name.equals(fileName))
|
||||
}
|
||||
|
||||
val path = multiParams("splat").head match {
|
||||
case s if s.isEmpty => "."
|
||||
case s => s
|
||||
}
|
||||
val refStr = params.getOrElse("ref", repository.repository.defaultBranch)
|
||||
|
||||
using(Git.open(getRepositoryDir(params("owner"), params("repo")))) {
|
||||
git =>
|
||||
using(Git.open(getRepositoryDir(params("owner"), params("repo")))) { git =>
|
||||
val fileList = getFileList(git, refStr, path)
|
||||
if (fileList.isEmpty) { // file or NotFound
|
||||
getFileInfo(git, refStr, path)
|
||||
.flatMap(f => {
|
||||
.flatMap { f =>
|
||||
val largeFile = params.get("large_file").exists(s => s.equals("true"))
|
||||
val content = getContentFromId(git, f.id, largeFile)
|
||||
request.getHeader("Accept") match {
|
||||
@@ -193,8 +197,7 @@ trait ApiControllerBase extends ControllerBase {
|
||||
}
|
||||
case "application/vnd.github.v3.html" if isRenderable(f.name) => {
|
||||
contentType = "application/vnd.github.v3.html"
|
||||
content.map(
|
||||
c =>
|
||||
content.map { c =>
|
||||
List(
|
||||
"<div data-path=\"",
|
||||
path,
|
||||
@@ -204,12 +207,11 @@ trait ApiControllerBase extends ControllerBase {
|
||||
"</article>",
|
||||
"</div>"
|
||||
).mkString
|
||||
)
|
||||
}
|
||||
}
|
||||
case "application/vnd.github.v3.html" => {
|
||||
contentType = "application/vnd.github.v3.html"
|
||||
content.map(
|
||||
c =>
|
||||
content.map { c =>
|
||||
List(
|
||||
"<div data-path=\"",
|
||||
path,
|
||||
@@ -221,20 +223,21 @@ trait ApiControllerBase extends ControllerBase {
|
||||
"</div>",
|
||||
"</div>"
|
||||
).mkString
|
||||
)
|
||||
}
|
||||
}
|
||||
case _ =>
|
||||
Some(JsonFormat(ApiContents(f, RepositoryName(repository), content)))
|
||||
}
|
||||
})
|
||||
}
|
||||
.getOrElse(NotFound())
|
||||
|
||||
} else { // directory
|
||||
JsonFormat(fileList.map { f =>
|
||||
ApiContents(f, RepositoryName(repository), None)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
* https://developer.github.com/v3/git/refs/#get-a-reference
|
||||
|
||||
@@ -82,7 +82,11 @@ $(function(){
|
||||
$('#editor').text($('#initial').val());
|
||||
var editor = ace.edit("editor");
|
||||
editor.setTheme("ace/theme/monokai");
|
||||
//editor.getSession().setUseWrapMode(false);
|
||||
|
||||
if(localStorage.getItem('gitbucket:editor:wrap') == 'true'){
|
||||
editor.getSession().setUseWrapMode(true);
|
||||
$('#wrap').val('true');
|
||||
}
|
||||
|
||||
@if(fileName.isDefined){
|
||||
editor.getSession().setMode("ace/mode/@helpers.editorType(fileName.get)");
|
||||
@@ -106,8 +110,10 @@ $(function(){
|
||||
$('#wrap').change(function(){
|
||||
if($('#wrap option:selected').val() == 'true'){
|
||||
editor.getSession().setUseWrapMode(true);
|
||||
localStorage.setItem('gitbucket:editor:wrap', 'true');
|
||||
} else {
|
||||
editor.getSession().setUseWrapMode(false);
|
||||
localStorage.setItem('gitbucket:editor:wrap', 'false');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user