mirror of
https://github.com/gitbucket/gitbucket.git
synced 2026-05-07 01:56:24 +02:00
Make the default branch configurable (#3283)
This commit is contained in:
@@ -61,7 +61,7 @@ object ApiRepository {
|
||||
watchers = 0,
|
||||
forks = 0,
|
||||
`private` = false,
|
||||
default_branch = "master",
|
||||
default_branch = "main",
|
||||
owner = owner,
|
||||
has_issues = true
|
||||
)
|
||||
|
||||
@@ -813,7 +813,8 @@ trait AccountControllerBase extends AccountManagementControllerBase {
|
||||
form.description,
|
||||
form.isPrivate,
|
||||
form.initOption,
|
||||
form.sourceUrl
|
||||
form.sourceUrl,
|
||||
context.settings.defaultBranch
|
||||
)
|
||||
// redirect to the repository
|
||||
redirect(s"/${form.owner}/${form.name}")
|
||||
|
||||
@@ -124,7 +124,8 @@ trait SystemSettingsControllerBase extends AccountManagementControllerBase {
|
||||
)(Upload.apply),
|
||||
"repositoryViewer" -> mapping(
|
||||
"maxFiles" -> trim(label("Max files", number(required)))
|
||||
)(RepositoryViewerSettings.apply)
|
||||
)(RepositoryViewerSettings.apply),
|
||||
"defaultBranch" -> trim(label("Default branch", text(required)))
|
||||
)(SystemSettings.apply).verifying { settings =>
|
||||
Vector(
|
||||
if (settings.ssh.enabled && settings.baseUrl.isEmpty) {
|
||||
|
||||
@@ -46,7 +46,7 @@ trait WikiControllerBase extends ControllerBase {
|
||||
)
|
||||
|
||||
val newForm = mapping(
|
||||
"pageName" -> trim(label("Page name", text(required, maxlength(40), pagename, unique))),
|
||||
"pageName" -> trim(label("Page name", text(required, maxlength(40), pageName, unique))),
|
||||
"content" -> trim(label("Content", text(required, conflictForNew))),
|
||||
"message" -> trim(label("Message", optional(text()))),
|
||||
"currentPageName" -> trim(label("Current page name", text())),
|
||||
@@ -54,7 +54,7 @@ trait WikiControllerBase extends ControllerBase {
|
||||
)(WikiPageEditForm.apply)
|
||||
|
||||
val editForm = mapping(
|
||||
"pageName" -> trim(label("Page name", text(required, maxlength(40), pagename))),
|
||||
"pageName" -> trim(label("Page name", text(required, maxlength(40), pageName))),
|
||||
"content" -> trim(label("Content", text(required, conflictForEdit))),
|
||||
"message" -> trim(label("Message", optional(text()))),
|
||||
"currentPageName" -> trim(label("Current page name", text(required))),
|
||||
@@ -62,46 +62,56 @@ trait WikiControllerBase extends ControllerBase {
|
||||
)(WikiPageEditForm.apply)
|
||||
|
||||
get("/:owner/:repository/wiki")(referrersOnly { repository =>
|
||||
getWikiPage(repository.owner, repository.name, "Home").map { page =>
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
getWikiPage(repository.owner, repository.name, "Home", branch).map { page =>
|
||||
html.page(
|
||||
"Home",
|
||||
page,
|
||||
getWikiPageList(repository.owner, repository.name),
|
||||
getWikiPageList(repository.owner, repository.name, branch),
|
||||
repository,
|
||||
isEditable(repository),
|
||||
getWikiPage(repository.owner, repository.name, "_Sidebar"),
|
||||
getWikiPage(repository.owner, repository.name, "_Footer")
|
||||
getWikiPage(repository.owner, repository.name, "_Sidebar", branch),
|
||||
getWikiPage(repository.owner, repository.name, "_Footer", branch)
|
||||
)
|
||||
} getOrElse redirect(s"/${repository.owner}/${repository.name}/wiki/Home/_edit")
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page")(referrersOnly { repository =>
|
||||
val pageName = StringUtil.urlDecode(params("page"))
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
getWikiPage(repository.owner, repository.name, pageName).map { page =>
|
||||
getWikiPage(repository.owner, repository.name, pageName, branch).map { page =>
|
||||
html.page(
|
||||
pageName,
|
||||
page,
|
||||
getWikiPageList(repository.owner, repository.name),
|
||||
getWikiPageList(repository.owner, repository.name, branch),
|
||||
repository,
|
||||
isEditable(repository),
|
||||
getWikiPage(repository.owner, repository.name, "_Sidebar"),
|
||||
getWikiPage(repository.owner, repository.name, "_Footer")
|
||||
getWikiPage(repository.owner, repository.name, "_Sidebar", branch),
|
||||
getWikiPage(repository.owner, repository.name, "_Footer", branch)
|
||||
)
|
||||
} getOrElse redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(pageName)}/_edit")
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_history")(referrersOnly { repository =>
|
||||
val pageName = StringUtil.urlDecode(params("page"))
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
Using.resource(Git.open(getWikiRepositoryDir(repository.owner, repository.name))) { git =>
|
||||
JGitUtil.getCommitLog(git, "master", path = pageName + ".md") match {
|
||||
JGitUtil.getCommitLog(git, branch, path = pageName + ".md") match {
|
||||
case Right((logs, hasNext)) => html.history(Some(pageName), logs, repository, isEditable(repository))
|
||||
case Left(_) => NotFound()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
private def getWikiBranch(owner: String, repository: String): String = {
|
||||
Using.resource(Git.open(Directory.getWikiRepositoryDir(owner, repository))) { git =>
|
||||
git.getRepository.getBranch
|
||||
}
|
||||
}
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_compare/:commitId")(referrersOnly { repository =>
|
||||
val pageName = StringUtil.urlDecode(params("page"))
|
||||
val Array(from, to) = params("commitId").split("\\.\\.\\.")
|
||||
@@ -141,8 +151,9 @@ trait WikiControllerBase extends ControllerBase {
|
||||
if (isEditable(repository)) {
|
||||
val pageName = StringUtil.urlDecode(params("page"))
|
||||
val Array(from, to) = params("commitId").split("\\.\\.\\.")
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
if (revertWikiPage(repository.owner, repository.name, from, to, loginAccount, Some(pageName))) {
|
||||
if (revertWikiPage(repository.owner, repository.name, from, to, loginAccount, Some(pageName), branch)) {
|
||||
redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(pageName)}")
|
||||
} else {
|
||||
flash.update("info", "This patch was not able to be reversed.")
|
||||
@@ -159,8 +170,9 @@ trait WikiControllerBase extends ControllerBase {
|
||||
loginAccount =>
|
||||
if (isEditable(repository)) {
|
||||
val Array(from, to) = params("commitId").split("\\.\\.\\.")
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
if (revertWikiPage(repository.owner, repository.name, from, to, loginAccount, None)) {
|
||||
if (revertWikiPage(repository.owner, repository.name, from, to, loginAccount, None, branch)) {
|
||||
redirect(s"/${repository.owner}/${repository.name}/wiki")
|
||||
} else {
|
||||
flash.update("info", "This patch was not able to be reversed.")
|
||||
@@ -173,7 +185,9 @@ trait WikiControllerBase extends ControllerBase {
|
||||
get("/:owner/:repository/wiki/:page/_edit")(readableUsersOnly { repository =>
|
||||
if (isEditable(repository)) {
|
||||
val pageName = StringUtil.urlDecode(params("page"))
|
||||
html.edit(pageName, getWikiPage(repository.owner, repository.name, pageName), repository)
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
|
||||
html.edit(pageName, getWikiPage(repository.owner, repository.name, pageName, branch), repository)
|
||||
} else Unauthorized()
|
||||
})
|
||||
|
||||
@@ -280,7 +294,8 @@ trait WikiControllerBase extends ControllerBase {
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_pages")(referrersOnly { repository =>
|
||||
html.pages(getWikiPageList(repository.owner, repository.name), repository, isEditable(repository))
|
||||
val branch = getWikiBranch(repository.owner, repository.name)
|
||||
html.pages(getWikiPageList(repository.owner, repository.name, branch), repository, isEditable(repository))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_history")(referrersOnly { repository =>
|
||||
@@ -309,13 +324,18 @@ trait WikiControllerBase extends ControllerBase {
|
||||
value: String,
|
||||
params: Map[String, Seq[String]],
|
||||
messages: Messages
|
||||
): Option[String] =
|
||||
getWikiPageList(params.value("owner"), params.value("repository"))
|
||||
): Option[String] = {
|
||||
val owner = params.value("owner")
|
||||
val repository = params.value("repository")
|
||||
val branch = getWikiBranch(owner, repository)
|
||||
|
||||
getWikiPageList(owner, repository, branch)
|
||||
.find(_ == value)
|
||||
.map(_ => "Page already exists.")
|
||||
}
|
||||
}
|
||||
|
||||
private def pagename: Constraint = new Constraint() {
|
||||
private def pageName: Constraint = new Constraint() {
|
||||
override def validate(name: String, value: String, messages: Messages): Option[String] =
|
||||
if (value.exists("\\/:*?\"<>|".contains(_))) {
|
||||
Some(s"${name} contains invalid character.")
|
||||
@@ -326,7 +346,7 @@ trait WikiControllerBase extends ControllerBase {
|
||||
}
|
||||
}
|
||||
|
||||
private def notReservedPageName(value: String) = !(Array[String]("_Sidebar", "_Footer") contains value)
|
||||
private def notReservedPageName(value: String): Boolean = !(Array[String]("_Sidebar", "_Footer") contains value)
|
||||
|
||||
private def conflictForNew: Constraint = new Constraint() {
|
||||
override def validate(name: String, value: String, messages: Messages): Option[String] = {
|
||||
@@ -344,7 +364,13 @@ trait WikiControllerBase extends ControllerBase {
|
||||
}
|
||||
}
|
||||
|
||||
private def targetWikiPage = getWikiPage(params("owner"), params("repository"), params("pageName"))
|
||||
private def targetWikiPage: Option[WikiService.WikiPageInfo] = {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val pageName = params("pageName")
|
||||
val branch = getWikiBranch(owner, repository)
|
||||
getWikiPage(owner, repository, pageName, branch)
|
||||
}
|
||||
|
||||
private def isEditable(repository: RepositoryInfo)(implicit context: Context): Boolean = {
|
||||
repository.repository.options.wikiOption match {
|
||||
|
||||
@@ -93,7 +93,8 @@ trait ApiRepositoryControllerBase extends ControllerBase {
|
||||
data.name,
|
||||
data.description,
|
||||
data.`private`,
|
||||
data.auto_init
|
||||
data.auto_init,
|
||||
context.settings.defaultBranch
|
||||
)
|
||||
Await.result(f, Duration.Inf)
|
||||
|
||||
@@ -130,7 +131,8 @@ trait ApiRepositoryControllerBase extends ControllerBase {
|
||||
data.name,
|
||||
data.description,
|
||||
data.`private`,
|
||||
data.auto_init
|
||||
data.auto_init,
|
||||
context.settings.defaultBranch
|
||||
)
|
||||
Await.result(f, Duration.Inf)
|
||||
val repository = Database() withTransaction { session =>
|
||||
|
||||
@@ -64,9 +64,19 @@ trait RepositoryCreationService {
|
||||
name: String,
|
||||
description: Option[String],
|
||||
isPrivate: Boolean,
|
||||
createReadme: Boolean
|
||||
createReadme: Boolean,
|
||||
defaultBranch: String
|
||||
): Future[Unit] = {
|
||||
createRepository(loginAccount, owner, name, description, isPrivate, if (createReadme) "README" else "EMPTY", None)
|
||||
createRepository(
|
||||
loginAccount,
|
||||
owner,
|
||||
name,
|
||||
description,
|
||||
isPrivate,
|
||||
if (createReadme) "README" else "EMPTY",
|
||||
None,
|
||||
defaultBranch
|
||||
)
|
||||
}
|
||||
|
||||
def createRepository(
|
||||
@@ -76,7 +86,8 @@ trait RepositoryCreationService {
|
||||
description: Option[String],
|
||||
isPrivate: Boolean,
|
||||
initOption: String,
|
||||
sourceUrl: Option[String]
|
||||
sourceUrl: Option[String],
|
||||
defaultBranch: String
|
||||
): Future[Unit] = Future {
|
||||
RepositoryCreationService.startCreation(owner, name)
|
||||
try {
|
||||
@@ -93,7 +104,7 @@ trait RepositoryCreationService {
|
||||
} else None
|
||||
|
||||
// Insert to the database at first
|
||||
insertRepository(name, owner, description, isPrivate)
|
||||
insertRepository(name, owner, description, isPrivate, defaultBranch)
|
||||
|
||||
// // Add collaborators for group repository
|
||||
// if(ownerAccount.isGroupAccount){
|
||||
@@ -110,7 +121,7 @@ trait RepositoryCreationService {
|
||||
|
||||
// Create the actual repository
|
||||
val gitdir = getRepositoryDir(owner, name)
|
||||
JGitUtil.initRepository(gitdir)
|
||||
JGitUtil.initRepository(gitdir, defaultBranch)
|
||||
|
||||
if (initOption == "README" || initOption == "EMPTY_COMMIT") {
|
||||
Using.resource(Git.open(gitdir)) { git =>
|
||||
@@ -163,7 +174,7 @@ trait RepositoryCreationService {
|
||||
}
|
||||
|
||||
// Create Wiki repository
|
||||
createWikiRepository(loginAccount, owner, name)
|
||||
createWikiRepository(loginAccount, owner, name, defaultBranch)
|
||||
|
||||
// Record activity
|
||||
recordActivity(CreateRepositoryInfo(owner, name, loginUserName))
|
||||
|
||||
@@ -34,7 +34,7 @@ trait RepositoryService {
|
||||
userName: String,
|
||||
description: Option[String],
|
||||
isPrivate: Boolean,
|
||||
defaultBranch: String = "master",
|
||||
defaultBranch: String,
|
||||
originRepositoryName: Option[String] = None,
|
||||
originUserName: Option[String] = None,
|
||||
parentRepositoryName: Option[String] = None,
|
||||
|
||||
@@ -90,6 +90,7 @@ trait SystemSettingsService {
|
||||
props.setProperty(UploadLargeMaxFileSize, settings.upload.largeMaxFileSize.toString)
|
||||
props.setProperty(UploadLargeTimeout, settings.upload.largeTimeout.toString)
|
||||
props.setProperty(RepositoryViewerMaxFiles, settings.repositoryViewer.maxFiles.toString)
|
||||
props.setProperty(DefaultBranch, settings.defaultBranch)
|
||||
|
||||
Using.resource(new java.io.FileOutputStream(GitBucketConf)) { out =>
|
||||
props.store(out, null)
|
||||
@@ -205,7 +206,8 @@ trait SystemSettingsService {
|
||||
),
|
||||
RepositoryViewerSettings(
|
||||
getValue(props, RepositoryViewerMaxFiles, 0)
|
||||
)
|
||||
),
|
||||
getValue(props, DefaultBranch, "main")
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -231,7 +233,8 @@ object SystemSettingsService {
|
||||
showMailAddress: Boolean,
|
||||
webHook: WebHook,
|
||||
upload: Upload,
|
||||
repositoryViewer: RepositoryViewerSettings
|
||||
repositoryViewer: RepositoryViewerSettings,
|
||||
defaultBranch: String
|
||||
) {
|
||||
def baseUrl(request: HttpServletRequest): String =
|
||||
baseUrl.getOrElse(parseBaseUrl(request)).stripSuffix("/")
|
||||
@@ -402,7 +405,6 @@ object SystemSettingsService {
|
||||
private val RepositoryOperationFork = "repository_operation_fork"
|
||||
private val Gravatar = "gravatar"
|
||||
private val Notification = "notification"
|
||||
private val ActivityLogLimit = "activity_log_limit"
|
||||
private val LimitVisibleRepositories = "limitVisibleRepositories"
|
||||
private val SshEnabled = "ssh"
|
||||
private val SshHost = "ssh.host"
|
||||
@@ -448,6 +450,7 @@ object SystemSettingsService {
|
||||
private val UploadLargeMaxFileSize = "upload.largeMaxFileSize"
|
||||
private val UploadLargeTimeout = "upload.largeTimeout"
|
||||
private val RepositoryViewerMaxFiles = "repository_viewer_max_files"
|
||||
private val DefaultBranch = "default_branch"
|
||||
|
||||
private def getValue[A: ClassTag](props: java.util.Properties, key: String, default: A): A = {
|
||||
getConfigValue(key).getOrElse {
|
||||
|
||||
@@ -51,11 +51,11 @@ object WikiService {
|
||||
trait WikiService {
|
||||
import WikiService._
|
||||
|
||||
def createWikiRepository(loginAccount: Account, owner: String, repository: String): Unit =
|
||||
def createWikiRepository(loginAccount: Account, owner: String, repository: String, defaultBranch: String): Unit =
|
||||
LockUtil.lock(s"${owner}/${repository}/wiki") {
|
||||
val dir = Directory.getWikiRepositoryDir(owner, repository)
|
||||
if (!dir.exists) {
|
||||
JGitUtil.initRepository(dir)
|
||||
JGitUtil.initRepository(dir, defaultBranch)
|
||||
saveWikiPage(
|
||||
owner,
|
||||
repository,
|
||||
@@ -72,11 +72,11 @@ trait WikiService {
|
||||
/**
|
||||
* Returns the wiki page.
|
||||
*/
|
||||
def getWikiPage(owner: String, repository: String, pageName: String): Option[WikiPageInfo] = {
|
||||
def getWikiPage(owner: String, repository: String, pageName: String, branch: String): Option[WikiPageInfo] = {
|
||||
Using.resource(Git.open(Directory.getWikiRepositoryDir(owner, repository))) { git =>
|
||||
if (!JGitUtil.isEmpty(git)) {
|
||||
val fileName = pageName + ".md"
|
||||
JGitUtil.getLatestCommitFromPath(git, fileName, "master").map { latestCommit =>
|
||||
JGitUtil.getLatestCommitFromPath(git, fileName, branch).map { latestCommit =>
|
||||
val content = JGitUtil.getContentFromPath(git, latestCommit.getTree, fileName, true)
|
||||
WikiPageInfo(
|
||||
fileName,
|
||||
@@ -93,10 +93,10 @@ trait WikiService {
|
||||
/**
|
||||
* Returns the list of wiki page names.
|
||||
*/
|
||||
def getWikiPageList(owner: String, repository: String): List[String] = {
|
||||
def getWikiPageList(owner: String, repository: String, branch: String): List[String] = {
|
||||
Using.resource(Git.open(Directory.getWikiRepositoryDir(owner, repository))) { git =>
|
||||
JGitUtil
|
||||
.getFileList(git, "master", ".")
|
||||
.getFileList(git, branch, ".")
|
||||
.filter(_.name.endsWith(".md"))
|
||||
.filterNot(_.name.startsWith("_"))
|
||||
.map(_.name.stripSuffix(".md"))
|
||||
@@ -113,7 +113,8 @@ trait WikiService {
|
||||
from: String,
|
||||
to: String,
|
||||
committer: Account,
|
||||
pageName: Option[String]
|
||||
pageName: Option[String],
|
||||
branch: String
|
||||
): Boolean = {
|
||||
|
||||
case class RevertInfo(operation: String, filePath: String, source: String)
|
||||
@@ -151,7 +152,7 @@ trait WikiService {
|
||||
fh.getChangeType match {
|
||||
case DiffEntry.ChangeType.MODIFY => {
|
||||
val source =
|
||||
getWikiPage(owner, repository, fh.getNewPath.stripSuffix(".md")).map(_.content).getOrElse("")
|
||||
getWikiPage(owner, repository, fh.getNewPath.stripSuffix(".md"), branch).map(_.content).getOrElse("")
|
||||
val applied = PatchUtil.apply(source, patch, fh)
|
||||
if (applied != null) {
|
||||
Seq(RevertInfo("ADD", fh.getNewPath, applied))
|
||||
|
||||
@@ -892,10 +892,11 @@ object JGitUtil {
|
||||
.reverse
|
||||
}
|
||||
|
||||
def initRepository(dir: java.io.File): Unit =
|
||||
Using.resource(new RepositoryBuilder().setGitDir(dir).setBare.build) { repository =>
|
||||
repository.create(true)
|
||||
setReceivePack(repository)
|
||||
def initRepository(dir: java.io.File, defaultBranch: String): Unit =
|
||||
Using.resource(new RepositoryBuilder().setGitDir(dir).setBare().setInitialBranch(defaultBranch).build) {
|
||||
repository =>
|
||||
repository.create(true)
|
||||
setReceivePack(repository)
|
||||
}
|
||||
|
||||
def cloneRepository(from: java.io.File, to: java.io.File): Unit =
|
||||
|
||||
@@ -56,6 +56,15 @@
|
||||
<textarea id="information" name="information" class="form-control" style="height: 100px;">@context.settings.information</textarea>
|
||||
</fieldset>
|
||||
<!--====================================================================-->
|
||||
<!-- Default branch -->
|
||||
<!--====================================================================-->
|
||||
<hr>
|
||||
<label for="defaultBranch"><span class="strong">Default branch</span></label>
|
||||
<fieldset>
|
||||
<input type="text" name="defaultBranch" id="defaultBranch" class="form-control" value="@context.settings.defaultBranch"/>
|
||||
<span id="error-defaultBranch" class="error"></span>
|
||||
</fieldset>
|
||||
<!--====================================================================-->
|
||||
<!-- AdminLTE SkinName -->
|
||||
<!--====================================================================-->
|
||||
<hr>
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
git add README.md
|
||||
git commit -m "first commit"
|
||||
git remote add origin <span class="live-clone-url">@repository.httpUrl</span>
|
||||
git push -u origin master
|
||||
git push -u origin @context.settings.defaultBranch
|
||||
}
|
||||
<h3 style="margin-top: 30px;">Push an existing repository from the command line</h3>
|
||||
@helpers.pre {
|
||||
git remote add origin <span class="live-clone-url">@repository.httpUrl</span>
|
||||
git push -u origin master
|
||||
git push -u origin @context.settings.defaultBranch
|
||||
}
|
||||
<script>
|
||||
$(function(){
|
||||
@@ -38,4 +38,4 @@
|
||||
</script>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,19 @@ import scala.util.Using
|
||||
import org.kohsuke.github.GHCommitState
|
||||
|
||||
import java.io.File
|
||||
import java.util.logging.{Level, Logger}
|
||||
|
||||
/**
|
||||
* Need to run `sbt package` before running this test.
|
||||
*/
|
||||
class ApiIntegrationTest extends AnyFunSuite {
|
||||
|
||||
// Suppress warning logs caused by liquibase
|
||||
private val liquibaseResourceLogger = Logger.getLogger("liquibase.resource")
|
||||
liquibaseResourceLogger.setLevel(Level.SEVERE)
|
||||
private val liquibaseParserLogger = Logger.getLogger("liquibase.parser")
|
||||
liquibaseParserLogger.setLevel(Level.SEVERE)
|
||||
|
||||
test("create repository") {
|
||||
Using.resource(new TestingGitBucketServer(19999)) { server =>
|
||||
val github = server.client("root", "root")
|
||||
@@ -29,7 +36,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
|
||||
assert(repository.getName == "test")
|
||||
assert(repository.getDescription == "test repository")
|
||||
assert(repository.getDefaultBranch == "master")
|
||||
assert(repository.getDefaultBranch == "main")
|
||||
assert(repository.getWatchers == 0)
|
||||
assert(repository.getWatchersCount == 0)
|
||||
assert(repository.getForks == 0)
|
||||
@@ -48,7 +55,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
val repository = repositories.get(0)
|
||||
assert(repository.getName == "test")
|
||||
assert(repository.getDescription == "test repository")
|
||||
assert(repository.getDefaultBranch == "master")
|
||||
assert(repository.getDefaultBranch == "main")
|
||||
assert(repository.getWatchers == 0)
|
||||
assert(repository.getWatchersCount == 0)
|
||||
assert(repository.getForks == 0)
|
||||
@@ -68,7 +75,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
val github = server.client("root", "root")
|
||||
|
||||
val repo = github.createRepository("create_status_test").autoInit(true).create()
|
||||
val sha1 = repo.getBranch("master").getSHA1
|
||||
val sha1 = repo.getBranch("main").getSHA1
|
||||
|
||||
{
|
||||
val status = repo.getLastCommitStatus(sha1)
|
||||
@@ -140,10 +147,10 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
|
||||
// get master ref
|
||||
{
|
||||
val ref = repo.getRef("heads/master")
|
||||
assert(ref.getRef == "refs/heads/master")
|
||||
val ref = repo.getRef("heads/main")
|
||||
assert(ref.getRef == "refs/heads/main")
|
||||
assert(
|
||||
ref.getUrl.toString == "http://localhost:19999/api/v3/repos/root/create_status_test/git/refs/heads/master"
|
||||
ref.getUrl.toString == "http://localhost:19999/api/v3/repos/root/create_status_test/git/refs/heads/main"
|
||||
)
|
||||
assert(ref.getObject.getType == "commit")
|
||||
}
|
||||
@@ -169,7 +176,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
val createResult =
|
||||
repo
|
||||
.createContent()
|
||||
.branch("master")
|
||||
.branch("main")
|
||||
.content("create")
|
||||
.message("Create content")
|
||||
.path("README.md")
|
||||
@@ -186,7 +193,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
val updateResult =
|
||||
repo
|
||||
.createContent()
|
||||
.branch("master")
|
||||
.branch("main")
|
||||
.content("update")
|
||||
.message("Update content")
|
||||
.path("README.md")
|
||||
@@ -281,11 +288,11 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
val github = server.client("root", "root")
|
||||
|
||||
val repo = github.createRepository("git_refs_test").autoInit(true).create()
|
||||
val sha1 = repo.getBranch("master").getSHA1
|
||||
val sha1 = repo.getBranch("main").getSHA1
|
||||
|
||||
val refs1 = repo.listRefs().toList
|
||||
assert(refs1.size() == 1)
|
||||
assert(refs1.get(0).getRef == "refs/heads/master")
|
||||
assert(refs1.get(0).getRef == "refs/heads/main")
|
||||
assert(refs1.get(0).getObject.getSha == sha1)
|
||||
|
||||
val ref = repo.createRef("refs/heads/testref", sha1)
|
||||
@@ -294,7 +301,7 @@ class ApiIntegrationTest extends AnyFunSuite {
|
||||
|
||||
val refs2 = repo.listRefs().toList
|
||||
assert(refs2.size() == 2)
|
||||
assert(refs2.get(0).getRef == "refs/heads/master")
|
||||
assert(refs2.get(0).getRef == "refs/heads/main")
|
||||
assert(refs2.get(0).getObject.getSha == sha1)
|
||||
assert(refs2.get(1).getRef == "refs/heads/testref")
|
||||
assert(refs2.get(1).getObject.getSha == sha1)
|
||||
|
||||
@@ -53,7 +53,7 @@ object ApiSpecModels {
|
||||
repositoryName = repo1Name.name,
|
||||
isPrivate = false,
|
||||
description = Some("This your first repo!"),
|
||||
defaultBranch = "master",
|
||||
defaultBranch = "main",
|
||||
registeredDate = date1,
|
||||
updatedDate = date1,
|
||||
lastActivityDate = date1,
|
||||
@@ -81,7 +81,7 @@ object ApiSpecModels {
|
||||
pullCount = 1,
|
||||
forkedCount = 1,
|
||||
milestoneCount = 1,
|
||||
branchList = Seq("master", "develop"),
|
||||
branchList = Seq("main", "develop"),
|
||||
tags = Seq(
|
||||
TagInfo(
|
||||
name = "v1.0",
|
||||
@@ -147,7 +147,7 @@ object ApiSpecModels {
|
||||
userName = repo1Name.owner,
|
||||
repositoryName = repo1Name.name,
|
||||
issueId = issuePR.issueId,
|
||||
branch = "master",
|
||||
branch = "main",
|
||||
requestUserName = "bear",
|
||||
requestRepositoryName = repo1Name.name,
|
||||
requestBranch = "new-topic",
|
||||
@@ -363,7 +363,7 @@ object ApiSpecModels {
|
||||
info = ProtectedBranchInfo(
|
||||
owner = repo1Name.owner,
|
||||
repository = repo1Name.name,
|
||||
branch = "master",
|
||||
branch = "main",
|
||||
enabled = true,
|
||||
contexts = Seq("continuous-integration/travis-ci"),
|
||||
includeAdministrators = true
|
||||
@@ -384,7 +384,7 @@ object ApiSpecModels {
|
||||
)
|
||||
|
||||
val apiBranch = ApiBranch(
|
||||
name = "master",
|
||||
name = "main",
|
||||
commit = ApiBranchCommit(sha1),
|
||||
protection = apiBranchProtectionOutput
|
||||
)(
|
||||
@@ -392,7 +392,7 @@ object ApiSpecModels {
|
||||
)
|
||||
|
||||
val apiBranchForList = ApiBranchForList(
|
||||
name = "master",
|
||||
name = "main",
|
||||
commit = ApiBranchCommit(sha1)
|
||||
)
|
||||
|
||||
@@ -447,8 +447,8 @@ object ApiSpecModels {
|
||||
val gitHubContext = JsonFormat.Context("https://api.github.com", Some("https://api.github.com"))
|
||||
|
||||
val apiRefHeadsMaster = ApiRef(
|
||||
ref = "refs/heads/master",
|
||||
url = ApiPath("/repos/gitbucket/gitbucket/git/refs/heads/master"),
|
||||
ref = "refs/heads/main",
|
||||
url = ApiPath("/repos/gitbucket/gitbucket/git/refs/heads/main"),
|
||||
node_id = "MDM6UmVmOTM1MDc0NjpyZWZzL2hlYWRzL21hc3Rlcg==",
|
||||
`object` = ApiRefCommit(
|
||||
sha = "6b2d124d092402f2c2b7131caada05ead9e7de6d",
|
||||
@@ -508,7 +508,7 @@ object ApiSpecModels {
|
||||
|"watchers":0,
|
||||
|"forks":1,
|
||||
|"private":false,
|
||||
|"default_branch":"master",
|
||||
|"default_branch":"main",
|
||||
|"owner":$jsonUser,
|
||||
|"has_issues":true,
|
||||
|"id":0,
|
||||
@@ -594,7 +594,7 @@ object ApiSpecModels {
|
||||
|"updated_at":"2011-04-14T16:00:49Z",
|
||||
|"created_at":"2011-04-14T16:00:49Z",
|
||||
|"head":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e","ref":"new-topic","repo":$jsonRepository,"label":"new-topic","user":$jsonUser},
|
||||
|"base":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e","ref":"master","repo":$jsonRepository,"label":"master","user":$jsonUser},
|
||||
|"base":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e","ref":"main","repo":$jsonRepository,"label":"main","user":$jsonUser},
|
||||
|"merged":true,
|
||||
|"merged_at":"2011-04-14T16:00:49Z",
|
||||
|"merged_by":$jsonUser,
|
||||
@@ -730,13 +730,13 @@ object ApiSpecModels {
|
||||
|
||||
val jsonBranchProtectionOutput =
|
||||
"""{
|
||||
|"url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/master/protection",
|
||||
|"url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/main/protection",
|
||||
|"enabled":true,
|
||||
|"required_status_checks":{
|
||||
|"url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/master/protection/required_status_checks",
|
||||
|"url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/main/protection/required_status_checks",
|
||||
|"enforcement_level":"everyone",
|
||||
|"contexts":["continuous-integration/travis-ci"],
|
||||
|"contexts_url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts"}
|
||||
|"contexts_url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/main/protection/required_status_checks/contexts"}
|
||||
|}""".stripMargin
|
||||
|
||||
val jsonBranchProtectionInput =
|
||||
@@ -749,15 +749,15 @@ object ApiSpecModels {
|
||||
|}""".stripMargin
|
||||
|
||||
val jsonBranch = s"""{
|
||||
|"name":"master",
|
||||
|"name":"main",
|
||||
|"commit":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"},
|
||||
|"protection":$jsonBranchProtectionOutput,
|
||||
|"_links":{
|
||||
|"self":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/master",
|
||||
|"html":"http://gitbucket.exmple.com/octocat/Hello-World/tree/master"}
|
||||
|"self":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/branches/main",
|
||||
|"html":"http://gitbucket.exmple.com/octocat/Hello-World/tree/main"}
|
||||
|}""".stripMargin
|
||||
|
||||
val jsonBranchForList = """{"name":"master","commit":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}"""
|
||||
val jsonBranchForList = """{"name":"main","commit":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}"""
|
||||
|
||||
val jsonContents =
|
||||
"""{
|
||||
@@ -800,11 +800,11 @@ object ApiSpecModels {
|
||||
//I checked all refs in gitbucket repo, and there appears to be only type "commit" and type "tag"
|
||||
val jsonRef = """{"ref":"refs/heads/featureA","object":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}"""
|
||||
|
||||
val jsonRefHeadsMaster =
|
||||
val jsonRefHeadsMain =
|
||||
"""{
|
||||
|"ref": "refs/heads/master",
|
||||
|"ref": "refs/heads/main",
|
||||
|"node_id": "MDM6UmVmOTM1MDc0NjpyZWZzL2hlYWRzL21hc3Rlcg==",
|
||||
|"url": "https://api.github.com/repos/gitbucket/gitbucket/git/refs/heads/master",
|
||||
|"url": "https://api.github.com/repos/gitbucket/gitbucket/git/refs/heads/main",
|
||||
|"object": {
|
||||
|"sha": "6b2d124d092402f2c2b7131caada05ead9e7de6d",
|
||||
|"type": "commit",
|
||||
|
||||
@@ -83,7 +83,7 @@ class JsonFormatSpec extends AnyFunSuite {
|
||||
assert(JsonFormat(apiPusher) == expected(jsonPusher))
|
||||
}
|
||||
test("apiRefHead") {
|
||||
assertEqualJson(JsonFormat(apiRefHeadsMaster)(gitHubContext), jsonRefHeadsMaster)
|
||||
assertEqualJson(JsonFormat(apiRefHeadsMaster)(gitHubContext), jsonRefHeadsMain)
|
||||
}
|
||||
test("apiRefTag") {
|
||||
assertEqualJson(JsonFormat(apiRefTag)(gitHubContext), jsonRefTag)
|
||||
|
||||
@@ -40,7 +40,7 @@ class CommitStatusServiceSpec
|
||||
test("createCommitState can insert and update") {
|
||||
withTestDB { implicit session =>
|
||||
val tester = generateNewAccount(fixture1.creator)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false, "main")
|
||||
val id = generateFixture1(tester: Account)
|
||||
assert(
|
||||
getCommitStatus(fixture1.userName, fixture1.repositoryName, id) == Some(fixture1.copy(commitStatusId = id))
|
||||
@@ -77,7 +77,7 @@ class CommitStatusServiceSpec
|
||||
test("getCommitStatus can find by commitId and context") {
|
||||
withTestDB { implicit session =>
|
||||
val tester = generateNewAccount(fixture1.creator)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false, "main")
|
||||
val id = generateFixture1(tester: Account)
|
||||
assert(
|
||||
getCommitStatus(fixture1.userName, fixture1.repositoryName, fixture1.commitId, fixture1.context) == Some(
|
||||
@@ -90,7 +90,7 @@ class CommitStatusServiceSpec
|
||||
test("getCommitStatus can find by commitStatusId") {
|
||||
withTestDB { implicit session =>
|
||||
val tester = generateNewAccount(fixture1.creator)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false)
|
||||
insertRepository(fixture1.repositoryName, fixture1.userName, None, false, "main")
|
||||
val id = generateFixture1(tester: Account)
|
||||
assert(
|
||||
getCommitStatus(fixture1.userName, fixture1.repositoryName, id) == Some(fixture1.copy(commitStatusId = id))
|
||||
|
||||
@@ -7,7 +7,7 @@ class RepositoryServiceSpec extends AnyFunSuite with ServiceSpecBase with Reposi
|
||||
test("renameRepository can rename CommitState, ProtectedBranches") {
|
||||
withTestDB { implicit session =>
|
||||
val tester = generateNewAccount("tester")
|
||||
insertRepository("repo", "root", None, false)
|
||||
insertRepository("repo", "root", None, false, "main")
|
||||
val service = new CommitStatusService with ProtectedBranchService {}
|
||||
val id = service.createCommitStatus(
|
||||
userName = "root",
|
||||
|
||||
@@ -81,7 +81,8 @@ trait ServiceSpecBase {
|
||||
),
|
||||
repositoryViewer = RepositoryViewerSettings(
|
||||
maxFiles = 0
|
||||
)
|
||||
),
|
||||
defaultBranch = "main"
|
||||
)
|
||||
|
||||
def withTestDB[A](action: (Session) => A): A = {
|
||||
@@ -127,8 +128,8 @@ trait ServiceSpecBase {
|
||||
if (dir.exists()) {
|
||||
FileUtils.deleteQuietly(dir)
|
||||
}
|
||||
JGitUtil.initRepository(dir)
|
||||
dummyService.insertRepository(repositoryName, userName, None, false)
|
||||
JGitUtil.initRepository(dir, "main")
|
||||
dummyService.insertRepository(repositoryName, userName, None, false, "main")
|
||||
ac
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ class WebHookJsonFormatSpec extends AnyFunSuite {
|
||||
|"description":"This your first repo!",
|
||||
|"ref":"v1.0",
|
||||
|"ref_type":"tag",
|
||||
|"master_branch":"master",
|
||||
|"master_branch":"main",
|
||||
|"repository":$jsonRepository,
|
||||
|"pusher_type":"user"
|
||||
|}""".stripMargin
|
||||
@@ -41,12 +41,12 @@ class WebHookJsonFormatSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "initial")
|
||||
createFile(git, Constants.HEAD, "README.md", "body1\nbody2", message = "modified")
|
||||
|
||||
val branchId = git.getRepository.resolve("master")
|
||||
val branchId = git.getRepository.resolve("main")
|
||||
|
||||
val payload = WebHookPushPayload(
|
||||
git = git,
|
||||
sender = account,
|
||||
refName = "refs/heads/master",
|
||||
refName = "refs/heads/main",
|
||||
repositoryInfo = repositoryInfo,
|
||||
commits = List(commitInfo(branchId.name)),
|
||||
repositoryOwner = account,
|
||||
@@ -56,7 +56,7 @@ class WebHookJsonFormatSpec extends AnyFunSuite {
|
||||
val expected = s"""{
|
||||
|"pusher":{"name":"octocat","email":"octocat@example.com"},
|
||||
|"sender":$jsonUser,
|
||||
|"ref":"refs/heads/master",
|
||||
|"ref":"refs/heads/main",
|
||||
|"before":"6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
||||
|"after":"6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
||||
|"commits":[${jsonCommit(branchId.name)}],
|
||||
|
||||
@@ -34,7 +34,7 @@ object GitSpecUtil {
|
||||
RepositoryCache.clear()
|
||||
FileUtils.deleteQuietly(dir)
|
||||
Files.createDirectories(dir.toPath())
|
||||
JGitUtil.initRepository(dir)
|
||||
JGitUtil.initRepository(dir, "main")
|
||||
dir
|
||||
}
|
||||
|
||||
|
||||
@@ -23,14 +23,14 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
withTestRepository { git =>
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
|
||||
val branchId = git.getRepository.resolve("master")
|
||||
val branchId = git.getRepository.resolve("main")
|
||||
val commit = JGitUtil.getRevCommitFromId(git, branchId)
|
||||
|
||||
createFile(git, Constants.HEAD, "LICENSE", "Apache License", message = "commit1")
|
||||
createFile(git, Constants.HEAD, "README.md", "body1\nbody2", message = "commit1")
|
||||
|
||||
// latest commit
|
||||
val diff1 = JGitUtil.getDiffs(git, None, "master", false, true)
|
||||
val diff1 = JGitUtil.getDiffs(git, None, "main", false, true)
|
||||
assert(diff1.size == 1)
|
||||
assert(diff1(0).changeType == ChangeType.MODIFY)
|
||||
assert(diff1(0).oldPath == "README.md")
|
||||
@@ -44,7 +44,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
|\ No newline at end of file""".stripMargin))
|
||||
|
||||
// from specified commit
|
||||
val diff2 = JGitUtil.getDiffs(git, Some(commit.getName), "master", false, true)
|
||||
val diff2 = JGitUtil.getDiffs(git, Some(commit.getName), "main", false, true)
|
||||
assert(diff2.size == 2)
|
||||
assert(diff2(0).changeType == ChangeType.ADD)
|
||||
assert(diff2(0).oldPath == "/dev/null")
|
||||
@@ -73,7 +73,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
|
||||
// branch name
|
||||
val branchId = git.getRepository.resolve("master")
|
||||
val branchId = git.getRepository.resolve("main")
|
||||
val commit1 = JGitUtil.getRevCommitFromId(git, branchId)
|
||||
|
||||
// commit id
|
||||
@@ -97,19 +97,19 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
withTestRepository { git =>
|
||||
// getCommitCount
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
assert(JGitUtil.getCommitCount(git, "master") == 1)
|
||||
assert(JGitUtil.getCommitCount(git, "main") == 1)
|
||||
|
||||
createFile(git, Constants.HEAD, "README.md", "body2", message = "commit2")
|
||||
assert(JGitUtil.getCommitCount(git, "master") == 2)
|
||||
assert(JGitUtil.getCommitCount(git, "main") == 2)
|
||||
|
||||
// maximum limit
|
||||
(3 to 10).foreach { i =>
|
||||
createFile(git, Constants.HEAD, "README.md", "body" + i, message = "commit" + i)
|
||||
}
|
||||
assert(JGitUtil.getCommitCount(git, "master", 5) == 5)
|
||||
assert(JGitUtil.getCommitCount(git, "main", 5) == 5)
|
||||
|
||||
// actual commit count
|
||||
val gitLog = git.log.add(git.getRepository.resolve("master")).all
|
||||
val gitLog = git.log.add(git.getRepository.resolve("main")).all
|
||||
assert(gitLog.call.asScala.toSeq.size == 10)
|
||||
|
||||
// getAllCommitIds
|
||||
@@ -123,22 +123,22 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
|
||||
// createBranch
|
||||
assert(JGitUtil.createBranch(git, "master", "test1") == Right("Branch created."))
|
||||
assert(JGitUtil.createBranch(git, "master", "test2") == Right("Branch created."))
|
||||
assert(JGitUtil.createBranch(git, "master", "test2") == Left("Sorry, that branch already exists."))
|
||||
assert(JGitUtil.createBranch(git, "main", "test1") == Right("Branch created."))
|
||||
assert(JGitUtil.createBranch(git, "main", "test2") == Right("Branch created."))
|
||||
assert(JGitUtil.createBranch(git, "main", "test2") == Left("Sorry, that branch already exists."))
|
||||
|
||||
// verify
|
||||
val branches = git.branchList.call()
|
||||
assert(branches.size == 3)
|
||||
assert(branches.get(0).getName == "refs/heads/master")
|
||||
assert(branches.get(0).getName == "refs/heads/main")
|
||||
assert(branches.get(1).getName == "refs/heads/test1")
|
||||
assert(branches.get(2).getName == "refs/heads/test2")
|
||||
|
||||
// getBranchesOfCommit
|
||||
val commit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve("master"))
|
||||
val commit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve("main"))
|
||||
val branchesOfCommit = JGitUtil.getBranchesOfCommit(git, commit.getName)
|
||||
assert(branchesOfCommit.size == 3)
|
||||
assert(branchesOfCommit(0) == "master")
|
||||
assert(branchesOfCommit(0) == "main")
|
||||
assert(branchesOfCommit(1) == "test1")
|
||||
assert(branchesOfCommit(2) == "test2")
|
||||
}
|
||||
@@ -147,16 +147,16 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
test("getBranches") {
|
||||
withTestRepository { git =>
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
JGitUtil.createBranch(git, "master", "test1")
|
||||
JGitUtil.createBranch(git, "main", "test1")
|
||||
|
||||
createFile(git, Constants.HEAD, "README.md", "body2", message = "commit2")
|
||||
JGitUtil.createBranch(git, "master", "test2")
|
||||
JGitUtil.createBranch(git, "main", "test2")
|
||||
|
||||
// getBranches
|
||||
val branches = JGitUtil.getBranches(git, "master", true)
|
||||
val branches = JGitUtil.getBranches(git, "main", true)
|
||||
assert(branches.size == 3)
|
||||
|
||||
assert(branches(0).name == "master")
|
||||
assert(branches(0).name == "main")
|
||||
assert(branches(0).committerName == "dummy")
|
||||
assert(branches(0).committerEmailAddress == "dummy@example.com")
|
||||
|
||||
@@ -178,17 +178,17 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
|
||||
// createTag
|
||||
assert(JGitUtil.createTag(git, "1.0", Some("test1"), "master") == Right("Tag added."))
|
||||
assert(JGitUtil.createTag(git, "1.0", Some("test1"), "main") == Right("Tag added."))
|
||||
assert(
|
||||
JGitUtil.createTag(git, "1.0", Some("test2"), "master") == Left("Sorry, some Git operation error occurs.")
|
||||
JGitUtil.createTag(git, "1.0", Some("test2"), "main") == Left("Sorry, some Git operation error occurs.")
|
||||
)
|
||||
|
||||
// record current commit
|
||||
val commit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve("master"))
|
||||
val commit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve("main"))
|
||||
|
||||
// createTag
|
||||
createFile(git, Constants.HEAD, "LICENSE", "Apache License", message = "commit2")
|
||||
assert(JGitUtil.createTag(git, "1.1", Some("test3"), "master") == Right("Tag added."))
|
||||
assert(JGitUtil.createTag(git, "1.1", Some("test3"), "main") == Right("Tag added."))
|
||||
|
||||
// verify
|
||||
val allTags = git.tagList().call().asScala
|
||||
@@ -203,7 +203,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
assert(tagsOfCommit(1) == "1.0")
|
||||
|
||||
// getTagsOnCommit
|
||||
val tagsOnCommit = JGitUtil.getTagsOnCommit(git, "master")
|
||||
val tagsOnCommit = JGitUtil.getTagsOnCommit(git, "main")
|
||||
assert(tagsOnCommit.size == 1)
|
||||
assert(tagsOnCommit(0) == "1.1")
|
||||
}
|
||||
@@ -214,7 +214,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
createFile(git, Constants.HEAD, "LICENSE", "Apache License", message = "commit2")
|
||||
|
||||
val objectId = git.getRepository.resolve("master")
|
||||
val objectId = git.getRepository.resolve("main")
|
||||
val commit = JGitUtil.getRevCommitFromId(git, objectId)
|
||||
|
||||
// Since Non-LFS file doesn't need RepositoryInfo give null
|
||||
@@ -233,7 +233,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1", message = "commit1")
|
||||
createFile(git, Constants.HEAD, "LARGE_FILE", "body1" * 1000000, message = "commit1")
|
||||
|
||||
val objectId = git.getRepository.resolve("master")
|
||||
val objectId = git.getRepository.resolve("main")
|
||||
val commit = JGitUtil.getRevCommitFromId(git, objectId)
|
||||
|
||||
val content1 = JGitUtil.getContentFromPath(git, commit.getTree, "README.md", true)
|
||||
@@ -252,7 +252,7 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, Constants.HEAD, "README.md", "body1\nbody2\nbody3", message = "commit1")
|
||||
createFile(git, Constants.HEAD, "README.md", "body0\nbody2\nbody3", message = "commit2")
|
||||
|
||||
val blames = JGitUtil.getBlame(git, "master", "README.md").toSeq
|
||||
val blames = JGitUtil.getBlame(git, "main", "README.md").toSeq
|
||||
|
||||
assert(blames.size == 2)
|
||||
assert(blames(0).message == "commit2")
|
||||
@@ -266,75 +266,75 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
withTestRepository { git =>
|
||||
def list(branch: String, path: String) =
|
||||
JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory))
|
||||
assert(list("master", ".") == Nil)
|
||||
assert(list("master", "dir/subdir") == Nil)
|
||||
assert(list("main", ".") == Nil)
|
||||
assert(list("main", "dir/subdir") == Nil)
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "README.md", "body1", message = "commit1")
|
||||
createFile(git, "main", "README.md", "body1", message = "commit1")
|
||||
|
||||
assert(list("master", ".") == List(("README.md", "commit1", false)))
|
||||
assert(list("master", "dir/subdir") == Nil)
|
||||
assert(list("main", ".") == List(("README.md", "commit1", false)))
|
||||
assert(list("main", "dir/subdir") == Nil)
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "README.md", "body2", message = "commit2")
|
||||
createFile(git, "main", "README.md", "body2", message = "commit2")
|
||||
|
||||
assert(list("master", ".") == List(("README.md", "commit2", false)))
|
||||
assert(list("master", "dir/subdir") == Nil)
|
||||
assert(list("main", ".") == List(("README.md", "commit2", false)))
|
||||
assert(list("main", "dir/subdir") == Nil)
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "dir/subdir/File3.md", "body3", message = "commit3")
|
||||
createFile(git, "main", "dir/subdir/File3.md", "body3", message = "commit3")
|
||||
|
||||
assert(list("master", ".") == List(("dir/subdir", "commit3", true), ("README.md", "commit2", false)))
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false)))
|
||||
assert(list("main", ".") == List(("dir/subdir", "commit3", true), ("README.md", "commit2", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false)))
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "dir/subdir/File4.md", "body4", message = "commit4")
|
||||
createFile(git, "main", "dir/subdir/File4.md", "body4", message = "commit4")
|
||||
|
||||
assert(list("master", ".") == List(("dir/subdir", "commit4", true), ("README.md", "commit2", false)))
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", ".") == List(("dir/subdir", "commit4", true), ("README.md", "commit2", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "README5.md", "body5", message = "commit5")
|
||||
createFile(git, "main", "README5.md", "body5", message = "commit5")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("README.md", "commit2", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
createFile(git, "master", "README.md", "body6", message = "commit6")
|
||||
createFile(git, "main", "README.md", "body6", message = "commit6")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("branch", ".") == Nil)
|
||||
assert(list("branch", "dir/subdir") == Nil)
|
||||
|
||||
git.branchCreate().setName("branch").setStartPoint("master").call()
|
||||
git.branchCreate().setName("branch").setStartPoint("main").call()
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(
|
||||
list("branch", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
@@ -347,13 +347,13 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, "branch", "dir/subdir/File3.md", "body7", message = "commit7")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(
|
||||
list("branch", ".") == List(
|
||||
("dir/subdir", "commit7", true),
|
||||
@@ -363,17 +363,17 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
)
|
||||
assert(list("branch", "dir/subdir") == List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
|
||||
|
||||
createFile(git, "master", "dir8/File8.md", "body8", message = "commit8")
|
||||
createFile(git, "main", "dir8/File8.md", "body8", message = "commit8")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("dir8", "commit8", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(
|
||||
list("branch", ".") == List(
|
||||
("dir/subdir", "commit7", true),
|
||||
@@ -386,14 +386,14 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
createFile(git, "branch", "dir/subdir9/File9.md", "body9", message = "commit9")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir/subdir", "commit4", true),
|
||||
("dir8", "commit8", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
|
||||
assert(
|
||||
list("branch", ".") == List(
|
||||
("dir", "commit9", true),
|
||||
@@ -403,17 +403,17 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
)
|
||||
assert(list("branch", "dir/subdir") == List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
|
||||
|
||||
mergeAndCommit(git, "master", "branch", message = "merge10")
|
||||
mergeAndCommit(git, "main", "branch", message = "merge10")
|
||||
|
||||
assert(
|
||||
list("master", ".") == List(
|
||||
list("main", ".") == List(
|
||||
("dir", "commit9", true),
|
||||
("dir8", "commit8", true),
|
||||
("README.md", "commit6", false),
|
||||
("README5.md", "commit5", false)
|
||||
)
|
||||
)
|
||||
assert(list("master", "dir/subdir") == List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
|
||||
assert(list("main", "dir/subdir") == List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,10 +421,10 @@ class JGitUtilSpec extends AnyFunSuite {
|
||||
withTestRepository { git =>
|
||||
def list(branch: String, path: String) =
|
||||
JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory))
|
||||
createFile(git, "master", "README.md", "body1", message = "commit1")
|
||||
createFile(git, "main", "README.md", "body1", message = "commit1")
|
||||
createFile(git, "branch", "test/text2.txt", "body2", message = "commit2")
|
||||
mergeAndCommit(git, "master", "branch", message = "merge3")
|
||||
assert(list("master", "test") == List(("text2.txt", "commit2", false)))
|
||||
mergeAndCommit(git, "main", "branch", message = "merge3")
|
||||
assert(list("main", "test") == List(("text2.txt", "commit2", false)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -193,7 +193,8 @@ class AvatarImageProviderSpec extends AnyFunSpec {
|
||||
),
|
||||
repositoryViewer = RepositoryViewerSettings(
|
||||
maxFiles = 0
|
||||
)
|
||||
),
|
||||
"main"
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user