// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package repo
import (
"errors"
"fmt"
"net/http"
"strings"
"time"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/graceful"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/storage"
"code.gitea.io/gitea/modules/web"
archiver_service "code.gitea.io/gitea/services/archiver"
"code.gitea.io/gitea/services/forms"
repo_service "code.gitea.io/gitea/services/repository"
)
const (
tplCreate base.TplName = "repo/create"
tplAlertDetails base.TplName = "base/alert_details"
)
// MustBeNotEmpty render when a repo is a empty git dir
func MustBeNotEmpty(ctx *context.Context) {
if ctx.Repo.Repository.IsEmpty {
ctx.NotFound("MustBeNotEmpty", nil)
}
}
// MustBeEditable check that repo can be edited
func MustBeEditable(ctx *context.Context) {
if !ctx.Repo.Repository.CanEnableEditor() || ctx.Repo.IsViewCommit {
ctx.NotFound("", nil)
return
}
}
// MustBeAbleToUpload check that repo can be uploaded to
func MustBeAbleToUpload(ctx *context.Context) {
if !setting.Repository.Upload.Enabled {
ctx.NotFound("", nil)
}
}
func checkContextUser(ctx *context.Context, uid int64) *models.User {
orgs, err := models.GetOrgsCanCreateRepoByUserID(ctx.User.ID)
if err != nil {
ctx.ServerError("GetOrgsCanCreateRepoByUserID", err)
return nil
}
if !ctx.User.IsAdmin {
orgsAvailable := []*models.User{}
for i := 0; i < len(orgs); i++ {
if orgs[i].CanCreateRepo() {
orgsAvailable = append(orgsAvailable, orgs[i])
}
}
ctx.Data["Orgs"] = orgsAvailable
} else {
ctx.Data["Orgs"] = orgs
}
// Not equal means current user is an organization.
if uid == ctx.User.ID || uid == 0 {
return ctx.User
}
org, err := models.GetUserByID(uid)
if models.IsErrUserNotExist(err) {
return ctx.User
}
if err != nil {
ctx.ServerError("GetUserByID", fmt.Errorf("[%d]: %v", uid, err))
return nil
}
// Check ownership of organization.
if !org.IsOrganization() {
ctx.Error(http.StatusForbidden)
return nil
}
if !ctx.User.IsAdmin {
canCreate, err := org.CanCreateOrgRepo(ctx.User.ID)
if err != nil {
ctx.ServerError("CanCreateOrgRepo", err)
return nil
} else if !canCreate {
ctx.Error(http.StatusForbidden)
return nil
}
} else {
ctx.Data["Orgs"] = orgs
}
return org
}
func getRepoPrivate(ctx *context.Context) bool {
switch strings.ToLower(setting.Repository.DefaultPrivate) {
case setting.RepoCreatingLastUserVisibility:
return ctx.User.LastRepoVisibility
case setting.RepoCreatingPrivate:
return true
case setting.RepoCreatingPublic:
return false
default:
return ctx.User.LastRepoVisibility
}
}
// Create render creating repository page
func Create(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("new_repo")
// Give default value for template to render.
ctx.Data["Gitignores"] = models.Gitignores
ctx.Data["LabelTemplates"] = models.LabelTemplates
ctx.Data["Licenses"] = models.Licenses
ctx.Data["Readmes"] = models.Readmes
ctx.Data["readme"] = "Default"
ctx.Data["private"] = getRepoPrivate(ctx)
ctx.Data["IsForcedPrivate"] = setting.Repository.ForcePrivate
ctx.Data["default_branch"] = setting.Repository.DefaultBranch
ctxUser := checkContextUser(ctx, ctx.FormInt64("org"))
if ctx.Written() {
return
}
ctx.Data["ContextUser"] = ctxUser
ctx.Data["repo_template_name"] = ctx.Tr("repo.template_select")
templateID := ctx.FormInt64("template_id")
if templateID > 0 {
templateRepo, err := models.GetRepositoryByID(templateID)
if err == nil && templateRepo.CheckUnitUser(ctxUser, unit.TypeCode) {
ctx.Data["repo_template"] = templateID
ctx.Data["repo_template_name"] = templateRepo.Name
}
}
ctx.Data["CanCreateRepo"] = ctx.User.CanCreateRepo()
ctx.Data["MaxCreationLimit"] = ctx.User.MaxCreationLimit()
ctx.HTML(http.StatusOK, tplCreate)
}
func handleCreateError(ctx *context.Context, owner *models.User, err error, name string, tpl base.TplName, form interface{}) {
switch {
case models.IsErrReachLimitOfRepo(err):
ctx.RenderWithErr(ctx.Tr("repo.form.reach_limit_of_creation", owner.MaxCreationLimit()), tpl, form)
case models.IsErrRepoAlreadyExist(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), tpl, form)
case models.IsErrRepoFilesAlreadyExist(err):
ctx.Data["Err_RepoName"] = true
switch {
case ctx.IsUserSiteAdmin() || (setting.Repository.AllowAdoptionOfUnadoptedRepositories && setting.Repository.AllowDeleteOfUnadoptedRepositories):
ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.adopt_or_delete"), tpl, form)
case setting.Repository.AllowAdoptionOfUnadoptedRepositories:
ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.adopt"), tpl, form)
case setting.Repository.AllowDeleteOfUnadoptedRepositories:
ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.delete"), tpl, form)
default:
ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist"), tpl, form)
}
case models.IsErrNameReserved(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), tpl, form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), tpl, form)
default:
ctx.ServerError(name, err)
}
}
// CreatePost response for creating repository
func CreatePost(ctx *context.Context) {
form := web.GetForm(ctx).(*forms.CreateRepoForm)
ctx.Data["Title"] = ctx.Tr("new_repo")
ctx.Data["Gitignores"] = models.Gitignores
ctx.Data["LabelTemplates"] = models.LabelTemplates
ctx.Data["Licenses"] = models.Licenses
ctx.Data["Readmes"] = models.Readmes
ctx.Data["CanCreateRepo"] = ctx.User.CanCreateRepo()
ctx.Data["MaxCreationLimit"] = ctx.User.MaxCreationLimit()
ctxUser := checkContextUser(ctx, form.UID)
if ctx.Written() {
return
}
ctx.Data["ContextUser"] = ctxUser
if ctx.HasError() {
ctx.HTML(http.StatusOK, tplCreate)
return
}
var repo *models.Repository
var err error
if form.RepoTemplate > 0 {
opts := models.GenerateRepoOptions{
Name: form.RepoName,
Description: form.Description,
Private: form.Private,
GitContent: form.GitContent,
Topics: form.Topics,
GitHooks: form.GitHooks,
Webhooks: form.Webhooks,
Avatar: form.Avatar,
IssueLabels: form.Labels,
}
if !opts.IsValid() {
ctx.RenderWithErr(ctx.Tr("repo.template.one_item"), tplCreate, form)
return
}
templateRepo := getRepository(ctx, form.RepoTemplate)
if ctx.Written() {
return
}
if !templateRepo.IsTemplate {
ctx.RenderWithErr(ctx.Tr("repo.template.invalid"), tplCreate, form)
return
}
repo, err = repo_service.GenerateRepository(ctx.User, ctxUser, templateRepo, opts)
if err == nil {
log.Trace("Repository generated [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)
ctx.Redirect(repo.Link())
return
}
} else {
repo, err = repo_service.CreateRepository(ctx.User, ctxUser, models.CreateRepoOptions{
Name: form.RepoName,
Description: form.Description,
Gitignores: form.Gitignores,
IssueLabels: form.IssueLabels,
License: form.License,
Readme: form.Readme,
IsPrivate: form.Private || setting.Repository.ForcePrivate,
DefaultBranch: form.DefaultBranch,
AutoInit: form.AutoInit,
IsTemplate: form.Template,
TrustModel: models.ToTrustModel(form.TrustModel),
})
if err == nil {
log.Trace("Repository created [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)
ctx.Redirect(repo.Link())
return
}
}
handleCreateError(ctx, ctxUser, err, "CreatePost", tplCreate, &form)
}
// Action response for actions to a repository
func Action(ctx *context.Context) {
var err error
switch ctx.Params(":action") {
case "watch":
err = models.WatchRepo(ctx.User.ID, ctx.Repo.Repository.ID, true)
case "unwatch":
err = models.WatchRepo(ctx.User.ID, ctx.Repo.Repository.ID, false)
case "star":
err = models.StarRepo(ctx.User.ID, ctx.Repo.Repository.ID, true)
case "unstar":
err = models.StarRepo(ctx.User.ID, ctx.Repo.Repository.ID, false)
case "accept_transfer":
err = acceptOrRejectRepoTransfer(ctx, true)
case "reject_transfer":
err = acceptOrRejectRepoTransfer(ctx, false)
case "desc": // FIXME: this is not used
if !ctx.Repo.IsOwner() {
ctx.Error(http.StatusNotFound)
return
}
ctx.Repo.Repository.Description = ctx.FormString("desc")
ctx.Repo.Repository.Website = ctx.FormString("site")
err = models.UpdateRepository(ctx.Repo.Repository, false)
}
if err != nil {
ctx.ServerError(fmt.Sprintf("Action (%s)", ctx.Params(":action")), err)
return
}
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.Repo.RepoLink)
}
func acceptOrRejectRepoTransfer(ctx *context.Context, accept bool) error {
repoTransfer, err := models.GetPendingRepositoryTransfer(ctx.Repo.Repository)
if err != nil {
return err
}
if err := repoTransfer.LoadAttributes(); err != nil {
return err
}
if !repoTransfer.CanUserAcceptTransfer(ctx.User) {
return errors.New("user does not have enough permissions")
}
if accept {
if err := repo_service.TransferOwnership(repoTransfer.Doer, repoTransfer.Recipient, ctx.Repo.Repository, repoTransfer.Teams); err != nil {
return err
}
ctx.Flash.Success(ctx.Tr("repo.settings.transfer.success"))
} else {
if err := models.CancelRepositoryTransfer(ctx.Repo.Repository); err != nil {
return err
}
ctx.Flash.Success(ctx.Tr("repo.settings.transfer.rejected"))
}
ctx.Redirect(ctx.Repo.Repository.HTMLURL())
return nil
}
// RedirectDownload return a file based on the following infos:
func RedirectDownload(ctx *context.Context) {
var (
vTag = ctx.Params("vTag")
fileName = ctx.Params("fileName")
)
tagNames := []string{vTag}
curRepo := ctx.Repo.Repository
releases, err := models.GetReleasesByRepoIDAndNames(db.DefaultContext, curRepo.ID, tagNames)
if err != nil {
if models.IsErrAttachmentNotExist(err) {
ctx.Error(http.StatusNotFound)
return
}
ctx.ServerError("RedirectDownload", err)
return
}
if len(releases) == 1 {
release := releases[0]
att, err := models.GetAttachmentByReleaseIDFileName(release.ID, fileName)
if err != nil {
ctx.Error(http.StatusNotFound)
return
}
if att != nil {
ctx.Redirect(att.DownloadURL())
return
}
}
ctx.Error(http.StatusNotFound)
}
// Download an archive of a repository
func Download(ctx *context.Context) {
uri := ctx.Params("*")
aReq, err := archiver_service.NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, uri)
if err != nil {
ctx.ServerError("archiver_service.NewRequest", err)
return
}
if aReq == nil {
ctx.Error(http.StatusNotFound)
return
}
archiver, err := models.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID)
if err != nil {
ctx.ServerError("models.GetRepoArchiver", err)
return
}
if archiver != nil && archiver.Status == models.RepoArchiverReady {
download(ctx, aReq.GetArchiveName(), archiver)
return
}
if err := archiver_service.StartArchive(aReq); err != nil {
ctx.ServerError("archiver_service.StartArchive", err)
return
}
var times int
var t = time.NewTicker(time.Second * 1)
defer t.Stop()
for {
select {
case <-graceful.GetManager().HammerContext().Done():
log.Warn("exit archive download because system stop")
return
case <-t.C:
if times > 20 {
ctx.ServerError("wait download timeout", nil)
return
}
times++
archiver, err = models.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID)
if err != nil {
ctx.ServerError("archiver_service.StartArchive", err)
return
}
if archiver != nil && archiver.Status == models.RepoArchiverReady {
download(ctx, aReq.GetArchiveName(), archiver)
return
}
}
}
}
func download(ctx *context.Context, archiveName string, archiver *models.RepoArchiver) {
downloadName := ctx.Repo.Repository.Name + "-" + archiveName
rPath, err := archiver.RelativePath()
if err != nil {
ctx.ServerError("archiver.RelativePath", err)
return
}
if setting.RepoArchive.ServeDirect {
//If we have a signed url (S3, object storage), redirect to this directly.
u, err := storage.RepoArchives.URL(rPath, downloadName)
if u != nil && err == nil {
ctx.Redirect(u.String())
return
}
}
//If we have matched and access to release or issue
fr, err := storage.RepoArchives.Open(rPath)
if err != nil {
ctx.ServerError("Open", err)
return
}
defer fr.Close()
ctx.ServeStream(fr, downloadName)
}
// InitiateDownload will enqueue an archival request, as needed. It may submit
// a request that's already in-progress, but the archiver service will just
// kind of drop it on the floor if this is the case.
func InitiateDownload(ctx *context.Context) {
uri := ctx.Params("*")
aReq, err := archiver_service.NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, uri)
if err != nil {
ctx.ServerError("archiver_service.NewRequest", err)
return
}
if aReq == nil {
ctx.Error(http.StatusNotFound)
return
}
archiver, err := models.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID)
if err != nil {
ctx.ServerError("archiver_service.StartArchive", err)
return
}
if archiver == nil || archiver.Status != models.RepoArchiverReady {
if err := archiver_service.StartArchive(aReq); err != nil {
ctx.ServerError("archiver_service.StartArchive", err)
return
}
}
var completed bool
if archiver != nil && archiver.Status == models.RepoArchiverReady {
completed = true
}
ctx.JSON(http.StatusOK, map[string]interface{}{
"complete": completed,
})
}
ble30
backport/46218/stable27
backport/46218/stable28
backport/46218/stable29
backport/46218/stable30
backport/46222/stable30
backport/46480/stable28
backport/46480/stable29
backport/46534/stable27
backport/46691/stable30
backport/46931/stable28
backport/47180/stable26
backport/47180/stable28
backport/47265/stable30
backport/47316/stable28
backport/47316/stable29
backport/47316/stable30
backport/47339/stable28
backport/47339/stable29
backport/47339/stable30
backport/47349/stable28
backport/47349/stable29
backport/47349/stable30
backport/47399/stable30
backport/47425/stable28
backport/47425/stable29
backport/47425/stable30
backport/47441/stable29
backport/47510/stable29
backport/47515/stable29
backport/47527/stable30
backport/47628/stable29
backport/47640/stable29
backport/47649/stable28
backport/47649/stable29
backport/47670/stable30
backport/47737/stable30
backport/47745/stable28
backport/47756/stable29
backport/47756/stable30
backport/47801/stable30
backport/47807/stable29
backport/47824/stable30
backport/47832/stable28
backport/47832/stable29
backport/47832/stable30
backport/47834/stable28
backport/47834/stable29
backport/47834/stable30
backport/47846/stable28
backport/47846/stable29
backport/47846/stable30
backport/47847/stable28
backport/47847/stable29
backport/47847/stable30
backport/47848/stable28
backport/47848/stable29
backport/47848/stable30
backport/47852/stable30
backport/47853/stable29
backport/47854/stable28
backport/47854/stable29
backport/47854/stable30
backport/47858/stable28
backport/47858/stable29
backport/47858/stable30
backport/47860/stable28
backport/47860/stable29
backport/47881/stable29
backport/47881/stable30
backport/47883/stable29
backport/47883/stable30
backport/47896/stable28
backport/47896/stable29
backport/47896/stable30
backport/47905/stable29
backport/47905/stable30
backport/47910/stable28
backport/47910/stable29
backport/47910/stable30
backport/47914/stable28
backport/47914/stable29
backport/47914/stable30
backport/47920/stable28
backport/47920/stable29
backport/47920/stable30
backport/47924/stable28
backport/47924/stable29
backport/47924/stable30
backport/47928/stable28
backport/47928/stable29
backport/47928/stable30
backport/47933/stable28
backport/47933/stable29
backport/47933/stable30
backport/47954/stable28
backport/47954/stable29
backport/47954/stable30
backport/47971/stable28
backport/47971/stable29
backport/47971/stable30
backport/47986/stable28
backport/47986/stable29
backport/48008/stable28
backport/48008/stable29
backport/48008/stable30
backport/48013/stable28
backport/48013/stable29
backport/48013/stable30
backport/48014/stable28
backport/48014/stable29
backport/48014/stable30
backport/48015/stable28
backport/48015/stable29
backport/48015/stable30
backport/48016/stable29
backport/48016/stable30
backport/48017/stable28
backport/48017/stable29
backport/48017/stable30
backport/48028/stable30
backport/48030/stable28
backport/48030/stable29
backport/48030/stable30
backport/48031/stable29
backport/48031/stable30
backport/48037/stable30
backport/48043/stable28
backport/48043/stable29
backport/48043/stable30
backport/48044/stable29
backport/48044/stable30
backport/48045/stable28
backport/48045/stable29
backport/48045/stable30
backport/48050/stable28
backport/48050/stable29
backport/48050/stable30
backport/48063/stable30
backport/48080/stable28
backport/48080/stable29
backport/48080/stable30
backport/48081/stable28
backport/48081/stable29
backport/48081/stable30
backport/48090/stable29
backport/48090/stable30
backport/48094/stable28
backport/48094/stable29
backport/48094/stable30
backport/48114/stable28
backport/48114/stable29
backport/48114/stable30
backport/48134/stable30
backport/48140/stable30
backport/48142/stable25
backport/48142/stable26
backport/48142/stable27
backport/48142/stable28
backport/48142/stable29
backport/48145/stable28
backport/48145/stable29
backport/48145/stable30
backport/48153/stable30
backport/48160/stable30
backport/48162/stable30
backport/48177/stable28
backport/48177/stable29
backport/48177/stable30
backport/48205/stable28
backport/48205/stable29
backport/48207/stable28
backport/48207/stable29
backport/48207/stable30
backport/48215/stable30
backport/48222/stable30
backport/48224/stable30
backport/48227/stable30
backport/48235/stable29
backport/48235/stable30
backport/48266/stable28
backport/48266/stable29
backport/48266/stable30
backport/48268/stable28
backport/48268/stable29
backport/48268/stable30
backport/48282/stable24
backport/48282/stable25
backport/48282/stable26
backport/48282/stable27
backport/48282/stable28
backport/48282/stable29
backport/48294/master
backport/48297/stable25
backport/48297/stable26
backport/48307/stable28
backport/48307/stable29
backport/48307/stable30
backport/48311/stable29
backport/48311/stable30
backport/48315/stable28
backport/48331/stable28
backport/48331/stable29
backport/48331/stable30
backport/48345/stable28
backport/48345/stable29
backport/48345/stable30
backport/48354/stable28
backport/48354/stable29
backport/48354/stable30
backport/48356/stable30
backport/48359/stable25
backport/48359/stable26
backport/48359/stable27
backport/48359/stable28
backport/48359/stable29
backport/48359/stable30
backport/48361/stable28
backport/48361/stable29
backport/48361/stable30
backport/48366/stable28
backport/48366/stable29
backport/48366/stable30
backport/48373/stable28
backport/48373/stable29
backport/48373/stable30
backport/48375/stable28
backport/48375/stable29
backport/48375/stable30
backport/48381/stable30
backport/48425/stable29
backport/48425/stable30
backport/48426/stable28
backport/48426/stable29
backport/48426/stable30
backport/48437/stable28
backport/48437/stable29
backport/48437/stable30
backport/48439/stable30
backport/48445/stable27
backport/48451/stable29
backport/48451/stable30
backport/48466/stable28
backport/48466/stable29
backport/48466/stable30
backport/48480/stable30
backport/48484/stable29
backport/48484/stable30
backport/48486/stable30
backport/48508/stable30
backport/48510/stable25
backport/48510/stable26
backport/48510/stable27
backport/48512/stable30
backport/48513/stable30
backport/48519/stable29
backport/48519/stable30
backport/48520/stable30
backport/48522/stable30
backport/48532/stable28
backport/48532/stable29
backport/48532/stable30
backport/48538/stable30
backport/48539/stable28
backport/48539/stable29
backport/48540/stable30
backport/48542/stable30
backport/48543/stable30
backport/48548/stable30
backport/48559/stable30
backport/48563/stable30
backport/48572/stable30
backport/48583/stable28
backport/48583/stable29
backport/48583/stable30
backport/48584/stable28
backport/48584/stable29
backport/48584/stable30
backport/48597/stable28
backport/48597/stable29
backport/48597/stable30
backport/48600/stable28
backport/48600/stable29
backport/48600/stable30
backport/48603/stable28
backport/48603/stable29
backport/48603/stable30
backport/48619/stable30
backport/48623/stable28
backport/48623/stable29
backport/48623/stable30
backport/48625/stable29
backport/48625/stable30
backport/48628/stable30
backport/48632/stable29
backport/48632/stable30
backport/48638/stable30
backport/48665/stable30
backport/48673/stable28
backport/48673/stable29
backport/48673/stable30
backport/48675/stable28
backport/48675/stable29
backport/48675/stable30
backport/48682/stable28
backport/48682/stable29
backport/48682/stable30
backport/48684/stable28
backport/48684/stable29
backport/48684/stable30
backport/48689/stable29
backport/48689/stable30
backport/48696/stable28
backport/48696/stable29
backport/48696/stable30
backport/48723/stable30
backport/48728/stable30
backport/48736/stable27
backport/48736/stable28
backport/48736/stable29
backport/48736/stable30
backport/48737/stable30
backport/48743/stable29
backport/48743/stable30
backport/48749/stable27
backport/48760/stable30
backport/48766/stable28
backport/48766/stable29
backport/48766/stable30
backport/48769/stable29
backport/48769/stable30
backport/48787/stable30
backport/48788/stable27
backport/48788/stable28
backport/48788/stable29
backport/48788/stable30
backport/48799/stable30
backport/48809/stable30
backport/48824/stable29
backport/48833/stable30
backport/48839/stable28
backport/48839/stable29
backport/48839/stable30
backport/48850/stable30
backport/48852/stable30
backport/48853/stable30
backport/48854/stable30
backport/48863/stable30
backport/48871/stable29
backport/48871/stable30
backport/48882/stable30
backport/48887/stable29
backport/48887/stable30
backport/48889/stable28
backport/48898/stable28
backport/48898/stable29
backport/48898/stable30
backport/48912/stable30
backport/48915/stable28
backport/48915/stable29
backport/48915/stable30
backport/48917/stable25
backport/48917/stable26
backport/48917/stable27
backport/48917/stable28
backport/48917/stable29
backport/48917/stable30
backport/48918/stable28
backport/48918/stable29
backport/48918/stable30
backport/48921/stable25
backport/48921/stable26
backport/48921/stable27
backport/48921/stable28
backport/48921/stable29
backport/48921/stable30
backport/48933/stable28
backport/48933/stable29
backport/48933/stable30
backport/48934/stable28
backport/48947/stable28
backport/48947/stable29
backport/48947/stable30
backport/48991/stable29
backport/48991/stable30
backport/48992/stable27
backport/48992/stable28
backport/48992/stable29
backport/48992/stable30
backport/49004/stable28
backport/49004/stable29
backport/49004/stable30
backport/49009/49009-stable29
backport/49009/stable25
backport/49009/stable26
backport/49009/stable27
backport/49009/stable28
backport/49009/stable30
backport/49017/stable28
backport/49017/stable29
backport/49017/stable30
backport/49023/stable28
backport/49023/stable29
backport/49023/stable30
backport/49039/stable30
backport/49053/stable28
backport/49053/stable29
backport/49053/stable30
backport/49057/master
backport/49065/stable28
backport/49065/stable29
backport/49065/stable30
backport/49075/stable30
backport/49076/stable28
backport/49076/stable29
backport/49112/stable28
backport/49112/stable29
backport/49112/stable30
backport/49115/stable28
backport/49115/stable30
backport/49130/stable29
backport/49130/stable30
backport/49134/stable30
backport/49139/stable28
backport/49139/stable29
backport/49139/stable30
backport/49143/stable28
backport/49143/stable29
backport/49143/stable30
backport/49146/stable28
backport/49146/stable29
backport/49146/stable30
backport/49147/stable30
backport/49150/stable28
backport/49150/stable29
backport/49150/stable30
backport/49153/stable28
backport/49153/stable29
backport/49176/stable30
backport/49196/stable28
backport/49196/stable29
backport/49196/stable30
backport/49199/stable28
backport/49199/stable29
backport/49199/stable30
backport/49203/stable29
backport/49203/stable30
backport/49208/stable29
backport/49208/stable30
backport/49209/stable30
backport/49218/stable28
backport/49218/stable29
backport/49218/stable30
backport/49219/stable30
backport/49225/stable28
backport/49225/stable29
backport/49225/stable30
backport/49226/stable30
backport/49232/stable28
backport/49232/stable29
backport/49232/stable30
backport/49237/stable30
backport/49259/stable30
backport/49260/stable30
backport/49261/stable30
backport/49262/stable28
backport/49262/stable29
backport/49271/stable29
backport/49271/stable30
backport/49281/stable30
backport/49288/stable29
backport/49288/stable30
backport/49293/stable30
backport/49308/stable29
backport/49308/stable30
backport/49311/stable28
backport/49311/stable29
backport/49311/stable30
backport/49315/stable28
backport/49315/stable29
backport/49315/stable30
backport/49332/stable28
backport/49332/stable29
backport/49332/stable30
backport/49346/stable30
backport/49351/stable29
backport/49351/stable30
backport/49357/stable30
backport/49361/stable28
backport/49361/stable29
backport/49361/stable30
backport/49372/stable28
backport/49372/stable29
backport/49372/stable30
backport/49373/stable29
backport/49380/stable30
backport/49384/master
backport/49398/stable29
backport/49398/stable30
backport/49432/master
backport/49432/stable30
backport/49434/stable30
backport/49442/stable28
backport/49442/stable29
backport/49442/stable30
backport/49451/stable29
backport/49451/stable30
backport/49454/stable28
backport/49454/stable29
backport/49454/stable30
backport/49459/stable30
backport/49464/stable28
backport/49464/stable29
backport/49464/stable30
backport/49476/stable28
backport/49476/stable29
backport/49476/stable30
backport/49477/stable30
backport/49489/stable30
backport/49493/stable28
backport/49494/stable29
backport/49494/stable29-squashed
backport/49494/stable30
backport/49503/stable28
backport/49503/stable29
backport/49503/stable30
backport/49528/stable28
backport/49528/stable29
backport/49528/stable30
backport/49551/stable29
backport/49551/stable30
backport/49552/stable28
backport/49552/stable29
backport/49552/stable30
backport/49557/stable30
backport/49569/stable29
backport/49569/stable30
backport/49581/stable28
backport/49581/stable30
backport/49587/stable30
backport/49588/stable29
backport/49588/stable30
backport/49602/stable28
backport/49602/stable29
backport/49602/stable30
backport/49629/stable29
backport/49631/stable29
backport/49677/stable30
backport/49681/stable29
backport/49681/stable30
backport/49685/stable28
backport/49685/stable29
backport/49685/stable30
backport/49693/stable29
backport/49693/stable30
backport/49694/stable30
backport/49746/stable30
backport/49747/stable27
backport/49747/stable28
backport/49747/stable29
backport/49747/stable30
backport/49799/stable28
backport/49799/stable29
backport/49799/stable30
backport/49801/stable30
backport/49803/stable29
backport/49803/stable30
backport/49815/stable28
backport/49815/stable29
backport/49820/stable30
backport/49822/stable28
backport/49822/stable29
backport/49832/stable30
backport/49839/stable29
backport/49839/stable30
backport/49843/stable29
backport/49843/stable30
backport/49847/stable30
backport/49852/stable30
backport/49880/stable28
backport/49880/stable30
backport/49882/stable28
backport/49882/stable29
backport/49885/stable30
backport/49887/stable29
backport/49887/stable30
backport/49898/stable30
backport/49900/stable29
backport/49917/stable30
backport/49927/stable28
backport/49962/stable29
backport/49962/stable30
backport/49966/stable29
backport/49966/stable30
backport/49973/master
backport/49974/stable29
backport/49974/stable30
backport/49988/stable29
backport/49988/stable30
backport/50017/stable29
backport/50017/stable30
backport/50025/stable29
backport/50025/stable30
backport/50026/stable29
backport/50026/stable30
backport/50034/stable29
backport/50034/stable30
backport/50035/stable28
backport/50035/stable29
backport/50035/stable30
backport/50046/stable29
backport/50046/stable30
backport/50070/stable29
backport/50070/stable30
backport/50076/stable29
backport/50076/stable30
backport/50111/stable29
backport/50111/stable30
backport/50113/stable29
backport/50113/stable30
backport/50123/master
backport/50123/stable29
backport/50123/stable30
backport/50128/stable29
backport/50128/stable30
backport/50152/stable29
backport/50152/stable30
backport/50154/stable29
backport/50161/stable29
backport/50161/stable30
backport/50177/stable29
backport/50177/stable30
backport/50179/stable30
backport/50187/stable30
backport/50192/stable28
backport/50192/stable29
backport/50192/stable30
backport/50193/stable29
backport/50220/stable30
backport/50237/stable29
backport/50241/stable30
backport/50319/stable29
backport/50319/stable30
backport/cachebuster-stable30
backport/dav-get
backport/fix-files-title
backportArrayKeySetupCheks
block-dav-move-parent
bug/19494/insert-ignore-conflict-for-filecache-extended
bug/48518/ignore-invalid-dates
bug/48678/restore-dav-error-response
bug/48678/restore-dav-error-response-2
bug/49395/handle-multiple-tags
bug/noid/codeowners-caldav-carddav
bug/noid/drop-group-exists-cache-fetch-list-of-groups
bug/noid/federated-addressbook-sync-without-localaddressallowed
bug/noid/more-routing-weirdness
bug/noid/profile-clear-not-working
bug/noid/skip-exceptions-in-transfer-ownership
bug/noid/weird-ldap-caching
bugfix/45481/controller-parameter-overwrite
bugfix/47658/dont-fail-precondition-if-unset
bugfix/cleanup-s3-multipart
bugfix/error-on-reshare-after-transfer-ownership
bugfix/exception-appscreenshot-notstring
bugfix/fix-service-worker-scope
bugfix/noid/add-missing-blurhash
bugfix/noid/allow-ratelimit-bypass
bugfix/noid/allow-to-fail-fake-AI-providers
bugfix/noid/allow-to-force-db-throttler
bugfix/noid/allow-to-get-permissions-of-a-principal
bugfix/noid/array-keys
bugfix/noid/censor-more-values
bugfix/noid/compatibility-with-30
bugfix/noid/consistent-handling-of-SensitiveParameter
bugfix/noid/copy-better-typing-from-notifications-app
bugfix/noid/create-a-gap-before-files
bugfix/noid/document-icon-requirements
bugfix/noid/fix-download-activity-parameters
bugfix/noid/fix-oauth2-owncloud-migration
bugfix/noid/fix-otf-loading
bugfix/noid/fix-rtl-language-list
bugfix/noid/fix-tainted-file-appinfo
bugfix/noid/improve-installation-speed-of-oracle
bugfix/noid/increase-exclude-list
bugfix/noid/mark-more-configs-as-sensitive
bugfix/noid/more-reliable-tests
bugfix/noid/oracle-federation
bugfix/noid/prevent-infitnite-loop
bugfix/noid/remove-3rdparty-use
bugfix/noid/remove-more-withConsecutive
bugfix/noid/run-all-unit-tests
bugfix/noid/skip-future-shipped-apps-from-updatenotification-check
bugfix/noid/update-opendyslexic
bugfix/noid/update-phpunit
bugfix/noid/validate-parameter-keys
bugfix/trim-tags
build/autoloader/remove-noisy-changes
build/psalm/unstable-namespace
build/translation-checker-print-rtl-limited-characters
cache-delete-notfound-size
catchNullHash
certificate-manager-fallback
check-phpoutdated
checkColExists
chore/48408/rename-twitter-to-x
chore/48409/replace-diaspora-and-twitter
chore/add-deprecation-date
chore/cleanup-warnings
chore/cypress-typos
chore/deps/nextcloud-calendar-availability-vue-2.2.5
chore/deps/nextcloud-calendar-availability-vue-2.2.6
chore/deps/nextcloud-coding-standard
chore/deps/nextcloud-vue-8.22.0
chore/deps/openapi-extractor
chore/drop-skjnldsv/sanitize-svg
chore/files-consolitate-route-logic
chore/first-login-hours-minutes
chore/force-style-lint
chore/gender-neutral-language
chore/github/groupware-code-owners-update
chore/lazy-mount-providers
chore/legacy-updatenotification
chore/migrate-encryption-away-from-hooks
chore/migrate-vite
chore/ncselect-label-warning
chore/nextcloud-dialogs
chore/nextcloud-dialogs-master
chore/nextcloud-dialogs-stable29
chore/nextcloud-vue-8.13.0
chore/node-moved-old-node
chore/noid/coverage
chore/noid/git-blame-ignore-revs
chore/prepare-oc_repair-unit10
chore/remove-deprecated-aliases
chore/remove-ijob-execute
chore/remove-ilogger
chore/remove-legacy-files-scripts
chore/remove-legacy-settings-fors
chore/remove-old-test
chore/remove-travis
chore/stable30-doctrine
chore/symfony-http
chore/symfony-process
chore/update-gw-codeowners-2
chore/update-nc-libs-stable29
chore/update-nc-libs-stable30
chore/update-sass-loader
chore/update_mysql_setup_check_i18n
chore/use-nextcloud-cypress-docker-node
chore/use-public-api-helper
ci-fix-30
ci/49145/php-8.4-external-storages
ci/noid/debug-broken-ci
ci/noid/enable-required-php-extensions
ci/noid/improve-running-psalm-locally
ci/noid/php-8.4
ci/noid/prepare-phpunit-10
ci/noid/require-up-to-date-psalm-paseline
ci/noid/skip-other-vendor-bins-when-only-running-psalm
ci/noid/try-to-fix-smb-kerberos
ci/noid/update-integration-test-stuff
ci/oracle
ci/oracle-2
ci/phpunit-10
ci/psalm/imagick-extension
ci/revert/47342
clean/version-ocp
cleanup/event/trashbin
clear-pending-two-factor-tokens-also-from-configuration
clearKeysInBatches
config-carddav-sync-request-timeout
container-optimizations
contctsinteraction-usersetting
copy-share-unmasked
copy-update-cache-excluded
dav-fix-birthday-sync
dav-open-log-path
dav-push-sync
dav-webcal-default-refresh-rate
davTagColor
db-error-logging-27
db-error-logging-28
dbQueriesExecStmt
dbQueriesExecStmt2
dbQueriesExecStmt3
dbQueriesToMaster
debt/noid/ignore-docker-image-lock-file
debt/noid/user-changed-event
debug-cypress-grid-view
debug-file-exists-backtrace
debug/66440/logs-for-debugging-slow-user-list
debug/doctrine/dbal
debug/noid/imaginary
debug/noid/log-ram-usage-with-threshold
debug/noid/log-reason-token-mismatch
debug/noid/log-reason-token-mismatch-stable27
debug/preview-invalid-id
debug/snae
def-share-provider-filecache-joins
deleteExistingTarget
dependabot/composer/aws/aws-sdk-php-3.324.13
dependabot/composer/build/integration/behat/behat-3.17.0
dependabot/composer/build/integration/behat/behat-3.18.1
dependabot/composer/doctrine/dbal-3.9.x
dependabot/composer/doctrine/dbal-4.0.4
dependabot/composer/giggsey/libphonenumber-for-php-lite-8.13.45
dependabot/composer/giggsey/libphonenumber-for-php-lite-8.13.48
dependabot/composer/guzzlehttp/guzzle-7.9.2
dependabot/composer/laravel/serializable-closure-1.3.5
dependabot/composer/mlocati/ip-lib-1.18.1
dependabot/composer/sabre/dav-4.7.0
dependabot/composer/stable28/aws/aws-sdk-php-3.240.11
dependabot/composer/stable30/doctrine/dbal-3.9.1
dependabot/composer/stable30/giggsey/libphonenumber-for-php-lite-8.13.45
dependabot/composer/stable30/guzzlehttp/guzzle-7.8.2
dependabot/composer/stable30/laravel/serializable-closure-1.3.5
dependabot/composer/stable30/symfony-6.4
dependabot/composer/stable30/web-auth/webauthn-lib-4.8.7
dependabot/composer/symfony-6.4
dependabot/composer/symfony/string-6.4.13
dependabot/composer/vendor-bin/cs-fixer/nextcloud/coding-standard-1.3.0
dependabot/composer/vendor-bin/cs-fixer/nextcloud/coding-standard-1.3.2
dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.0.1
dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.1.0
dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.2.2
dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.3.0
dependabot/composer/web-auth/webauthn-lib-4.9.1
dependabot/github_actions/github-actions-52fdf4f9c4
dependabot/github_actions/github-actions-560ea78344
dependabot/github_actions/github-actions-74498d6e3a
dependabot/github_actions/github-actions-aa3137d618
dependabot/npm_and_yarn/babel-loader-9.2.1
dependabot/npm_and_yarn/babel/node-7.25.7
dependabot/npm_and_yarn/babel/node-7.26.0
dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.4
dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.7
dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.9
dependabot/npm_and_yarn/core-js-3.39.0
dependabot/npm_and_yarn/core-js-3.40.0
dependabot/npm_and_yarn/cross-spawn-7.0.6
dependabot/npm_and_yarn/cypress-13.15.0
dependabot/npm_and_yarn/debounce-2.1.1
dependabot/npm_and_yarn/debounce-2.2.0
dependabot/npm_and_yarn/dompurify-3.1.7
dependabot/npm_and_yarn/elliptic-6.6.0
dependabot/npm_and_yarn/eslint-plugin-cypress-4.1.0
dependabot/npm_and_yarn/focus-trap-7.6.0
dependabot/npm_and_yarn/jquery-ui-1.14.0
dependabot/npm_and_yarn/jquery-ui-1.14.1
dependabot/npm_and_yarn/libphonenumber-js-1.11.16
dependabot/npm_and_yarn/libphonenumber-js-1.11.17
dependabot/npm_and_yarn/libphonenumber-js-1.11.9
dependabot/npm_and_yarn/marked-14.1.1
dependabot/npm_and_yarn/marked-15.0.0
dependabot/npm_and_yarn/marked-15.0.4
dependabot/npm_and_yarn/mime-4.0.6
dependabot/npm_and_yarn/multi-206390e743
dependabot/npm_and_yarn/multi-2299424a7d
dependabot/npm_and_yarn/multi-9423f4c335
dependabot/npm_and_yarn/multi-cf87d80143
dependabot/npm_and_yarn/multi-d66d039ac5
dependabot/npm_and_yarn/nanoid-3.3.8
dependabot/npm_and_yarn/nextcloud/axios-2.5.1
dependabot/npm_and_yarn/nextcloud/calendar-availability-vue-2.2.4
dependabot/npm_and_yarn/nextcloud/cypress-1.0.0-beta.12
dependabot/npm_and_yarn/nextcloud/cypress-1.0.0-beta.9
dependabot/npm_and_yarn/nextcloud/password-confirmation-5.3.1
dependabot/npm_and_yarn/nextcloud/upload-1.6.1
dependabot/npm_and_yarn/nextcloud/vue-8.19.0
dependabot/npm_and_yarn/nextcloud/vue-8.20.0
dependabot/npm_and_yarn/node-vibrant-4.0.3
dependabot/npm_and_yarn/pinia-2.2.6
dependabot/npm_and_yarn/pinia-2.3.0
dependabot/npm_and_yarn/pinia/testing-0.1.6
dependabot/npm_and_yarn/pinia/testing-0.1.7
dependabot/npm_and_yarn/puppeteer-23.10.4
dependabot/npm_and_yarn/puppeteer-23.4.1
dependabot/npm_and_yarn/puppeteer-23.5.0
dependabot/npm_and_yarn/query-string-9.1.1
dependabot/npm_and_yarn/sass-1.79.3
dependabot/npm_and_yarn/sass-1.81.0
dependabot/npm_and_yarn/sass-loader-16.0.3
dependabot/npm_and_yarn/simplewebauthn/browser-11.0.0
dependabot/npm_and_yarn/simplewebauthn/types-12.0.0
dependabot/npm_and_yarn/stable28/babel/preset-typescript-7.24.7
dependabot/npm_and_yarn/stable28/browserslist-useragent-regexp-4.1.3
dependabot/npm_and_yarn/stable28/cypress-13.13.3
dependabot/npm_and_yarn/stable28/cypress-if-1.12.6
dependabot/npm_and_yarn/stable28/cypress/vue2-2.1.1
dependabot/npm_and_yarn/stable28/dompurify-3.1.7
dependabot/npm_and_yarn/stable28/karma-6.4.4
dependabot/npm_and_yarn/stable28/libphonenumber-js-1.10.64
dependabot/npm_and_yarn/stable28/moment-timezone-0.5.46
dependabot/npm_and_yarn/stable28/nextcloud/calendar-availability-vue-2.2.4
dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.10
dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.12
dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.9
dependabot/npm_and_yarn/stable28/nextcloud/dialogs-5.3.8
dependabot/npm_and_yarn/stable28/nextcloud/moment-1.3.2
dependabot/npm_and_yarn/stable28/nextcloud/password-confirmation-5.1.1
dependabot/npm_and_yarn/stable28/nextcloud/sharing-0.2.4
dependabot/npm_and_yarn/stable28/pinia-2.2.8
dependabot/npm_and_yarn/stable28/pinia/testing-0.1.6
dependabot/npm_and_yarn/stable28/pinia/testing-0.1.7
dependabot/npm_and_yarn/stable28/testing-library/jest-dom-6.4.8
dependabot/npm_and_yarn/stable28/types/jest-29.5.14
dependabot/npm_and_yarn/stable28/underscore-1.13.7
dependabot/npm_and_yarn/stable29/debounce-2.1.1
dependabot/npm_and_yarn/stable29/dockerode-4.0.3
dependabot/npm_and_yarn/stable29/dockerode-4.0.4
dependabot/npm_and_yarn/stable29/dompurify-3.1.7
dependabot/npm_and_yarn/stable29/jquery-ui-1.13.3
dependabot/npm_and_yarn/stable29/jsdoc-4.0.3
dependabot/npm_and_yarn/stable29/jsdoc-4.0.4
dependabot/npm_and_yarn/stable29/mime-4.0.6
dependabot/npm_and_yarn/stable29/moment-timezone-0.5.46
dependabot/npm_and_yarn/stable29/nextcloud/cypress-1.0.0-beta.12
dependabot/npm_and_yarn/stable29/nextcloud/files-3.10.1
dependabot/npm_and_yarn/stable29/nextcloud/sharing-0.2.4
dependabot/npm_and_yarn/stable29/nextcloud/upload-1.7.1
dependabot/npm_and_yarn/stable29/nextcloud/vue-8.17.1
dependabot/npm_and_yarn/stable29/pinia/testing-0.1.7
dependabot/npm_and_yarn/stable29/throttle-debounce-5.0.2
dependabot/npm_and_yarn/stable29/types/jest-29.5.14
dependabot/npm_and_yarn/stable29/vue-material-design-icons-5.3.1
dependabot/npm_and_yarn/stable29/vueuse/components-10.11.1
dependabot/npm_and_yarn/stable29/vueuse/core-10.11.1
dependabot/npm_and_yarn/stable29/vueuse/integrations-10.11.1
dependabot/npm_and_yarn/stable30/cypress-13.13.3
dependabot/npm_and_yarn/stable30/cypress-if-1.12.6
dependabot/npm_and_yarn/stable30/debounce-2.1.1
dependabot/npm_and_yarn/stable30/dockerode-4.0.3
dependabot/npm_and_yarn/stable30/dockerode-4.0.4
dependabot/npm_and_yarn/stable30/dompurify-3.1.7
dependabot/npm_and_yarn/stable30/jsdoc-4.0.4
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.10
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.11
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.16
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.17
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.18
dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.9
dependabot/npm_and_yarn/stable30/mime-4.0.6
dependabot/npm_and_yarn/stable30/moment-timezone-0.5.46
dependabot/npm_and_yarn/stable30/nextcloud/axios-2.5.1
dependabot/npm_and_yarn/stable30/nextcloud/calendar-availability-vue-2.2.4
dependabot/npm_and_yarn/stable30/nextcloud/calendar-availability-vue-2.2.6
dependabot/npm_and_yarn/stable30/nextcloud/files-3.10.1
dependabot/npm_and_yarn/stable30/nextcloud/moment-1.3.2
dependabot/npm_and_yarn/stable30/nextcloud/password-confirmation-5.3.1
dependabot/npm_and_yarn/stable30/nextcloud/sharing-0.2.4
dependabot/npm_and_yarn/stable30/nextcloud/upload-1.7.1
dependabot/npm_and_yarn/stable30/pinia/testing-0.1.5
dependabot/npm_and_yarn/stable30/pinia/testing-0.1.6
dependabot/npm_and_yarn/stable30/pinia/testing-0.1.7
dependabot/npm_and_yarn/stable30/query-string-9.1.1
dependabot/npm_and_yarn/stable30/ts-loader-9.5.2
dependabot/npm_and_yarn/stable30/types/dockerode-3.3.32
dependabot/npm_and_yarn/stable30/types/jest-29.5.13
dependabot/npm_and_yarn/stable30/types/jest-29.5.14
dependabot/npm_and_yarn/stable30/underscore-1.13.7
dependabot/npm_and_yarn/stable30/vue-material-design-icons-5.3.1
dependabot/npm_and_yarn/stable30/vueuse/components-10.11.1
dependabot/npm_and_yarn/stable30/vueuse/core-10.11.1
dependabot/npm_and_yarn/stable30/vueuse/integrations-10.11.1
dependabot/npm_and_yarn/testing-library/jest-dom-6.6.3
dependabot/npm_and_yarn/tslib-2.7.0
dependabot/npm_and_yarn/types/dockerode-3.3.32
dependabot/npm_and_yarn/typescript-5.6.2
dependabot/npm_and_yarn/vitejs/plugin-vue2-2.3.3
dependabot/npm_and_yarn/vitest/coverage-v8-2.1.1
dependabot/npm_and_yarn/vitest/coverage-v8-2.1.5
dependabot/npm_and_yarn/vitest/coverage-v8-2.1.8
dependabot/npm_and_yarn/vue-material-design-icons-5.3.1
dependabot/npm_and_yarn/vueuse/components-11.1.0
dependabot/npm_and_yarn/vueuse/core-11.3.0
dependabot/npm_and_yarn/vueuse/integrations-11.1.0
dependabot/npm_and_yarn/wait-on-8.0.0
dependabot/npm_and_yarn/wait-on-8.0.1
dependabot/npm_and_yarn/webdav-5.7.1
dependabot/npm_and_yarn/workbox-webpack-plugin-7.3.0
dependabot/npm_and_yarn/zip.js/zip.js-2.7.53
dependabot/npm_and_yarn/zip.js/zip.js-2.7.54
dependaniel/aws-sdk-for-28
dependaniel/aws-sdk-for-29
deps/noid/bump-3rdparty-hash
dept-remove-csrf-dependency-from-request
detect-inadvertent-config-overlaps
direct-access-shared-calendar
docs/http/cors-attribute
encoding-wrapper-metadata
encryption-version-version
enh/30551/weather-status-support-more-codes
enh/add-details-to-code-integrity-check
enh/add-first-login-timestamp
enh/add-rich-object-formatter
enh/add-user-creation-date
enh/displayname-group-search
enh/do-not-enforce-cache-for-cli
enh/favorite-search
enh/identityproof/key_storage
enh/issue-48528-disable-imip-messages
enh/issues-563-calendar-import-export
enh/limit-ldap-user-count
enh/more-task-types
enh/no-issues/share-entry-link
enh/noid/allow-configure-config.owner
enh/noid/avatar-chinese
enh/noid/disable-user-unmount
enh/noid/fix-personal-settings-layout
enh/noid/fix-properties-files
enh/noid/gs.federation.auto_accept_shares
enh/noid/navigationentryevent
enh/noid/returns-formated-app-values-2
enh/noid/signed-request
enh/noid/taskprocessing-commands-task-errors
enh/noid/taskprocessing-include-error-msg-in-tasks
enh/noid/testing-namespace
enh/noid/update-o.c.u-wording
enh/noid/user-preferences
enh/repair-mimetype-job
enh/test-mtime-after-move
enh/trashbin-scan-command
enh/users-configured-quota-value
enhancement/passwordless-login-token
enhancements/files-sharing-tests
ensureTemplateFolder
ernolf/configurable_sharetoken_length
feat-setupcheck-php-sapi-fpm-max-children
feat/26668/notifications-for-shared-calendars-2
feat/31420/bidi-backend-support
feat/45085/validate-config-values
feat/46528/ask-confirm-extension-change
feat/add-addressbook-list-command
feat/add-datetime-qbmapper-support
feat/add-directory-check-workflowengine
feat/add-mount-change-log
feat/add-proofread-tasktype
feat/add-query-param-to-force-language
feat/add-rector-config
feat/add-subscription-via-occ
feat/allow-account-local-search
feat/allow-enum-entity
feat/allow-getter-setter-decl-fors
feat/allow-oauth-grant-bypass
feat/auto-accept-trusted-server
feat/caption-cant-upload
feat/cardav-example-contact
feat/check-enterprise
feat/clipboard-fallback
feat/contacts-menu/js-hook-action
feat/conversion-adjusting
feat/core/features-api
feat/cors-on-webdav
feat/database/primary-replica-split-stable28
feat/database/query-result-fetch-associative-fetch-num
feat/dav-pagination
feat/dav-trashbin-backend
feat/dav/calendar-object-admin-audit-log
feat/declarative-settings/typed-abstraction
feat/disable-share-deletion
feat/dispatcher/log-raw-response-data
feat/edit-share-token
feat/empty-trash
feat/expose-nc-groups-to-system-addressbook-contacts
feat/file-conversion-provider
feat/file-conversion-provider-front
feat/file-list-actions
feat/files-bulk-tagging
feat/files-bulk-tagging-followup
feat/files-shortcuts
feat/files-shortcuts-2
feat/files/chunked-upload-config-capabilities
feat/files/resumable-uploads
feat/files_sharing/co-owner
feat/files_trashbin/allow-preventing-trash-permanently
feat/issue-3786-allow-shared-calendars
feat/issue-994-two-factor-api
feat/log-large-assets
feat/logger-allow-psr-loglevel
feat/mail-provider-settings
feat/make-setup-check-trait-public
feat/make-tasks-types-toggleable
feat/maxschmi-49902
feat/mountmanager/emit-events
feat/namespace-group-route
feat/nfo
feat/node-dist
feat/noid/add-fake-summary-provider
feat/noid/happy-birthday
feat/noid/info-xml-spdx-license-ids
feat/noid/lexicon-configurable-default-value
feat/noid/priority-notifications
feat/noid/ratelimit-header
feat/noid/support-email-mentions
feat/occ-files-cleanup-help
feat/ocp/attendee-availability-api
feat/ocp/meetings-api-requirements
feat/pagination-cardav
feat/photo-cache-webp
feat/php-setup-file-upload
feat/postgres-13-17
feat/profile-app
feat/public-log-level
feat/reduce_available_languages_set
feat/restore-to-original-dir
feat/restrict-tag-creation
feat/rich-profile-biography
feat/row_format_check
feat/search-by-parent-id
feat/settings/advanced-deploy-options
feat/settings/app_api_apps_management
feat/settings/too-much-caching-setup-check
feat/sharing-title
feat/shipped/app_api
feat/show-time-diff-user
feat/switch-from-settype-to-casts
feat/sync-truncation
feat/systemtags-bulk-create-list
feat/systemtags-missing-attrs
feat/systemtags-public
feat/tags-colors
feat/tags-colors-2
feat/taskprocessing/TextToImageSingle
feat/verbose-cron
feat/workflow-auto-update-cypress.yml
feat/workflow-auto-update-reuse.yml
feat/zip-folder-plugin
feat/zst
feature/23308/create-new-favorite-dashboard-widget
feature/add-allowed-view-extensions-config
feature/files-list-occ-command
feature/noid/config-lexicon
feature/noid/wrapped-appconfig
feature/settings-design-improvements
fieat/profile-pronounces
file-info-key-location-27
filecache-chunking
files-external-setup-path
filesVersionsFuncRefact
fix-44318-remote-share-not-listed
fix-copying-or-moving-from-shared-groupfolders
fix-dav-properties-column-type
fix-enforce-theme-for-public-links
fix-federated-group-shares-when-no-longer-found-in-remote-server
fix-files-external-smbclient-deprecated-binaryfinder
fix-nc-env-inclusion
fix-papercut-23486-weather-status-locale
fix-remove-auto-guessing-for-preview-semaphore
fix-setupcheck-filelocking
fix-setupcheck-webfinger-400
fix-setupchecks-normalizeUrl-url-filter
fix-show-original-owner
fix-updater-secret
fix/43260
fix/44288/catch-filesmetadatanotfound-exception
fix/45717/hide-last-modified-for-shipped-apps
fix/45884/accept-notification
fix/45982/hide-move-action
fix/46920/respect-no-download
fix/47275/driverException
fix/47658/upgrade-version-3100005
fix/48012/fix-share-email-send-mail-share
fix/48415/do-not-rename-main-share-link
fix/48437/dont-exclude-user
fix/48829/visual-feedback-4-encryption-toggle
fix/48860/stop-silent-expiry-date-addition-on-link-shares
fix/48993
fix/49473/task-url
fix/49638/update-prefs-indexes
fix/49728/adapt-search-filters-correctly
fix/49954/add-send-mail-toggle
fix/50177/movy-copy-e2e-tests
fix/788/add-password-confirmation-required-to-user-storage-create
fix/788/add-password-required-to-external-storages
fix/AppStore--remove-unneeded-warning
fix/account-mgmnt-settings
fix/activity-log-for-favorites-in-dav
fix/add-function-type-for-mimetype-sanitizer
fix/add-password-confirmation-to-save-global-creds
fix/adjust-default-color-background-plain-to-new-background
fix/ai-settings
fix/align-avatar-visibility
fix/allow-enforcing-windows-support
fix/allow-quota-wrapper-check
fix/app-discover
fix/app-store-groups
fix/app-store-markdown
fix/app-store-reactivity
fix/app-store-remove-force-enable
fix/appconfig/sensitive-keys-external-jwt-private-key
fix/appframework/csrf-request-checks
fix/apps/wrong-missing-casts
fix/appstore-regressions
fix/auth-token-uniq-constraint-violation-handling
fix/auth/authtoken-activity-update-in-transaction
fix/avoid-invalid-share-on-transfer-ownership
fix/background-image
fix/backgroundjobs/adjust-intervals-time-sensitivities
fix/baseresponse/xml-element-value-string-cast
fix/better-drag-n-drop
fix/bring-back-zip-event
fix/broken-event-notifications
fix/cachebuster-stable30
fix/caldav/event-organizer-interaction
fix/caldav/event-reader-duration
fix/carddav/create-sab-concurrently
fix/cast-node-names-to-string
fix/clarify-app-manager-methods
fix/cloud-id-input
fix/comment/children-count-integer
fix/composer/autoload-dev-deps
fix/config/additional-configs
fix/contactsmigratortest
fix/conversion-extension
fix/convert-log
fix/core-session-logout-logging
fix/cron-strict-cookie
fix/cron/log-long-running-jobs-stable26
fix/dashboard--performance-and-refactoring
fix/dashboard/dont-load-hidden-widgets-initially
fix/dashboard/skip-hidden-widgets
fix/datadirectory-protection-setupcheck
fix/dav-add-strict-type-declarations
fix/dav-cast-content-lenght-to-int
fix/dav-cast-params-to-string
fix/dav/abort-incomplete-caldav-changes-sync
fix/dav/carddav-read-card-memory-usage
fix/dav/image-export-plugin-fallback
fix/dav/limit-sync-token-created-at-updates-stable28
fix/dav/limit-sync-token-created-at-updates-stable29
fix/dav/view-only-check
fix/declarative-settings-priority
fix/defaultshareprovider/filter-reshares-correctly
fix/deps/php-seclin
fix/do-not-throw-from-countusers
fix/download-non-files-view
fix/drop-v-html
fix/duplicated-conflict-resolution
fix/edit-locally-labels
fix/empty-file-0byte-stable30
fix/encode-guest-file-request
fix/encrypt-decrypt-password
fix/encryption/web-ui-bogus
fix/entity/strict-types
fix/eslint-warning
fix/eslint-warnings
fix/etag-constraint-search-query
fix/external-storage-controller-cast-id
fix/external-storage-int
fix/fail-safe-files-actions
fix/federated-share-opening
fix/federated-users
fix/federation-certificate-store
fix/file-conversion-missing-extension
fix/file-list-filters-reset
fix/file-type-filter-state
fix/files--handle-empty-view-with-error
fix/files--list-header-button-title
fix/files-add-move-info
fix/files-duplicated-nodes
fix/files-page-title
fix/files-proper-loading-icon
fix/files-rename
fix/files-rename-esc
fix/files-rename-store
fix/files-renaming
fix/files-scroll-perf
fix/files/delete-display-no-trashbin
fix/files/preview-service-worker-registration
fix/files/reactivity-inject
fix/files/sort-after-view-change
fix/files_external/forbidden-exception
fix/files_external_scan
fix/files_sharing--global-search-in-select
fix/files_sharing/cleanup-error-messages
fix/files_sharing/disable-editing
fix/files_sharing/harden-api
fix/files_sharing/ocm-permissions
fix/files_sharing/sharing-entry-link-override-expiration-date
fix/filesreport-cast-fileId-to-int
fix/filter-for-components-explicitly
fix/fix-admin-audit-event-listening
fix/fix-copy-to-mountpoint-root
fix/fix-disabled-user-list-for-subadmins
fix/fix-email-setupcheck-with-null-smtpmode
fix/fix-email-share-transfer-accross-storages
fix/fix-int-casting
fix/fix-ldap-setupcheck-crash
fix/fix-server-tests
fix/fix-share-creation-error-messages
fix/fix-storage-interface-check
fix/flaky-cypress
fix/flaky-live-photos
fix/forbidden-files-insensitive
fix/forward-user-login-if-no-session
fix/get-managers-as-subadmin
fix/gracefully-parse-trusted-certificates
fix/handle-errors-in-migrate-key-format
fix/harden-admin-settings
fix/http/jsonresponse-data-type
fix/http/template-valid-status-codes
fix/imip-test-expects-integer
fix/improve-ldap-avatar-handling
fix/index-systemtags
fix/install-dbport-unused
fix/installation-wording
fix/invalid-app-config
fix/invalid-copied-share-link
fix/invalid-mtime
fix/invitations-named-parameter
fix/issue-12387-delete-invitations
fix/issue-13862
fix/issue-23666
fix/issue-3021-return-no-content-instead-of-error
fix/issue-34720
fix/issue-47879-property-serialization
fix/issue-48079-windows-time-zones
fix/issue-48528-disable-itip-and-imip-messages
fix/issue-48528-disable-itip-and-imip-messages-2
fix/issue-48732-exdate-rdate-property-instances
fix/issue-49756-translations
fix/issue-8458-imip-improvements-2
fix/istorage/return-types
fix/iurlgenerator/url-regex-markdown-parenthesis
fix/ldap-avoid-false-positive-mapping
fix/legacy-file-drop
fix/line-height-calc
fix/link-share-conflict-modal
fix/load-more-than-5-items-in-folder-filter
fix/lock-session-during-cookie-renew
fix/log-login-flow-state-token-errors
fix/log-memcache-log-path-hash
fix/login-origin
fix/mailer-binaryfinder-fallback
fix/make-router-reactive
fix/migrate-encryption-away-from-hooks
fix/move-email-logic-local-user-backend
fix/move-storage-constructor-to-specific-interface
fix/multi-select
fix/nav-quota-new-design
fix/no-issue/enforced-props-checks
fix/no-issue/file-request-disable-when-no-public-upload
fix/no-issue/link-sharing-defaults
fix/no-issue/no-reshare-perms-4-email-shares
fix/no-issue/proper-share-sorting
fix/no-issue/show-file-drop-permissions-correctly
fix/no-issues/add-encryption-available-config
fix/node-vibrant
fix/noid/appconfig-setmixed-on-typed
fix/noid/broken-taskprocessing-api
fix/noid/clean-config-code
fix/noid/count-disabled-correct
fix/noid/debug-objectstorage-s3
fix/noid/deleted-circles-share
fix/noid/deprecation-correct-case
fix/noid/discover-unique-ocmprovider
fix/noid/empty-path-for-files-versions
fix/noid/federation-really-surely-init-token
fix/noid/fix-try-login
fix/noid/get-fedid-from-cloudfed-provider
fix/noid/ignore-unavailable-token
fix/noid/init-navigation-data-too-soon
fix/noid/ldap-displayname-cached
fix/noid/ldap-n-counted-mapped-users
fix/noid/ldap-remnants-as-disabled-global
fix/noid/no-emails-for-user-shares
fix/noid/null-safe-metadata
fix/noid/path-hash-prep-statement
fix/noid/refresh-filesize-on-conflict-24
fix/noid/return-verified-email
fix/noid/run-kerberos-tests-on-ubuntu-latest
fix/noid/set-ext-pwd-as-sensitive
fix/noid/test-samba-with-self-hosted
fix/noid/textprocessing-list-types
fix/noid/textprocessing-schedule-taskprocessing-provider
fix/noid/thudnerbird-addon-useragent
fix/noid/try-latest-buildjet-cache
fix/noid/update-codeowners-nfebe
fix/note-icon-color
fix/null-label
fix/oauth2/owncloud-migration
fix/oc/inheritdoc
fix/ocm-host
fix/ocmdiscoveryservice/cache-errors
fix/openapi/array-syntax
fix/overide-itip-broker
fix/ownership-transfer-source-user-files
fix/password-field-sharing
fix/password-validation
fix/people-translation
fix/perf/cache-taskprocessing-json-parse
fix/pick-folder-smart-picker
fix/picker-tag-color
fix/pronouns-tests
fix/proper-preview-icon
fix/provisionApi-status-codes
fix/proxy-app-screenshot
fix/psalm/enabled-find-unused-baseline-entry
fix/psalm/throws-annotations
fix/psalm/update-baseline
fix/public-copy-move-stable-28
fix/public-get
fix/qbmapper/find-entities-return-type
fix/querybuilder/oracle-indentifier-length
fix/querybuilder/output-columns-aliases
fix/reasons-to-use
fix/recently_active_pgsql
fix/rector-use-statements
fix/refactor-user-access-to-file-list
fix/remove-needless-console-log
fix/remove-references-to-deprected-storage-interface
fix/remove-share-hint-exception-wrapping
fix/resiliant-user-removal
fix/resolve_public_rate_limit
fix/restore-sucess
fix/retry-delete-if-locked
fix/rtl-regession
fix/s3-verify-peer-setting
fix/s3configtrait/proxy-false
fix/sabre-dav-itip-broker
fix/sass
fix/session-cron
fix/session/log-likely-lost-session-conditions
fix/session/log-session-id
fix/session/log-session-start-error
fix/session/session-passphraze-handling
fix/session/transactional-remember-me-renewal
fix/settings--disable-discover-when-app-store-is-disabled
fix/settings-command
fix/settings/admin/ai/textprocessing
fix/settings/ex-apps-search
fix/settings/mail-server-settings-form
fix/settings/userid-dependency-injection
fix/share-api-create--permissions
fix/share-notifications
fix/sharing-entry-link
fix/sharing-password-submit-create
fix/sharing-sidebar-tab-default
fix/shipped-app-version
fix/sidebar-favorites
fix/stable27
fix/stable28-uploader
fix/stable28/webcal-subscription-jobs-middleware
fix/stable29/numerical-userid-file-item-display
fix/stable29/webcal-subscription-jobs-middleware
fix/stable29_share-api-create--permissions
fix/stable30/share-types-references
fix/storage-local/get-source-path-spl-file-info
fix/storage/get-directory-content-return-type
fix/storage/get-owner-false
fix/storage/method-docs-inheritance
fix/strict-types
fix/subadmin-user-groups
fix/tags/boolean-user-has-tags
fix/task-processing-api-controller/dont-use-plus
fix/taskprocessing-api-get-file-contents
fix/taskprocessing-better-errors
fix/taskprocessing-manager/php-notice
fix/template-name-overflow
fix/template-return-type
fix/template-vue3-main
fix/texttotextchatwithtools-translator-notes
fix/themes-layout
fix/theming/default-theme-selection
fix/ticket_9672007/share_mail
fix/typo-recommended-apps
fix/undefined-application-key
fix/undefined-response
fix/unified-search-ctrl-f
fix/unified-search-empty-sections
fix/update-notification
fix/update-share-entry-quick-select
fix/updatenotification-legacy-toast
fix/use-invokeprivate-for-test
fix/user_status/harden-api
fix/usertrait/backend-initialization
fix/view-in-folder-conditions
fix/view-only-preview
fix/view/catch-mkdir-exception-non-existent-parents
fix/weather_status/search-address-offline-errors
fix/webcal-subscription-jobs-middleware
fix/wrong-image-type
fixHeaderStyleSettings
fixKeyExFileExt
followup/39574/ocm-provider-without-beautiful-urls
followup/47329/add-all-types-to-handling
followup/48086/fix-more-activity-providers
forbid-moving-subfolder-24
fox/noid/extended-auth-on-webdav
fwdport/48445/master
getMountsForFileId-non-sparse
guzzleHandler
hasTableTaskprocessingTasks
icewind-smb-3.7
ignore-write-test-unlink-err
instance-quota
issue_45523_actionmenu_in_multiple_actions_menu_bar
joblist-build-error-log
jr-quota-exceeded-admin-log
jr/enh/updates/options-buttons-web-ui
jr/meta/issue-template-bugs-closed-link
jtr-feat-setupchecks-limit-type
jtr-locale-personal-info
jtr-perf-checks-connectivity-https-proto
jtr-settings-memory-limit-details
jtr/chore-bug-report-logs
jtr/desc-and-help-plus-minor-fixes-files-scan
jtr/dns-noisy-dns-get-record
jtr/fix-25162
jtr/fix-40666-fallback-copy
jtr/fix-45671
jtr/fix-46609-delegation-add-group-overlap
jtr/fix-appframework-server-proto
jtr/fix-hash-hkdf-valueerror
jtr/fix-ipv6-zone-ids-link-local
jtr/fix-sharing-update-hints
jtr/fix-streamer-zip64
jtr/fix-testSearchGroups
jtr/fix-tests/mysql-phpunit-health
jtr/fix-updater-cleanup-job-logging
jtr/fix-wipe-missing-token-handling
jtr/occ-maintenance-mode-desc
jtr/preview-thumb-robustness
jtr/router-light-refactoring
jtr/setup-checks-heading
jtr/test-binaryfinder
jtr/typo-accessibility-config-sample
kerberos-saved-ticket
kerberos-saved-ticket-27
location-provider
lockThreadsOlderThan120d
log-event-recursion
login-less-custom-bundle
man/backport/45237/stable27
master
merge-token-updates
metadata-storage-id
mgallien/fix/retry_cache_operations_on_deadlock
mixedSetTTL
mount-move-checks
mountpoint-get-numeric-storage-id-cache
move-from-encryption-no-opt
moveStrictTyping
mysqlNativePassCi
new-julius
no-issue-use-correct-exceptions-in-share-class
noissue-refactor-share-class
normlize-less
notfound-debug-mounts
obj-delete-not-found
obj-delete-not-found-20
object-store-move-db
object-store-move-fixes
object-store-trash-move
oc-wnd-migrate
oc-wnd-migrate-25
occ-as-root
occ-upgrade-reminder
occ-upgrade-wording
oci-ci-faststart
ocs-user-info-quota-optimize
optionally-hide-hidden-files-in-public-share-access
oracle-share-reminder
passedLockValueIsIntOrNull
patch/61084/disable-clear-cache
patch/hash-return-null
patch/performance-scckit
path-available
perf/cache-file-reminders
perf/core/jobs-index
perf/files/chunked-upload-default-100-mib
perf/log-excessive-memory-consumption
perf/log-high-memory-requests
perf/noid/split-getSharedWith-query-into-more-performance-sets
perf/noid/unified-search-init
printOccHumanFriendly
printOnlyOnceText
profile-request
pull_request-trigger
query-req-id-26
rakekniven-patch-1
rakekniven-patch-2
readd-object-store-phpunit
refactSmallAdjust
refactor/48925/sharing-sidebar-redesign
refactor/app/remove-register-routes
refactor/apps/constructor-property-promotion
refactor/apps/declare-strict-types
refactor/apps/php55-features
refactor/appstore-modernization
refactor/background-service
refactor/class-string-constant
refactor/dirname-to-dir
refactor/drop-to-uploader
refactor/elvis
refactor/files-cleanup
refactor/files-deprecated-share-types
refactor/files-filelist-width
refactor/files-required-navigation
refactor/move-to-new-activity-exception
refactor/provide-file-actions-through-composable
refactor/rector/extend-scope
refactor/register-routes
refactor/self-class-reference
refactor/settings/mail-settings-parameters
refactor/share-manager-appconfig
refactor/storage/constructors
refactor/storage/strong-param-types
refactor/storage/strong-type-properties
refactor/stream-encryption/typings
refactor/template-layout
refactor/void-tests
refactor/zip-event
release/28.0.11
release/28.0.11_rc1
release/28.0.12
release/28.0.12_rc1
release/28.0.12_rc2
release/28.0.14
release/28.0.14_rc1
release/29.0.0beta2
release/29.0.11
release/29.0.11_rc1
release/29.0.8
release/29.0.8_rc1
release/29.0.9
release/29.0.9_rc1
release/29.0.9_rc2
release/30.0.1_rc
release/30.0.1_rc1
release/30.0.1_rc2
release/30.0.2
release/30.0.2_rc1
release/30.0.2_rc2
release/30.0.4
release/30.0.4_rc1
release/30.0.5
release/30.0.5_rc1
release/31.0.0_beta_1
release/31.0.0_beta_2
release/31.0.0_beta_4
remove-filecache-joins
remove-locking-config-sample
remove-non-accessible-shares
removeNoisyTextEmails
rename-deleted-default-calendar-in-trashbin
repair-mimetype-expensive-squashed-29
repair-tree-invalid-parent
reshare-permission-logic-27
revert-49004
revert-49650-backport/49293/stable30
revert-49825-revert-49650-backport/49293/stable30
revert/41453
revert/openapi-extractor
revoke-admin-overwrite-8
reworkShareExceptions
rfc/global-rate-limit
rfc/request-timeout
run-test-mime-type-icon-again
s3-bucket-create-exception
s3-disable-multipart
s3-disable-multipart-remove-debug
safety-net-null-check
scan-home-ext-storae
scanner-invalid-data-log
scckit-backports
seekable-http-size-24
setupChecksMoveFromBinary
sftp-fopen-write-stat-cache
sftp-known-mtime
sharding-code-fixes
sharding-existing
sharding-select-fixes
share-list-set-owner
share-mount-check-no-in
share-move-storage-error
share-reminder-sharding
share-root-meta-cache
shared-cache-watcher-update
skjnldbot/nextcloud-upload
skjnldsv-patch-1
smb-acl-fail-soft
smb-hasupdated-deleted
smb-notify-test
smb-systembridge
stable-swift-v3
stable10
stable11
stable12
stable13
stable14
stable15
stable16
stable17
stable18
stable19
stable20
stable21
stable22
stable23
stable24
stable25
stable26
stable27
stable28
stable28BackportMissingSetTTL
stable29
stable30
stable30-fix-renaming-a-received-share-by-a-user-with-stale-shares
stable9
storage-cache-not-exists
storage-debug-info
storage-id-cache-memcache
stream-assembly-stream-size
techdebt/noid/add-parameter-typehints
techdebt/noid/more-useful-debug-logs
test-scanner-no-transactions-26
test/eol-check
test/eol-check-26
test/fix-cypress
test/folder-tree
test/integration/cleanup-logs
test/widget-perf
tests/fix-jest-leftover
tests/template-workflow
transfer-share-skip-notfound
try-non-recursive-source-27
update-phpdoc-for-folder-get
update-stale-bot-configuration
updater-change-mimetype-objectstore
useHttpFramework
useOCPClassesTrashbin
usermountcache-filecache-joins
validateProvidedEmail
wrapper-instanceof-resiliant-squash
Nextcloud server, a safe home for all your data: https://github.com/nextcloud/server www-data
blob: 3b434f752c77cc10b6187f98c77f66affd58902e (
plain )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
" Project-Id-Version: ownCloud\n"
" Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
" POT-Creation-Date: 2013-07-20 01:55-0400\n"
" PO-Revision-Date: 2013-07-20 05:24+0000\n"
" Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
" Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
" MIME-Version: 1.0\n"
" Content-Type: text/plain; charset=UTF-8\n"
" Content-Transfer-Encoding: 8bit\n"
" Language: bn_BD\n"
" Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/share.php:97
#, php-format
msgid "%s shared »%s« with you"
msgstr ""
#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25
msgid "Category type not provided."
msgstr "ক্যাটেগরির ধরণটি প্রদান করা হয় নি।"
#: ajax/vcategories/add.php:30
msgid "No category to add?"
msgstr "যোগ করার মত কোন ক্যাটেগরি নেই ?"
#: ajax/vcategories/add.php:37
#, php-format
msgid "This category already exists: %s"
msgstr ""
#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27
#: ajax/vcategories/favorites.php:24
#: ajax/vcategories/removeFromFavorites.php:26
msgid "Object type not provided."
msgstr "অবজেক্টের ধরণটি প্রদান করা হয় নি।"
#: ajax/vcategories/addToFavorites.php:30
#: ajax/vcategories/removeFromFavorites.php:30
#, php-format
msgid "%s ID not provided."
msgstr "%s ID প্রদান করা হয় নি।"
#: ajax/vcategories/addToFavorites.php:35
#, php-format
msgid "Error adding %s to favorites."
msgstr "প্রিয়তে %s যোগ করতে সমস্যা দেখা দিয়েছে।"
#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136
msgid "No categories selected for deletion."
msgstr "মুছে ফেলার জন্য কনো ক্যাটেগরি নির্বাচন করা হয় নি।"
#: ajax/vcategories/removeFromFavorites.php:35
#, php-format
msgid "Error removing %s from favorites."
msgstr "প্রিয় থেকে %s সরিয়ে ফেলতে সমস্যা দেখা দিয়েছে।"
#: js/config.php:32
msgid "Sunday"
msgstr "রবিবার"
#: js/config.php:33
msgid "Monday"
msgstr "সোমবার"
#: js/config.php:34
msgid "Tuesday"
msgstr "মঙ্গলবার"
#: js/config.php:35
msgid "Wednesday"
msgstr "বুধবার"
#: js/config.php:36
msgid "Thursday"
msgstr "বৃহস্পতিবার"
#: js/config.php:37
msgid "Friday"
msgstr "শুক্রবার"
#: js/config.php:38
msgid "Saturday"
msgstr "শনিবার"
#: js/config.php:43
msgid "January"
msgstr "জানুয়ারি"
#: js/config.php:44
msgid "February"
msgstr "ফেব্রুয়ারি"
#: js/config.php:45
msgid "March"
msgstr "মার্চ"
#: js/config.php:46
msgid "April"
msgstr "এপ্রিল"
#: js/config.php:47
msgid "May"
msgstr "মে"
#: js/config.php:48
msgid "June"
msgstr "জুন"
#: js/config.php:49
msgid "July"
msgstr "জুলাই"
#: js/config.php:50
msgid "August"
msgstr "অগাষ্ট"
#: js/config.php:51
msgid "September"
msgstr "সেপ্টেম্বর"
#: js/config.php:52
msgid "October"
msgstr "অক্টোবর"
#: js/config.php:53
msgid "November"
msgstr "নভেম্বর"
#: js/config.php:54
msgid "December"
msgstr "ডিসেম্বর"
#: js/js.js:293
msgid "Settings"
msgstr "নিয়ামকসমূহ"
#: js/js.js:725
msgid "seconds ago"
msgstr "সেকেন্ড পূর্বে"
#: js/js.js:726
msgid "1 minute ago"
msgstr "১ মিনিট পূর্বে"
#: js/js.js:727
msgid "{minutes} minutes ago"
msgstr "{minutes} মিনিট পূর্বে"
#: js/js.js:728
msgid "1 hour ago"
msgstr "1 ঘন্টা পূর্বে"
#: js/js.js:729
msgid "{hours} hours ago"
msgstr "{hours} ঘন্টা পূর্বে"
#: js/js.js:730
msgid "today"
msgstr "আজ"
#: js/js.js:731
msgid "yesterday"
msgstr "গতকাল"
#: js/js.js:732
msgid "{days} days ago"
msgstr "{days} দিন পূর্বে"
#: js/js.js:733
msgid "last month"
msgstr "গত মাস"
#: js/js.js:734
msgid "{months} months ago"
msgstr "{months} মাস পূর্বে"
#: js/js.js:735
msgid "months ago"
msgstr "মাস পূর্বে"
#: js/js.js:736
msgid "last year"
msgstr "গত বছর"
#: js/js.js:737
msgid "years ago"
msgstr "বছর পূর্বে"
#: js/oc-dialogs.js:117
msgid "Choose"
msgstr "বেছে নিন"
#: js/oc-dialogs.js:122
msgid "Cancel"
msgstr "বাতির"
#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
msgid "Error loading file picker template"
msgstr ""
#: js/oc-dialogs.js:164
msgid "Yes"
msgstr "হ্যাঁ"
#: js/oc-dialogs.js:172
msgid "No"
msgstr "না"
#: js/oc-dialogs.js:185
msgid "Ok"
msgstr "তথাস্তু"
#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102
#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162
msgid "The object type is not specified."
msgstr "অবজেক্টের ধরণটি সুনির্দিষ্ট নয়।"
#: js/oc-vcategories.js:14 js/oc-vcategories.js:80 js/oc-vcategories.js:95
#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136
#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195
#: js/oc-vcategories.js:199 js/share.js:136 js/share.js:143 js/share.js:620
#: js/share.js:632
msgid "Error"
msgstr "সমস্যা"
#: js/oc-vcategories.js:179
msgid "The app name is not specified."
msgstr "অ্যাপের নামটি সুনির্দিষ্ট নয়।"
#: js/oc-vcategories.js:194
msgid "The required file {file} is not installed!"
msgstr "আবশ্যিক {file} টি সংস্থাপিত নেই !"
#: js/share.js:30 js/share.js:45 js/share.js:87
msgid "Shared"
msgstr "ভাগাভাগিকৃত"
#: js/share.js:90
msgid "Share"
msgstr "ভাগাভাগি কর"
#: js/share.js:125 js/share.js:660
msgid "Error while sharing"
msgstr "ভাগাভাগি করতে সমস্যা দেখা দিয়েছে "
#: js/share.js:136
msgid "Error while unsharing"
msgstr "ভাগাভাগি বাতিল করতে সমস্যা দেখা দিয়েছে"
#: js/share.js:143
msgid "Error while changing permissions"
msgstr "অনুমতিসমূহ পরিবর্তন করতে সমস্যা দেখা দিয়েছে"
#: js/share.js:152
msgid "Shared with you and the group {group} by {owner}"
msgstr "{owner} আপনার এবং {group} গোষ্ঠীর সাথে ভাগাভাগি করেছেন"
#: js/share.js:154
msgid "Shared with you by {owner}"
msgstr "{owner} আপনার সাথে ভাগাভাগি করেছেন"
#: js/share.js:172
msgid "Share with"
msgstr "যাদের সাথে ভাগাভাগি করা হয়েছে"
#: js/share.js:177
msgid "Share with link"
msgstr "লিংকের সাথে ভাগাভাগি কর"
#: js/share.js:180
msgid "Password protect"
msgstr "কূটশব্দ সুরক্ষিত"
#: js/share.js:182 templates/installation.php:54 templates/login.php:26
msgid "Password"
msgstr "কূটশব্দ"
#: js/share.js:187
msgid "Allow Public Upload"
msgstr ""
#: js/share.js:191
msgid "Email link to person"
msgstr "ব্যক্তির সাথে ই-মেইল যুক্ত কর"
#: js/share.js:192
msgid "Send"
msgstr "পাঠাও"
#: js/share.js:197
msgid "Set expiration date"
msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করুন"
#: js/share.js:198
msgid "Expiration date"
msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ"
#: js/share.js:230
msgid "Share via email:"
msgstr "ই-মেইলের মাধ্যমে ভাগাভাগি করুনঃ"
#: js/share.js:232
msgid "No people found"
msgstr "কোন ব্যক্তি খুঁজে পাওয়া গেল না"
#: js/share.js:270
msgid "Resharing is not allowed"
msgstr "পূনঃরায় ভাগাভাগি অনুমোদিত নয়"
#: js/share.js:306
msgid "Shared in {item} with {user}"
msgstr "{user} এর সাথে {item} ভাগাভাগি করা হয়েছে"
#: js/share.js:327
msgid "Unshare"
msgstr "ভাগাভাগি বাতিল "
#: js/share.js:339
msgid "can edit"
msgstr "সম্পাদনা করতে পারবেন"
#: js/share.js:341
msgid "access control"
msgstr "অধিগম্যতা নিয়ন্ত্রণ"
#: js/share.js:344
msgid "create"
msgstr "তৈরী করুন"
#: js/share.js:347
msgid "update"
msgstr "পরিবর্ধন কর"
#: js/share.js:350
msgid "delete"
msgstr "মুছে ফেল"
#: js/share.js:353
msgid "share"
msgstr "ভাগাভাগি কর"
#: js/share.js:387 js/share.js:607
msgid "Password protected"
msgstr "কূটশব্দদ্বারা সুরক্ষিত"
#: js/share.js:620
msgid "Error unsetting expiration date"
msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ বাতিল করতে সমস্যা দেখা দিয়েছে"
#: js/share.js:632
msgid "Error setting expiration date"
msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করতে সমস্যা দেখা দিয়েছে"
#: js/share.js:647
msgid "Sending ..."
msgstr "পাঠানো হচ্ছে......"
#: js/share.js:658
msgid "Email sent"
msgstr "ই-মেইল পাঠানো হয়েছে"
#: js/update.js:17
msgid ""
"The update was unsuccessful. Please report this issue to the <a "
"href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud "
"community</a>."
msgstr ""
#: js/update.js:21
msgid "The update was successful. Redirecting you to ownCloud now."
msgstr ""
#: lostpassword/controller.php:60
msgid "ownCloud password reset"
msgstr "ownCloud কূটশব্দ পূনঃনির্ধারণ"
#: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}"
msgstr "আপনার কূটশব্দটি পূনঃনির্ধারণ করার জন্য নিম্নোক্ত লিংকটি ব্যবহার করুনঃ {link}"
#: lostpassword/templates/lostpassword.php:4
msgid ""
"The link to reset your password has been sent to your email.<br>If you do "
"not receive it within a reasonable amount of time, check your spam/junk "
"folders.<br>If it is not there ask your local administrator ."
msgstr ""
#: lostpassword/templates/lostpassword.php:12
msgid "Request failed!<br>Did you make sure your email/username was right?"
msgstr ""
#: lostpassword/templates/lostpassword.php:15
msgid "You will receive a link to reset your password via Email."
msgstr "কূটশব্দ পূনঃনির্ধারণের জন্য একটি টূনঃনির্ধারণ লিংকটি আপনাকে ই-মেইলে পাঠানো হয়েছে ।"
#: lostpassword/templates/lostpassword.php:18 templates/installation.php:48
#: templates/login.php:19
msgid "Username"
msgstr "ব্যবহারকারী"
#: lostpassword/templates/lostpassword.php:22
msgid ""
"Your files are encrypted. If you haven't enabled the recovery key, there "
"will be no way to get your data back after your password is reset. If you "
"are not sure what to do, please contact your administrator before you "
"continue. Do you really want to continue?"
msgstr ""
#: lostpassword/templates/lostpassword.php:24
msgid "Yes, I really want to reset my password now"
msgstr ""
#: lostpassword/templates/lostpassword.php:27
msgid "Request reset"
msgstr "অনুরোধ পূনঃনির্ধারণ"
#: lostpassword/templates/resetpassword.php:4
msgid "Your password was reset"
msgstr "আপনার কূটশব্দটি পূনঃনির্ধারণ করা হয়েছে"
#: lostpassword/templates/resetpassword.php:5
msgid "To login page"
msgstr "প্রবেশ পৃষ্ঠায়"
#: lostpassword/templates/resetpassword.php:8
msgid "New password"
msgstr "নতুন কূটশব্দ"
#: lostpassword/templates/resetpassword.php:11
msgid "Reset password"
msgstr "কূটশব্দ পূনঃনির্ধারণ কর"
#: strings.php:5
msgid "Personal"
msgstr "ব্যক্তিগত"
#: strings.php:6
msgid "Users"
msgstr "ব্যবহারকারী"
#: strings.php:7
msgid "Apps"
msgstr "অ্যাপ"
#: strings.php:8
msgid "Admin"
msgstr "প্রশাসন"
#: strings.php:9
msgid "Help"
msgstr "সহায়িকা"
#: templates/403.php:12
msgid "Access forbidden"
msgstr "অধিগমনের অনুমতি নেই"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "ক্লাউড খুঁজে পাওয়া গেল না"
#: templates/altmail.php:4
#, php-format
msgid ""
"Hey there,\n"
"\n"
"just letting you know that %s shared %s with you.\n"
"View it: %s\n"
"\n"
"Cheers!"
msgstr ""
#: templates/edit_categories_dialog.php:4
msgid "Edit categories"
msgstr "ক্যাটেগরি সম্পাদনা"
#: templates/edit_categories_dialog.php:16
msgid "Add"
msgstr "যোগ কর"
#: templates/installation.php:24 templates/installation.php:31
#: templates/installation.php:38
msgid "Security Warning"
msgstr "নিরাপত্তাজনিত সতর্কতা"
#: templates/installation.php:25
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
#: templates/installation.php:26
msgid "Please update your PHP installation to use ownCloud securely."
msgstr ""
#: templates/installation.php:32
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
#: templates/installation.php:33
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
#: templates/installation.php:39
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
#: templates/installation.php:40
msgid ""
"For information how to properly configure your server, please see the <a "
"href=\"http://doc.owncloud.org/server/5.0/admin_manual/installation.html\" "
"target=\"_blank\">documentation</a>."
msgstr ""
#: templates/installation.php:44
msgid "Create an <strong>admin account</strong>"
msgstr "<strong>প্রশাসক একাউন্ট</strong> তৈরী করুন"
#: templates/installation.php:62
msgid "Advanced"
msgstr "সুচারু"
#: templates/installation.php:64
msgid "Data folder"
msgstr "ডাটা ফোল্ডার "
#: templates/installation.php:74
msgid "Configure the database"
msgstr "ডাটাবেচ কনফিগার করুন"
#: templates/installation.php:79 templates/installation.php:91
#: templates/installation.php:102 templates/installation.php:113
#: templates/installation.php:125
msgid "will be used"
msgstr "ব্যবহৃত হবে"
#: templates/installation.php:137
msgid "Database user"
msgstr "ডাটাবেজ ব্যবহারকারী"
#: templates/installation.php:144
msgid "Database password"
msgstr "ডাটাবেজ কূটশব্দ"
#: templates/installation.php:149
msgid "Database name"
msgstr "ডাটাবেজের নাম"
#: templates/installation.php:159
msgid "Database tablespace"
msgstr "ডাটাবেজ টেবলস্পেস"
#: templates/installation.php:166
msgid "Database host"
msgstr "ডাটাবেজ হোস্ট"
#: templates/installation.php:172
msgid "Finish setup"
msgstr "সেটআপ সুসম্পন্ন কর"
#: templates/layout.user.php:43
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
#: templates/layout.user.php:68
msgid "Log out"
msgstr "প্রস্থান"
#: templates/login.php:9
msgid "Automatic logon rejected!"
msgstr ""
#: templates/login.php:10
msgid ""
"If you did not change your password recently, your account may be "
"compromised!"
msgstr ""
#: templates/login.php:12
msgid "Please change your password to secure your account again."
msgstr ""
#: templates/login.php:34
msgid "Lost your password?"
msgstr "কূটশব্দ হারিয়েছেন?"
#: templates/login.php:39
msgid "remember"
msgstr "মনে রাখ"
#: templates/login.php:41
msgid "Log in"
msgstr "প্রবেশ"
#: templates/login.php:47
msgid "Alternative Logins"
msgstr ""
#: templates/mail.php:16
#, php-format
msgid ""
"Hey there,<br><br>just letting you know that %s shared »%s« with you.<br><a "
"href=\"%s\">View it!</a><br><br>Cheers!"
msgstr ""
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "পূর্ববর্তী"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "পরবর্তী"
#: templates/update.php:3
#, php-format
msgid "Updating ownCloud to version %s, this may take a while."
msgstr "%s ভার্সনে ownCloud পরিবর্ধন করা হচ্ছে, এজন্য কিছু সময় প্রয়োজন।"