alt
+ cliceáil/iontráil
chun lipéid a eisiamh`
+issues.filter_label_no_select=Gach lipéad
+issues.filter_label_select_no_label=Gan lipéad
+issues.filter_milestone=Cloch Mhíle
+issues.filter_milestone_all=Gach cloch mhíle
+issues.filter_milestone_none=Gan aon clocha mhíle
+issues.filter_milestone_open=Clocha mhíle oscailte
+issues.filter_milestone_closed=Clocha mhíle dúnta
+issues.filter_project=Tionscadal
+issues.filter_project_all=Gach tionscadal
+issues.filter_project_none=Gan aon tionscadal
+issues.filter_assignee=Sannaitheoir
+issues.filter_assginee_no_select=Gach sannaithe
+issues.filter_assginee_no_assignee=Gan sannaitheoir
+issues.filter_poster=Údar
+issues.filter_poster_no_select=Gach údair
+issues.filter_type=Cineál
+issues.filter_type.all_issues=Gach saincheist
+issues.filter_type.assigned_to_you=Sannta duit
+issues.filter_type.created_by_you=Cruthaithe agat
+issues.filter_type.mentioning_you=Ag tagairt duit
+issues.filter_type.review_requested=Athbhreithniú iarrtha
+issues.filter_type.reviewed_by_you=Athbhreithnithe agat
+issues.filter_sort=Sórtáil
+issues.filter_sort.latest=Is nuaí
+issues.filter_sort.oldest=Is sine
+issues.filter_sort.recentupdate=Nuashonraithe le déanaí
+issues.filter_sort.leastupdate=Is lú a nuashonraíodh le déanaí
+issues.filter_sort.mostcomment=Is mó a bhfuil tráchtanna air
+issues.filter_sort.leastcomment=Is lú a bhfuil tráchtanna air
+issues.filter_sort.nearduedate=An dáta dlite is gaire
+issues.filter_sort.farduedate=An dáta dlite is faide
+issues.filter_sort.moststars=An líon réaltaí is mó
+issues.filter_sort.feweststars=An líon réaltaí is lú
+issues.filter_sort.mostforks=An líon forcanna is mó
+issues.filter_sort.fewestforks=An líon forcanna is lú
+issues.action_open=Oscailte
+issues.action_close=Dún
+issues.action_label=Lipéad
+issues.action_milestone=Cloch Mhíle
+issues.action_milestone_no_select=Gan Chloch Mhíle
+issues.action_assignee=Sannaitheoir
+issues.action_assignee_no_select=Gan sannaitheoir
+issues.action_check=Seiceáil/Dísheiceáil
+issues.action_check_all=Seiceáil/Dísheiceáil gach mireanna
+issues.opened_by=oscail %[1]s le %[3]s
+pulls.merged_by=le %[3]s cumasc %[1]s
+pulls.merged_by_fake=le %[2]s a chumasc %[1]s
+issues.closed_by=le dúnadh %[3]s %[1]s
+issues.opened_by_fake=oscail %[1]s le %[2]s
+issues.closed_by_fake=faoi %[2]s dúnadh %[1]s
+issues.previous=Roimhe Seo
+issues.next=Ar Aghaidh
+issues.open_title=Oscailte
+issues.closed_title=Dúnta
+issues.draft_title=Dréacht
+issues.num_comments_1=%d trácht
+issues.num_comments=%d tráchtanna
+issues.commented_at=`trácht %s `
+issues.delete_comment_confirm=An bhfuil tú cinnte gur mhaith leat an trácht seo a scriosadh?
+issues.context.copy_link=Cóipeáil Nasc
+issues.context.quote_reply=Luaigh Freagra
+issues.context.reference_issue=Tagairt in Eagrán Nua
+issues.context.edit=Cuir in eagar
+issues.context.delete=Scrios
+issues.no_content=Níl aon tuairisc ar fáil.
+issues.close=Dún Eagrán
+issues.comment_pull_merged_at=cumasc tiomantas %[1]s le %[2]s %[3]s
+issues.comment_manually_pull_merged_at=cumasc tiomantas %[1]s le %[2]s %[3]s
+issues.close_comment_issue=Dún le trácht
+issues.reopen_issue=Athoscail
+issues.reopen_comment_issue=Athoscail le trácht
+issues.create_comment=Trácht
+issues.comment.blocked_user=Ní féidir trácht a chruthú nó a chur in eagar toisc go bhfuil an tráchtaire nó úinéir an stórais bac ort.
+issues.closed_at=`dhún an cheist seo %[2]s`
+issues.reopened_at=`athoscail an t-eagrán seo %[2]s`
+issues.commit_ref_at=`rinne tagairt don cheist seo ó ghealltanas %[2]s`
+issues.ref_issue_from=`rinne dagairt don cheist seo %[4]s %[2]s`
+issues.ref_pull_from=`rinne dagairt don iarratas tarraingthe seo %[4]s %[ 2]s`
+issues.ref_closing_from=`rinne dagairt d'iarratas tarraingthe %[4]s a dhúnfaidh an cheist seo %[2]s`
+issues.ref_reopening_from=`rinne dagairt d'iarratas tarraingthe %[4]s a athosclóidh an cheist seo %[2]s`
+issues.ref_closed_from=`dhún an cheist seo %[4]s %[2]s`
+issues.ref_reopened_from=`d'athoscail an eagrán seo %[4]s %[2]s`
+issues.ref_from=`ó %[1]s`
+issues.author=Údar
+issues.author_helper=Is é an t-úsáideoir seo an t-údar.
+issues.role.owner=Úinéir
+issues.role.owner_helper=Is é an t-úsáideoir seo úinéir an stór seo.
+issues.role.member=Comhalta
+issues.role.member_helper=Is ball den eagraíocht é an t-úsáideoir seo a bhfuil an stór seo ina úinéireacht.
+issues.role.collaborator=Comhoibritheoir
+issues.role.collaborator_helper=Tugadh cuireadh don úsáideoir seo comhoibriú ar an stóras.
+issues.role.first_time_contributor=Cuiditheoir den chéad uair
+issues.role.first_time_contributor_helper=Seo é an chéad uair a chuir an t-úsáideoir seo leis an stóras.
+issues.role.contributor=Cuiditheoir
+issues.role.contributor_helper=Tá an t-úsáideoir seo tiomanta don stóras roimhe seo.
+issues.re_request_review=Athiarraigh athbhreithniú
+issues.is_stale=Rinneadh athruithe ar an PR seo ón athbhreithniú seo
+issues.remove_request_review=Bain iarratas athbhreithni
+issues.remove_request_review_block=Ní féidir iarratas athbhreithnithe a bhaint
+issues.dismiss_review=Díbhe Athbhreithnithe
+issues.dismiss_review_warning=An bhfuil tú cinnte gur mhaith leat an athbhreithnithe seo a dhíbhe?
+issues.sign_in_require_desc=Sínigh isteach chun dul isteach sa chomhrá seo.
+issues.edit=Cuir in eagar
+issues.cancel=Cealaigh
+issues.save=Sábháil
+issues.label_title=Ainm
+issues.label_description=Cur síos
+issues.label_color=Dath
+issues.label_exclusive=Eisiach
+issues.label_archive=Lipéad Cartlann
+issues.label_archived_filter=Taispeáin lipéid cartlainne
+issues.label_archive_tooltip=Eisiatar lipéid chartlainne de réir réamhshocraithe ó na moltaí nuair a dhéantar cuardach de réir lipéid.
+issues.label_exclusive_desc=Ainmnigh an lipéad scope/item
chun é a dhéanamh comheisiatach le lipéid scope/
eile.
+issues.label_exclusive_warning=Bainfear aon lipéid scóipe contrártha le linn eagarthóireacht a dhéanamh ar lipéid iarratais eisiúna nó tarraingthe.
+issues.label_count=%d lipéid
+issues.label_open_issues=%d saincheisteanna oscailte/iarratais tarraing
+issues.label_edit=Cuir in eagar
+issues.label_delete=Scrios
+issues.label_modify=Cuir Lipéad in Eagar
+issues.label_deletion=Scrios Lipéad
+issues.label_deletion_desc=Baineann lipéad a scriosadh é ó gach saincheist. Lean ar aghaidh?
+issues.label_deletion_success=Tá an lipéad scriosta.
+issues.label.filter_sort.alphabetically=Aibítreach
+issues.label.filter_sort.reverse_alphabetically=Aisiompú in ord aibítre
+issues.label.filter_sort.by_size=Méid is lú
+issues.label.filter_sort.reverse_by_size=Méid is mó
+issues.num_participants=%d Rannpháirtithe
+issues.attachment.open_tab=`Cliceáil chun "%s" a fheiceáil i gcluaisín nua`
+issues.attachment.download=`Cliceáil chun "%s" a íoslódáil
+issues.subscribe=Liostáil
+issues.unsubscribe=Díliostáil
+issues.unpin_issue=Bain pionna an t-eagrán
+issues.max_pinned=Ní féidir leat níos mó saincheisteanna a phionadh
+issues.pin_comment=phionnáil an %s seo
+issues.unpin_comment=bain pionna an %s seo
+issues.lock=Cuir glas ar an gcomhrá
+issues.unlock=Díghlasáil comhrá
+issues.lock.unknown_reason=Ní féidir fadhb a ghlasáil le cúis anaithnid.
+issues.lock_duplicate=Ní féidir saincheist a ghlasáil faoi dhó.
+issues.unlock_error=Ní féidir saincheist nach bhfuil glasáilte a dhíghlasáil.
+issues.lock_with_reason=curtha ar ceal mar %s agus comhrá teoranta do chomhoibrithe %s
+issues.lock_no_reason=comhrá faoi ghlas agus teoranta do chomhoibrithe %s
+issues.unlock_comment=an comhrá seo a dhíghlasáil %s
+issues.lock_confirm=Glas
+issues.unlock_confirm=Díghlasáil
+issues.lock.notice_1=- Ní féidir le húsáideoirí eile tuairimí nua a chur leis an gceist seo.
+issues.lock.notice_2=- Is féidir leatsa agus le comhoibrithe eile a bhfuil rochtain acu ar an stór seo fós tuairimí a fhágáil a fheiceann daoine eile.
+issues.lock.notice_3=- Is féidir leat an tsaincheist seo a dhíghlasáil arís sa todhchaí.
+issues.unlock.notice_1=- Bheadh gach duine in ann trácht a dhéanamh ar an gceist seo arís.
+issues.unlock.notice_2=- Is féidir leat an tsaincheist seo a ghlasáil arís sa todhchaí i gcónaí.
+issues.lock.reason=Cúis le glasáil
+issues.lock.title=Glas comhrá ar an gceist seo.
+issues.unlock.title=Díghlasáil comhrá ar an gceist seo.
+issues.comment_on_locked=Ní féidir leat trácht a dhéanamh ar shaincheist faoi ghlas.
+issues.delete=Scrios
+issues.delete.title=Scrios an t-eagrán seo?
+
+
+pulls.tab_commits=Tiomáintí
+
+
+
+
+
+
+
+
+
+
+milestones.open=Oscailte
+milestones.close=Dún
+
+
+
+wiki=Wiki
+wiki.page=Leathanach
+wiki.new_page=Leathanach
+
+activity.closed_issue_label=Dúnta
+activity.new_issues_count_1=Eagrán Nua
+activity.unresolved_conv_label=Oscailte
+
+contributors.contribution_type.commits=Tiomáintí
+
+settings.githooks=Crúcanna Git
+
+settings.projects_mode_all=Gach tionscadal
+settings.trust_model.collaborator=Comhoibritheoir
+settings.trust_model.collaborator.long=Comhoibritheoir: Sínithe muinín ag comhoibrithe
+settings.trust_model.collaboratorcommitter.long=Comhoibritheo+Coiteoir: Sínithe iontaobhais ag comhoibritheoirí a mheaitseann leis an gealltóir
+settings.slack_color=Dath
+settings.event_fork=Forc
+settings.event_wiki=Wiki
+settings.event_release=Scaoileadh
+
+
+
+branch.branch_already_exists=Tá brainse "%s" ann cheana féin sa stóras seo.
+
+
+
+
+
+
+[graphs]
+
+[org]
+
+
+
+
+
+
+
+[admin]
+
+dashboard.sync_repo_licenses=Sioncronaigh ceadúnais repo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+notices.operations=Oibríochtaí
+
+
+[action]
+
+[tool]
+
+[dropzone]
+
+[notification]
+
+[gpg]
+
+[units]
+
+[packages]
+
+[secrets]
+
+[actions]
+
+
+
+runners.task_list.commit=Tiomantas
+
+runs.commit=Tiomantas
+
+
+
+
+[projects]
+
+[git.filemode]
+; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
+symbolic_link=Nasc siombalach
+
diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini
index 3a80c741db..2e861df207 100644
--- a/options/locale/locale_ja-JP.ini
+++ b/options/locale/locale_ja-JP.ini
@@ -1926,6 +1926,7 @@ pulls.delete.text=本当にこのプルリクエストを削除しますか? (
pulls.recently_pushed_new_branches=%[2]s 、あなたはブランチ %[1]s にプッシュしました
pull.deleted_branch=(削除済み):%s
+pull.agit_documentation=AGitに関するドキュメントを確認する
comments.edit.already_changed=コメントの変更を保存できません。 他のユーザーによって内容がすでに変更されているようです。 変更を上書きしないようにするため、ページを更新してからもう一度編集してください
diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini
index e423832e9e..cb521fe58c 100644
--- a/options/locale/locale_pt-PT.ini
+++ b/options/locale/locale_pt-PT.ini
@@ -1040,6 +1040,7 @@ issue_labels_helper=Escolha um conjunto de rótulos para as questões.
license=Licença
license_helper=Escolha um ficheiro de licença.
license_helper_desc=Uma licença rege o que os outros podem, ou não, fazer com o seu código fonte. Não tem a certeza sobre qual a mais indicada para o seu trabalho? Veja: Escolher uma licença.
+multiple_licenses=Múltiplas licenças
object_format=Formato dos elementos
object_format_helper=Formato dos elementos do repositório. Não poderá ser alterado mais tarde. SHA1 é o mais compatível.
readme=README
@@ -2941,6 +2942,7 @@ dashboard.start_schedule_tasks=Iniciar tarefas de agendamento das operações
dashboard.sync_branch.started=Sincronização de ramos iniciada
dashboard.sync_tag.started=Sincronização de etiquetas iniciada
dashboard.rebuild_issue_indexer=Reconstruir indexador de questões
+dashboard.sync_repo_licenses=Sincronizar licenças do repositório
users.user_manage_panel=Gestão das contas de utilizadores
users.new_account=Criar conta de utilizador
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go
index baf0f173a5..6fc7f37e74 100644
--- a/routers/api/v1/repo/pull.go
+++ b/routers/api/v1/repo/pull.go
@@ -1124,9 +1124,20 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
// Check if current user has fork of repository or in the same repository.
headRepo := repo_model.GetForkedRepo(ctx, headUser.ID, baseRepo.ID)
if headRepo == nil && !isSameRepo {
- log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID)
- ctx.NotFound("GetForkedRepo")
- return nil, nil, nil, "", ""
+ err := baseRepo.GetBaseRepo(ctx)
+ if err != nil {
+ ctx.Error(http.StatusInternalServerError, "GetBaseRepo", err)
+ return nil, nil, nil, "", ""
+ }
+
+ // Check if baseRepo's base repository is the same as headUser's repository.
+ if baseRepo.BaseRepo == nil || baseRepo.BaseRepo.OwnerID != headUser.ID {
+ log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID)
+ ctx.NotFound("GetBaseRepo")
+ return nil, nil, nil, "", ""
+ }
+ // Assign headRepo so it can be used below.
+ headRepo = baseRepo.BaseRepo
}
var headGitRepo *git.Repository
diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go
index fedad87fc4..2c277a18c7 100644
--- a/routers/api/v1/user/user.go
+++ b/routers/api/v1/user/user.go
@@ -68,11 +68,12 @@ func Search(ctx *context.APIContext) {
users = []*user_model.User{user_model.NewActionsUser()}
default:
users, maxResults, err = user_model.SearchUsers(ctx, &user_model.SearchUserOptions{
- Actor: ctx.Doer,
- Keyword: ctx.FormTrim("q"),
- UID: uid,
- Type: user_model.UserTypeIndividual,
- ListOptions: listOptions,
+ Actor: ctx.Doer,
+ Keyword: ctx.FormTrim("q"),
+ UID: uid,
+ Type: user_model.UserTypeIndividual,
+ SearchByEmail: true,
+ ListOptions: listOptions,
})
if err != nil {
ctx.JSON(http.StatusInternalServerError, map[string]any{
diff --git a/routers/web/repo/migrate.go b/routers/web/repo/migrate.go
index 31a65c65ea..3eaf05f383 100644
--- a/routers/web/repo/migrate.go
+++ b/routers/web/repo/migrate.go
@@ -15,6 +15,7 @@ import (
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/base"
+ "code.gitea.io/gitea/modules/json"
"code.gitea.io/gitea/modules/lfs"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
@@ -288,3 +289,40 @@ func MigrateCancelPost(ctx *context.Context) {
}
ctx.Redirect(ctx.Repo.Repository.Link())
}
+
+// MigrateStatus returns migrate task's status
+func MigrateStatus(ctx *context.Context) {
+ task, err := admin_model.GetMigratingTask(ctx, ctx.Repo.Repository.ID)
+ if err != nil {
+ if admin_model.IsErrTaskDoesNotExist(err) {
+ ctx.JSON(http.StatusNotFound, map[string]any{
+ "err": "task does not exist or you do not have access to this task",
+ })
+ return
+ }
+ log.Error("GetMigratingTask: %v", err)
+ ctx.JSON(http.StatusInternalServerError, map[string]any{
+ "err": http.StatusText(http.StatusInternalServerError),
+ })
+ return
+ }
+
+ message := task.Message
+
+ if task.Message != "" && task.Message[0] == '{' {
+ // assume message is actually a translatable string
+ var translatableMessage admin_model.TranslatableMessage
+ if err := json.Unmarshal([]byte(message), &translatableMessage); err != nil {
+ translatableMessage = admin_model.TranslatableMessage{
+ Format: "migrate.migrating_failed.error",
+ Args: []any{task.Message},
+ }
+ }
+ message = ctx.Locale.TrString(translatableMessage.Format, translatableMessage.Args...)
+ }
+
+ ctx.JSON(http.StatusOK, map[string]any{
+ "status": task.Status,
+ "message": message,
+ })
+}
diff --git a/routers/web/user/task.go b/routers/web/user/task.go
deleted file mode 100644
index 475ef16212..0000000000
--- a/routers/web/user/task.go
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2020 The Gitea Authors. All rights reserved.
-// SPDX-License-Identifier: MIT
-
-package user
-
-import (
- "net/http"
- "strconv"
-
- admin_model "code.gitea.io/gitea/models/admin"
- "code.gitea.io/gitea/modules/json"
- "code.gitea.io/gitea/services/context"
-)
-
-// TaskStatus returns task's status
-func TaskStatus(ctx *context.Context) {
- task, opts, err := admin_model.GetMigratingTaskByID(ctx, ctx.PathParamInt64("task"), ctx.Doer.ID)
- if err != nil {
- if admin_model.IsErrTaskDoesNotExist(err) {
- ctx.JSON(http.StatusNotFound, map[string]any{
- "error": "task `" + strconv.FormatInt(ctx.PathParamInt64("task"), 10) + "` does not exist",
- })
- return
- }
- ctx.JSON(http.StatusInternalServerError, map[string]any{
- "err": err,
- })
- return
- }
-
- message := task.Message
-
- if task.Message != "" && task.Message[0] == '{' {
- // assume message is actually a translatable string
- var translatableMessage admin_model.TranslatableMessage
- if err := json.Unmarshal([]byte(message), &translatableMessage); err != nil {
- translatableMessage = admin_model.TranslatableMessage{
- Format: "migrate.migrating_failed.error",
- Args: []any{task.Message},
- }
- }
- message = ctx.Locale.TrString(translatableMessage.Format, translatableMessage.Args...)
- }
-
- ctx.JSON(http.StatusOK, map[string]any{
- "status": task.Status,
- "message": message,
- "repo-id": task.RepoID,
- "repo-name": opts.RepoName,
- "start": task.StartTime,
- "end": task.EndTime,
- })
-}
diff --git a/routers/web/web.go b/routers/web/web.go
index af46c36fe7..69258bca18 100644
--- a/routers/web/web.go
+++ b/routers/web/web.go
@@ -669,7 +669,6 @@ func registerRoutes(m *web.Router) {
m.Get("/forgot_password", auth.ForgotPasswd)
m.Post("/forgot_password", auth.ForgotPasswdPost)
m.Post("/logout", auth.SignOut)
- m.Get("/task/{task}", reqSignIn, user.TaskStatus)
m.Get("/stopwatches", reqSignIn, user.GetStopwatches)
m.Get("/search", ignExploreSignIn, user.Search)
m.Group("/oauth2", func() {
@@ -1042,6 +1041,13 @@ func registerRoutes(m *web.Router) {
}, ignSignIn, context.UserAssignmentWeb(), context.OrgAssignment())
// end "/{username}/-": packages, projects, code
+ m.Group("/{username}/{reponame}/-", func() {
+ m.Group("/migrate", func() {
+ m.Get("/status", repo.MigrateStatus)
+ })
+ }, ignSignIn, context.RepoAssignment, reqRepoCodeReader)
+ // end "/{username}/{reponame}/-": migrate
+
m.Group("/{username}/{reponame}/settings", func() {
m.Group("", func() {
m.Combo("").Get(repo_setting.Settings).
diff --git a/services/context/repo.go b/services/context/repo.go
index c001255283..0072b63b7c 100644
--- a/services/context/repo.go
+++ b/services/context/repo.go
@@ -614,7 +614,10 @@ func RepoAssignment(ctx *Context) context.CancelFunc {
}
}
- isHomeOrSettings := ctx.Link == ctx.Repo.RepoLink || ctx.Link == ctx.Repo.RepoLink+"/settings" || strings.HasPrefix(ctx.Link, ctx.Repo.RepoLink+"/settings/")
+ isHomeOrSettings := ctx.Link == ctx.Repo.RepoLink ||
+ ctx.Link == ctx.Repo.RepoLink+"/settings" ||
+ strings.HasPrefix(ctx.Link, ctx.Repo.RepoLink+"/settings/") ||
+ ctx.Link == ctx.Repo.RepoLink+"/-/migrate/status"
// Disable everything when the repo is being created
if ctx.Repo.Repository.IsBeingCreated() || ctx.Repo.Repository.IsBroken() {
diff --git a/templates/repo/migrate/migrating.tmpl b/templates/repo/migrate/migrating.tmpl
index ed03db2ebd..bc07b488f2 100644
--- a/templates/repo/migrate/migrating.tmpl
+++ b/templates/repo/migrate/migrating.tmpl
@@ -7,7 +7,7 @@
{{template "base/alert" .}}