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?
+issues.delete.text=An bhfuil tú cinnte gur mhaith leat an cheist seo a scriosadh? (Bainfidh sé seo an t-inneachar go léir go buan. Smaoinigh ar é a dhúnadh ina ionad sin, má tá sé i gceist agat é a choinneáil i gcartlann)
+issues.tracker=Rianaitheoir Ama
+issues.start_tracking_short=Tosaigh Uaineoir
+issues.start_tracking=Rianú Am Tosaigh
+issues.start_tracking_history=`thosaigh sé ag obair %s`
+issues.tracker_auto_close=Stopfar ama go huathoibríoch nuair a dhúnfar an tsaincheist seo
+issues.tracking_already_started=`Tá tús curtha agat cheana féin ag rianú ama ar eagrán eile!`
+issues.stop_tracking=Stop Uaineadóir
+issues.stop_tracking_history=`stop sé ag obair %s`
+issues.cancel_tracking=Caith amach
+issues.cancel_tracking_history=`rianú ama curtha ar ceal %s`
+issues.add_time=Láimh Cuir Am leis
+issues.del_time=Scrios an log ama seo
+issues.add_time_short=Cuir Am leis
+issues.add_time_cancel=Cealaigh
+issues.add_time_history=`am caite curtha leis %s`
+issues.del_time_history=`an t-am caite scriosta %s`
+issues.add_time_hours=Uaireanta
+issues.add_time_minutes=Miontuairi
+issues.add_time_sum_to_small=Níor iontráilíodh aon am.
+issues.time_spent_total=An t-am iomlán a chaitear
+issues.time_spent_from_all_authors=`Am Iomlán Caitear: %s`
+issues.due_date=Dáta dlite
+issues.invalid_due_date_format=Ní mór 'bbbb-mm-ll' a bheith i bhformáid an dáta dlite.
+issues.error_modifying_due_date=Theip ar an dáta dlite a mhodhnú.
+issues.error_removing_due_date=Theip ar an dáta dlite a bhaint.
+issues.push_commit_1=Cuir %d gealltanas %s leis
+issues.push_commits_n=cuireadh %d tiomantas %s leis
+issues.force_push_codes=`bhrú i bhfeidhm %[1]s ó %[2]s
go %[4]s
%[6]s`
+issues.force_push_compare=Déan comparáid
+issues.due_date_form=bbbb-mm-ll
+issues.due_date_form_add=Cuir dáta dlite leis
+issues.due_date_form_edit=Cuir in eagar
+issues.due_date_form_remove=Bain
+issues.due_date_not_writer=Ní mór duit rochtain scríofa ar an stór seo d'fhonn dáta dlite eisiúna a nuashonrú.
+issues.due_date_not_set=Níl aon dáta dlite socraithe.
+issues.due_date_added=cuireadh an dáta dlite %s %s
+issues.due_date_modified=d'athraigh an dáta dlite ó %[2]s go %[1]s %[3]s
+issues.due_date_remove=bainte an dáta dlite %s %s
+issues.due_date_overdue=Thar téarma
+issues.due_date_invalid=Tá an dáta dlite neamhbhailí nó lasmuigh den raon. Úsáid an fhormáid 'bbbb-mm-ll' le do thoil.
+issues.dependency.title=Spleithiúlachtaí
+issues.dependency.issue_no_dependencies=Níl aon spleáchais leagtha síos.
+issues.dependency.pr_no_dependencies=Níl aon spleáchais leagtha síos.
+issues.dependency.no_permission_1=Níl cead agat spleáchas %d a léamh
+issues.dependency.no_permission_n=Níl cead agat spleáchais %d a léamh
+issues.dependency.no_permission.can_remove=Níl cead agat an spleáchas seo a léamh ach is féidir leis an spleáchas seo a bhaint
+issues.dependency.add=Cuir spleáchas leis…
+issues.dependency.cancel=Cealaigh
+issues.dependency.remove=Bain
+issues.dependency.remove_info=Bain an spleáchas seo
+issues.dependency.added_dependency=`cuireadh spleáchas nua %s`
+issues.dependency.removed_dependency=`bainte spleáchas %s`
+issues.dependency.pr_closing_blockedby=Cuireann na saincheisteanna seo a leanas bac ar an iarratas tarraingte seo a dhúnadh
+issues.dependency.issue_closing_blockedby=Tá na saincheisteanna seo a leanas bac ar dhúnadh an cheist seo
+issues.dependency.issue_close_blocks=Cuireann an tsaincheist seo bac ar dhúnadh na saincheisteanna
+issues.dependency.pr_close_blocks=Cuireann an iarratas tarraingthe seo bac ar dhúnadh na saincheisteanna
+issues.dependency.issue_close_blocked=Ní mór duit gach saincheist a chuireann bac ar an gceist seo a dhúnadh sular féidir leat é a dhúnadh.
+issues.dependency.issue_batch_close_blocked=Ní féidir saincheisteanna a roghnaíonn tú a dhúnadh, toisc go bhfuil spleáchais oscailte fós ag eisiúint #%d
+issues.dependency.pr_close_blocked=Ní mór duit gach saincheist a bhlocálann an iarratas tarraingthe seo a dhúnadh sula féidir leat é a chumasc.
+issues.dependency.blocks_short=Bloic
+issues.dependency.blocked_by_short=Ag brath ar
+issues.dependency.remove_header=Bain spleáchas
+issues.dependency.issue_remove_text=Bainfidh sé seo an spleáchas ón gceist seo. Lean ar aghaidh?
+issues.dependency.pr_remove_text=Bainfidh sé seo an spleáchas ón iarratas tarraingthe seo. Lean ar aghaidh?
+issues.dependency.setting=Cumasaigh spleáchais le haghaidh Saincheisteanna agus Iarrataí Tar
+issues.dependency.add_error_same_issue=Ní féidir leat ceist a dhéanamh ag brath air féin.
+issues.dependency.add_error_dep_issue_not_exist=Níl saincheist spleách ann.
+issues.dependency.add_error_dep_not_exist=Ní bhíonn spleáchas ann.
+issues.dependency.add_error_dep_exists=Tá spleáchas ann cheana féin.
+issues.dependency.add_error_cannot_create_circular=Ní féidir leat spleáchas a chruthú le dhá shaincheist a chuireann bac ar a chéile.
+issues.dependency.add_error_dep_not_same_repo=Caithfidh an dá shaincheist a bheith sa stór céanna.
+issues.review.self.approval=Ní féidir leat d'iarratas tarraingthe féin a cheadú.
+issues.review.self.rejection=Ní féidir leat athruithe a iarraidh ar d'iarratas tarraingthe féin.
+issues.review.approve=ceadaigh na hathruithe seo %s
+issues.review.comment=athbhreithnithe %s
+issues.review.dismissed=dhiúltaigh athbhreithniú %s ó %s
+issues.review.dismissed_label=Dhiúltaigh
+issues.review.left_comment=d'fhág trácht
+issues.review.content.empty=Ní mór duit trácht a fhágáil a léiríonn an t-athrú (í) iarrtha.
+issues.review.reject=athruithe iarrtha %s
+issues.review.wait=iarradh athbhreithniú %s
+issues.review.add_review_request=athbhreithniú iarrtha ó %s %s
+issues.review.remove_review_request=iarratas athbhreithnithe bainte le haghaidh %s %s
+issues.review.remove_review_request_self=dhiúltaigh %s a athbhreithniú
+issues.review.pending=Ar feitheamh
+issues.review.pending.tooltip=Níl an nóta tráchta seo le feiceáil ag úsáideoirí eile faoi láthair. Chun do thuairimí ar feitheamh a chur isteach, roghnaigh "%s" -> "%s/%s/%s" ag barr an leathanaigh.
+issues.review.review=Léirmheas
+issues.review.reviewers=Léirmheasóirí
+issues.review.outdated=As dáta
+issues.review.outdated_description=Tá athrú tagtha ar ábhar ó rinneadh an trácht seo
+issues.review.option.show_outdated_comments=Taispeáin tráchtanna atá as dáta
+issues.review.option.hide_outdated_comments=Folaigh tráchtanna atá as dáta
+issues.review.show_outdated=Taispeáin as dáta
+issues.review.hide_outdated=Folaigh as dáta
+issues.review.show_resolved=Taispeáin réitithe
+issues.review.hide_resolved=Folaigh réitithe
+issues.review.resolve_conversation=Réitigh comhrá
+issues.review.un_resolve_conversation=Comhrá gan réiteach
+issues.review.resolved_by=mharcáil an comhrá seo mar réitigh
+issues.review.commented=Trácht
+issues.review.official=Ceadaithe
+issues.review.requested=Athbhreithniú ar feitheamh
+issues.review.rejected=Athruithe iarrtha
+issues.review.stale=Nuashonraithe ó faomhadh
+issues.review.unofficial=Ceadú gan áireamh
+issues.assignee.error=Níor cuireadh gach sannaí leis mar gheall ar earráid gan choinne.
+issues.reference_issue.body=Comhlacht
+issues.content_history.deleted=scriosta
+issues.content_history.edited=curtha in eagar
+issues.content_history.created=cruthaithe
+issues.content_history.delete_from_history=Scrios ón stair
+issues.content_history.delete_from_history_confirm=Scrios ón stair?
+issues.content_history.options=Roghanna
+issues.reference_link=Tagairt: %s
+
+compare.compare_base=bonn
+compare.compare_head=déan comparáid
+
+pulls.desc=Cumasaigh iarratais tarraingthe agus athbhreithnithe cód.
+pulls.new=Iarratas Tarraingthe Nua
+pulls.new.blocked_user=Ní féidir iarratas tarraingthe a chruthú toisc go bhfuil úinéir an stórais bac ort.
+pulls.new.must_collaborator=Caithfidh tú a bheith ina chomhoibritheoir chun iarratas tarraingthe a chruthú.
+pulls.edit.already_changed=Ní féidir athruithe a shábháil ar an iarratas tarraingthe. Dealraíonn sé gur athraigh úsáideoir eile an t-ábhar cheana féin. Athnuachan an leathanach agus déan iarracht eagarthóireacht arís chun a gcuid athruithe a sheachaint
+pulls.view=Féach ar Iarratas Tarraing
+pulls.compare_changes=Iarratas Tarraingthe Nua
+pulls.allow_edits_from_maintainers=Ceadaigh eagarthóirí ó chothabhálaí
+pulls.allow_edits_from_maintainers_desc=Is féidir le húsáideoirí a bhfuil rochtain scríofa acu ar an mbunbhrainse brú chuig an bhrainse
+pulls.allow_edits_from_maintainers_err=Theip ar nuashonrú
+pulls.compare_changes_desc=Roghnaigh an brainse le cumasc isteach agus an brainse le tarraingt uaidh.
+pulls.has_viewed_file=Breathnaithe
+pulls.has_changed_since_last_review=Athraithe ó d'athbhreithniú deire
+pulls.viewed_files_label=Breathnaíodh ar %[1]d / %[2]d comhaid
+pulls.expand_files=Leathnaigh gach comhaid
+pulls.collapse_files=Laghdaigh gach comhaid
+pulls.compare_base=cumaisc isteach
+pulls.compare_compare=tarraing ó
+pulls.switch_comparison_type=Athraigh cineál comparáide
+pulls.switch_head_and_base=Athraigh ceann agus bonn
+pulls.filter_branch=Brainse scagaire
+pulls.show_all_commits=Taispeáin gach gealltanas
+pulls.show_changes_since_your_last_review=Taispeáin athruithe ón léirmheas deiridh
+pulls.showing_only_single_commit=Ag taispeáint athruithe tiomantais %[1]s amháin
+pulls.showing_specified_commit_range=Ag taispeáint athruithe idir %[1]s..%[2]s
+pulls.select_commit_hold_shift_for_range=Roghnaigh tiomantas. Coinnigh shift + cliceáil chun raon a roghnú
+pulls.review_only_possible_for_full_diff=Ní féidir athbhreithniú a dhéanamh ach amháin nuair a bhreathnaítear ar an difríocht iomlán
+pulls.filter_changes_by_commit=Scagaigh de réir tiomantas
+pulls.nothing_to_compare=Tá na brainsí seo cothrom. Ní gá iarratas tarraingthe a chruthú.
+pulls.nothing_to_compare_have_tag=Tá an brainse/clib roghnaithe cothrom.
+pulls.nothing_to_compare_and_allow_empty_pr=Tá na brainsí seo cothrom. Beidh an PR seo folamh.
+pulls.has_pull_request=`Tá iarratas tarraingthe idir na brainsí seo ann cheana: %[2]s#%[3]d`
+pulls.create=Cruthaigh Iarratas Tarraing
+pulls.title_desc=ag iarraidh %[1]d gealltanas a chumasc ó %[2]s
go %[3]s
+pulls.merged_title_desc=cumasc %[1]d tiomantas ó %[2]s
go %[3]s
%[4]s
+pulls.change_target_branch_at=`athraigh an spriocbhrainse ó %s go %s %s`
+pulls.tab_conversation=Comhrá
+pulls.tab_commits=Tiomáintí
+pulls.tab_files=Comhaid Athraithe
+pulls.reopen_to_merge=Athoscail an t-iarratas tarraingthe seo le do thoil chun cumasc a dhéanamh.
+pulls.cant_reopen_deleted_branch=Ní féidir an t-iarratas tarraingthe seo a athoscailt toisc gur scriosadh an brainse.
+pulls.merged=Cumaiscthe
+pulls.merged_success=D'éirigh leis an iarratas tarraingthe a chumasc agus a dhúnadh
+pulls.closed=Iarratas tarraingthe dúnta
+pulls.manually_merged=Cumaisc de láimh
+pulls.merged_info_text=Is féidir an brainse %s a scriosadh anois.
+pulls.is_closed=Tá an t-iarratas tarraingthe dúnta.
+pulls.title_wip_desc=`Tosaigh an teideal le %s chun an t-iarratas tarraingthe a chosc ó chumasc de thaisme.`
+pulls.cannot_merge_work_in_progress=Tá an t-iarratas tarraingthe seo marcáilte mar obair atá ar siúl.
+pulls.still_in_progress=Fós ar siúl?
+pulls.add_prefix=Cuir réimír %s leis
+pulls.remove_prefix=Bain an réimír %s
+pulls.data_broken=Tá an t-iarratas tarraingthe seo briste mar gheall ar fhaisnéis forc a bheith in easnamh.
+pulls.files_conflicted=Tá athruithe ag an iarratas tarraingthe seo atá contrártha leis an spriocbhrainse.
+pulls.is_checking=Tá seiceáil coinbhleachta cumaisc ar siúl. Bain triail eile as i gceann cúpla nóiméad.
+pulls.is_ancestor=Tá an brainse seo san áireamh cheana féin sa spriocbhrainse. Níl aon rud le cumasc.
+pulls.is_empty=Tá na hathruithe ar an mbrainse seo ar an spriocbhrainse cheana féin. Is tiomantas folamh é seo.
+pulls.required_status_check_failed=Níor éirigh le roinnt seiceálacha riachtanacha.
+pulls.required_status_check_missing=Tá roinnt seiceanna riachtanacha ar iarraidh.
+pulls.required_status_check_administrator=Mar riarthóir, féadfaidh tú an t-iarratas tarraingthe seo a chumasc fós.
+pulls.blocked_by_approvals=Níl go leor ceadaithe ag an iarraidh tarraingthe seo fós. Deonaíodh %d den fhaomhadh %d.
+pulls.blocked_by_approvals_whitelisted=Níl go leor ceaduithe riachtanacha ag an iarratas tarraingte seo go fóill. %d de %d faomhadh tugtha ó úsáideoirí nó foirne ar an liosta ceadaithe.
+pulls.blocked_by_rejection=Tá athruithe ag athbhreithneoir oifigiúil ag an iarratas tarraingthe seo.
+pulls.blocked_by_official_review_requests=Tá iarratais ar athbhreithniú oifigiúil ag an iarratas tarraingte seo.
+pulls.blocked_by_outdated_branch=Tá bac ar an iarratas tarraingte seo toisc go bhfuil sé as dáta.
+pulls.blocked_by_changed_protected_files_1=Cuirtear bac ar an iarratas tarraingthe seo toisc go n-athraíonn sé comhad cosanta:
+pulls.blocked_by_changed_protected_files_n=Tá bac ar an iarratas tarraingthe seo toisc go n-athraíonn sé comhaid chosanta:
+pulls.can_auto_merge_desc=Is féidir an t-iarratas tarraingt seo a chumasc go huathoibríoch.
+pulls.cannot_auto_merge_desc=Ní féidir an t-iarratas tarraingthe seo a chumasc go huathoibríoch mar gheall ar choinbhleachtaí.
+pulls.cannot_auto_merge_helper=Cumaisc de láimh chun na coinbhleachtaí a réiteach.
+pulls.num_conflicting_files_1=Comhad contrártha %d
+pulls.num_conflicting_files_n=%d comhaid contrártha
+pulls.approve_count_1=%d ceadú
+pulls.approve_count_n=%d faomhadh
+pulls.reject_count_1=%d iarratas athraithe
+pulls.reject_count_n=%d iarratas ar athrú
+pulls.waiting_count_1=%d athbhreithniú feithimh
+pulls.waiting_count_n=%d athbhreithnithe feithimh
+pulls.wrong_commit_id=caithfidh comhad id a bheith ina id tiomanta ar an spriocbhrainse
+
+pulls.no_merge_desc=Ní féidir an t-iarratas tarraingthe seo a chumasc toisc go bhfuil gach rogha cumaisc stór díchumasaithe.
+pulls.no_merge_helper=Cumasaigh roghanna cumaisc i socruithe an stór nó cumasc an t-iarratas tarraingthe de láimh.
+pulls.no_merge_wip=Ní féidir an t-iarratas tarraingthe seo a chumasc toisc go bhfuil sé marcáilte mar obair atá ar siúl é.
+pulls.no_merge_not_ready=Níl an t-iarratas tarraingthe seo réidh le cumasc, seiceáil stádas athbhreithnithe agus seiceálacha stádais.
+pulls.no_merge_access=Níl tú údaraithe chun an t-iarratas tarraingthe seo a chumasc.
+pulls.merge_pull_request=Cruthaigh tiomantas cumaisc
+pulls.rebase_merge_pull_request=Athbhunaigh ansin go tapa ar aghaidh
+pulls.rebase_merge_commit_pull_request=Rebase ansin cruthaigh tiomantas cumaisc
+pulls.squash_merge_pull_request=Cruthaigh tiomantas scuaise
+pulls.fast_forward_only_merge_pull_request=Go tapa ar aghaidh amháin
+pulls.merge_manually=Cumaisc de láimh
+pulls.merge_commit_id=ID an tiomantis cumaisc
+pulls.require_signed_wont_sign=Éilíonn an bhrainse tiomáintí shínithe, ach ní shínífear an cumasc seo
+
+pulls.invalid_merge_option=Ní féidir leat an rogha cumaisc seo a úsáid don iarratas tarraingthe seo.
+pulls.merge_conflict=Theip ar Cumaisc: Bhí coinbhleacht ann agus é ag cumasc. Leid: Bain triail as straitéis dhifriúil
+pulls.merge_conflict_summary=Teachtaireacht Earráide
+pulls.rebase_conflict=Theip ar Chumasc: Bhí coinbhleacht ann agus tiomantas á athbhunú: %[1]s. Leid: Bain triail as straitéis eile
+pulls.rebase_conflict_summary=Teachtaireacht Earráide
+pulls.unrelated_histories=Theip ar Cumaisc: Ní roinneann an ceann cumaisc agus an bonn stair choiteann. Leid: Bain triail as straitéis dhifriúil
+pulls.merge_out_of_date=Theip ar Cumaisc: Agus an cumaisc á ghiniúint, nuashonraíodh an bonn. Leid: Bain triail as arís.
+pulls.head_out_of_date=Theip ar Cumaisc: Agus an cumaisc á ghiniúint, nuashonraíodh an ceann. Leid: Bain triail as arís.
+pulls.has_merged=Theip ar: Cumaisíodh an t-iarratas tarraingthe, ní féidir leat a chumasc arís nó an spriocbhrainse a athrú.
+pulls.push_rejected=Theip ar Brúigh: Diúltaíodh don bhrú. Déan athbhreithniú ar na Git Hooks don stór seo.
+pulls.push_rejected_summary=Teachtaireacht Diúltaithe Iomlán
+pulls.push_rejected_no_message=Theip ar Brúigh: Diúltaíodh don bhrú ach ní raibh aon teachtaireacht iargúlta ann. Déan athbhreithniú ar Git Hooks don stór seo
+pulls.open_unmerged_pull_exists=`Ní féidir leat oibríocht athoscailte a dhéanamh toisc go bhfuil iarratas tarraingthe ar feitheamh (#%d) le hairíonna comhionanna. `
+pulls.status_checking=Tá roinnt seiceála ar feitheamh
+pulls.status_checks_success=D'éirigh le gach seiceáil
+pulls.status_checks_warning=Thuairiscigh roinnt seiceálacha rabhaidh
+pulls.status_checks_failure=Theip ar roinnt seiceálacha
+pulls.status_checks_error=Thug roinnt seiceálacha earráidí
+pulls.status_checks_requested=Riachtanach
+pulls.status_checks_details=Sonraí
+pulls.status_checks_hide_all=Folaigh gach seiceáil
+pulls.status_checks_show_all=Taispeáin gach seiceáil
+pulls.update_branch=Nuashonrú brainse trí chumasc
+pulls.update_branch_rebase=Nuashonraigh an bhrainse trí athbhunú
+pulls.update_branch_success=Bhí nuashonrú brainse rathúil
+pulls.update_not_allowed=Ní cheadaítear duit brainse a nuashonrú
+pulls.outdated_with_base_branch=Tá an brainse seo as dáta leis an mbunbhrainse
+pulls.close=Dún Iarratas Tarraing
+pulls.closed_at=`dhún an t-iarratas tarraingthe seo %[2]s`
+pulls.reopened_at=`athoscail an t-iarratas tarraingthe seo %[2]s`
+pulls.cmd_instruction_hint=`Féach ar treoracha na líne ordaithe.`
+pulls.cmd_instruction_checkout_title=Seiceáil
+pulls.cmd_instruction_checkout_desc=Ó stór tionscadail, seiceáil brainse nua agus déan tástáil ar na hathruithe.
+pulls.cmd_instruction_merge_title=Cumaisc
+pulls.cmd_instruction_merge_desc=Cumaisc na hathruithe agus nuashonrú ar Gitea.
+pulls.cmd_instruction_merge_warning=Rabhadh: Ní féidir leis an oibríocht seo an t-iarratas tarraingthe a chumasc toisc nach raibh "cumasc láimhe uathoibríoch" cumasaithe
+pulls.clear_merge_message=Glan an teachtaireacht chumaisc
+pulls.clear_merge_message_hint=Má imrítear an teachtaireacht chumaisc ní bhainfear ach ábhar na teachtaireachta tiomanta agus coimeádfar leantóirí git ginte ar nós "Co-Authored-By …".
+
+pulls.auto_merge_button_when_succeed=(Nuair a éiríonn le seiceálacha)
+pulls.auto_merge_when_succeed=Cumaisc uathoibríoch nuair a éiríonn
+pulls.auto_merge_newly_scheduled=Bhí an t-iarratas tarraingt sceidealta le cumasc nuair a éiríonn le gach seiceáil.
+pulls.auto_merge_has_pending_schedule=Bhí an t-iarratas tarraingthe seo sceidealaithe ag %[1]s chun cumasc uathoibríoch a dhéanamh nuair a éiríonn le gach seiceáil %[2]s.
+
+pulls.auto_merge_cancel_schedule=Cealaigh cumasc uathoibríoch
+pulls.auto_merge_not_scheduled=Níl an t-iarratas tarraingthe seo sceidealaithe le cumasc go huathoibríoch.
+pulls.auto_merge_canceled_schedule=Cealaíodh an cumaisc uathoibríoch don iarratas tarraingthe seo.
+
+pulls.auto_merge_newly_scheduled_comment=`sceidealta an t-iarratas tarraingthe seo le cumasc uathoibrithe nuair a éiríonn le gach seiceáil %[1]s`
+pulls.auto_merge_canceled_schedule_comment=`curtha ar ceal uathchumasc leis an iarratas tarraingthe seo nuair a éiríonn le gach seiceáil %[1]s`
+
+pulls.delete.title=Scrios an t-iarratas tarraingthe seo?
+pulls.delete.text=An bhfuil tú cinnte gur mhaith leat an t-iarratas tarraingthe seo a scriosadh? (Bainfidh sé seo an t-inneachar go léir go buan. Smaoinigh ar é a dhúnadh ina ionad sin, má tá sé i gceist agat é a choinneáil i gcartlann)
+
+pulls.recently_pushed_new_branches=Bhrúigh tú ar bhrainse %[1]s %[2]s
+
+pull.deleted_branch=(scriosta): %s
+pull.agit_documentation=Déan athbhreithniú ar dhoiciméid faoi AGit
+
+comments.edit.already_changed=Ní féidir athruithe a shábháil ar an trácht. Dealraíonn sé gur athraigh úsáideoir eile an t-ábhar cheana féin. Athnuachan an leathanach agus déan iarracht eagarthóireacht arís chun a gcuid athruithe a sheachaint
+
+milestones.new=Cloch Mhíle Nua
+milestones.closed=Dúnta %s
+milestones.update_ago=Nuashonraithe %s
+milestones.no_due_date=Gan dáta dlite
+milestones.open=Oscailte
+milestones.close=Dún
+milestones.new_subheader=Is féidir le clocha míle cabhrú leat ceisteanna a eagrú agus a ndul chun cinn a rianú.
+milestones.completeness=%d%% Críochnaithe
+milestones.create=Cruthaigh Cloch Mhíle
+milestones.title=Teideal
+milestones.desc=Cur síos
+milestones.due_date=Dáta dlite (roghnach)
+milestones.clear=Glan
+milestones.invalid_due_date_format=Caithfidh formáid dáta dlite a bheith 'bbbb-mm-ll'.
+milestones.create_success=Cruthaíodh an chloch mhíle "%s".
+milestones.edit=Cuir Cloch Mhíle in eagar
+milestones.edit_subheader=Eagraíonn Garspriocanna saincheisteanna agus rianaítear dul chun cinn.
+milestones.cancel=Cealaigh
+milestones.modify=Nuashonraigh Cloch Mhíle
+milestones.edit_success=Nuashonraíodh cloch mhíle "%s".
+milestones.deletion=Scrios Cloch Mhíle
+milestones.deletion_desc=Cuireann scriosadh cloch mhíle é as gach saincheist ghaolmhar. Lean ar aghaidh?
+milestones.deletion_success=Tá an chloch mhíle scriosta.
+milestones.filter_sort.name=Ainm
+milestones.filter_sort.earliest_due_data=An dáta dlite is luaithe
+milestones.filter_sort.latest_due_date=An dáta dlite is déanaí
+milestones.filter_sort.least_complete=Is lú críochnaithe
+milestones.filter_sort.most_complete=Is mó críochnaithe
+milestones.filter_sort.most_issues=Saincheisteanna is mó
+milestones.filter_sort.least_issues=Saincheisteanna is lú
+
+signing.will_sign=Síneofar an gealltanas seo le heochair "%s".
+signing.wont_sign.error=Bhí earráid ann agus tú ag seiceáil an féidir an tiomantas a shíniú.
+signing.wont_sign.nokey=Níl aon eochair ar fáil chun an tiomantas seo a shíniú.
+signing.wont_sign.never=Ní shínítear tiomáintí riamh.
+signing.wont_sign.always=Sínítear tiomáintí i gcónaí.
+signing.wont_sign.pubkey=Ní shíníofar an tiomantas toisc nach bhfuil eochair phoiblí agat a bhaineann le do chuntas.
+signing.wont_sign.twofa=Caithfidh fíordheimhniú dhá-fhachtóir a bheith agat chun tiomáintí a shíniú.
+signing.wont_sign.parentsigned=Ní shíníofar an tiomantas toisc nach bhfuil an tiomantas tuismitheora sínithe.
+signing.wont_sign.basesigned=Ní shínífear an cumasc toisc nach bhfuil an tiomantas bunaithe sínithe.
+signing.wont_sign.headsigned=Ní shínífear an cumasc toisc nach bhfuil an tiomantas ceann sínithe.
+signing.wont_sign.commitssigned=Ní shínífear an cumasc toisc nach bhfuil na tiomáintí gaolmhara go léir sínithe.
+signing.wont_sign.approved=Ní shíníofar an cumaisc toisc nach bhfuil an PR ceadaithe.
+signing.wont_sign.not_signed_in=Níl tú sínithe isteach.
+
+ext_wiki=Rochtain ar Vicí Seachtrach
+ext_wiki.desc=Nasc le vicí seachtrach.
+
+wiki=Vicí
+wiki.welcome=Fáilte go dtí an Vicí.
+wiki.welcome_desc=Ligeann an vicí duit cáipéisíocht a scríobh agus a roinnt le comhoibrithe.
+wiki.desc=Scríobh agus roinn cáipéisíocht le comhoibrithe.
+wiki.create_first_page=Cruthaigh an Chéad Leathanach
+wiki.page=Leathanach
+wiki.filter_page=Leathanach scagaire
+wiki.new_page=Leathanach
+wiki.page_title=Teideal an leathanaigh
+wiki.page_content=Ábhar an leathanaigh
+wiki.default_commit_message=Scríobh nóta faoin nuashonrú leathanaigh seo (roghnach).
+wiki.save_page=Sábháil Leathanach
+wiki.last_commit_info=Cuireadh %s an leathanach seo in eagar %s
+wiki.edit_page_button=Cuir in eagar
+wiki.new_page_button=Leathanach Nua
+wiki.file_revision=Athbhreithniú Leathanach
+wiki.wiki_page_revisions=Athbhreithnithe Leathanach Vicí
+wiki.back_to_wiki=Ar ais go leathanach vicí
+wiki.delete_page_button=Scrios Leathanach
+wiki.delete_page_notice_1=Ní féidir leathanach vicí "%s" a scriosadh. Lean ort?
+wiki.page_already_exists=Tá leathanach vicí leis an ainm céanna ann cheana féin.
+wiki.reserved_page=Tá an t-ainm leathanaigh vicí "%s" in áirithe.
+wiki.pages=Leathanaigh
+wiki.last_updated=Nuashonraithe deireanach %s
+wiki.page_name_desc=Cuir isteach ainm don leathanach Vicí seo. Is iad roinnt ainmneacha speisialta: 'Baile', '_Sidebar' agus '_Footer'.
+wiki.original_git_entry_tooltip=Féach ar an gcomhad bunaidh Git in ionad nasc cairdiúil a úsáid.
+
+activity=Gníomhaíocht
+activity.navbar.pulse=Cuisle
+activity.navbar.code_frequency=Minicíocht Cód
+activity.navbar.contributors=Rannpháirtithe
+activity.navbar.recent_commits=Tiomáintí le déanaí
+activity.period.filter_label=Tréimhse:
+activity.period.daily=1 lá
+activity.period.halfweekly=3 lá
+activity.period.weekly=1 seachtain
+activity.period.monthly=1 mhí
+activity.period.quarterly=3 mhí
+activity.period.semiyearly=6 mhí
+activity.period.yearly=1 bhliain
+activity.overview=Forbhreathnú
+activity.active_prs_count_1=%d Iarratas Tarraingthe Gníomhach
+activity.active_prs_count_n=%d Iarratais Tharraing Ghníomhach
+activity.merged_prs_count_1=Iarratas Tarraing Cumaisc
+activity.merged_prs_count_n=Iarratais Tharraing Chomhcheangail
+activity.opened_prs_count_1=Iarratas Tarraing Beartaithe
+activity.opened_prs_count_n=Iarratais Tarraing Beartaithe
+activity.title.user_1=%d úsáideoir
+activity.title.user_n=%d úsáideoirí
+activity.title.prs_1=Iarratas tarraing %d
+activity.title.prs_n=%d Iarratais Tarraing
+activity.title.prs_merged_by=%s a chumasc ag %s
+activity.title.prs_opened_by=%s arna mholadh ag %s
+activity.merged_prs_label=Cumaiscthe
+activity.opened_prs_label=Molta
+activity.active_issues_count_1=%d Eagrán Gníomhach
+activity.active_issues_count_n=%d Ceisteanna Gníomhacha
+activity.closed_issues_count_1=Saincheist Dúnta
+activity.closed_issues_count_n=Saincheisteanna Dúnta
+activity.title.issues_1=Saincheist %d
+activity.title.issues_n=Saincheisteanna %d
+activity.title.issues_closed_from=%s dúnta ó %s
+activity.title.issues_created_by=%s cruthaithe ag %s
+activity.closed_issue_label=Dúnta
+activity.new_issues_count_1=Eagrán Nua
+activity.new_issues_count_n=Saincheisteanna Nua
+activity.new_issue_label=Osclaíodh
+activity.title.unresolved_conv_1=%d Comhrá Neamhréitithe
+activity.title.unresolved_conv_n=%d Comhráite Neamhréitithe
+activity.unresolved_conv_desc=Níor réitíodh na saincheisteanna agus na hiarratais tarraingthe seo le déanaí fós.
+activity.unresolved_conv_label=Oscailte
+activity.title.releases_1=Scaoileadh %d
+activity.title.releases_n=Eisiúintí %d
+activity.title.releases_published_by=%s foilsithe ag %s
+activity.published_release_label=Foilsithe
+activity.no_git_activity=Níor rinneadh aon ghníomhaíocht tiomanta sa tréimhse seo.
+activity.git_stats_exclude_merges=Gan cumaisc a áireamh,
+activity.git_stats_author_1=%d údar
+activity.git_stats_author_n=%d údair
+activity.git_stats_pushed_1=tá sé brúite
+activity.git_stats_pushed_n=tá brú orthu
+activity.git_stats_commit_1=%d tiomantas
+activity.git_stats_commit_n=%d tiomáintí
+activity.git_stats_push_to_branch=chuig %s agus
+activity.git_stats_push_to_all_branches=chuig gach brainse.
+activity.git_stats_on_default_branch=Ar %s,
+activity.git_stats_file_1=%d comhad
+activity.git_stats_file_n=%d comhaid
+activity.git_stats_files_changed_1=tá athrú tagtha
+activity.git_stats_files_changed_n=tá athraithe
+activity.git_stats_additions=agus tá ann
+activity.git_stats_addition_1=%d breisiú
+activity.git_stats_addition_n=%d breiseanna
+activity.git_stats_and_deletions=agus
+activity.git_stats_deletion_1=%d scriosadh
+activity.git_stats_deletion_n=%d scriosta
+
+contributors.contribution_type.filter_label=Cineál ranníocaíochta:
+contributors.contribution_type.commits=Tiomáintí
+contributors.contribution_type.additions=Breiseanna
+contributors.contribution_type.deletions=Scriosadh
+
+settings=Socruithe
+settings.desc=Is é socruithe an áit ar féidir leat na socruithe don stóras a bhainistiú
+settings.options=Stóras
+settings.collaboration=Comhoibritheoirí
+settings.collaboration.admin=Riarthóir
+settings.collaboration.write=Scríobh
+settings.collaboration.read=Léigh
+settings.collaboration.owner=Úinéir
+settings.collaboration.undefined=Neamhshainithe
+settings.hooks=Crúcaí Gréasán
+settings.githooks=Crúcanna Git
+settings.basic_settings=Socruithe Bunúsacha
+settings.mirror_settings=Socruithe Scáthán
+settings.mirror_settings.docs=Cuir do stóras ar bun chun tiomáintí, clibeanna agus brainsí a shioncronú go huathoibríoch le stóras eile.
+settings.mirror_settings.docs.disabled_pull_mirror.instructions=Socraigh do thionscadal chun tiomáintí, clibeanna agus brainsí a bhrú go huathoibríoch chuig stóras eile. Tá scátháin tarraingthe díchumasaithe ag riarthóir do shuíomh.
+settings.mirror_settings.docs.disabled_push_mirror.instructions=Socraigh do thionscadal chun tiomáintí, clibeanna agus brainsí a tharraingt go huathoibríoch ó stóras eile.
+settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Faoi láthair, ní féidir é seo a dhéanamh ach sa roghchlár "Imirce Nua". Le haghaidh tuilleadh eolais, téigh i gcomhairle le do thoil:
+settings.mirror_settings.docs.disabled_push_mirror.info=Chuir riarthóir do shuíomh faoi dhíchumasú scátháin bhrú.
+settings.mirror_settings.docs.no_new_mirrors=Tá do stóras ag teacht le hathruithe chuig nó ó stóras eile. Cuimhnigh le do thoil nach féidir leat scátháin nua a chruthú faoi láthair.
+settings.mirror_settings.docs.can_still_use=Cé nach féidir leat scátháin atá ann cheana a mhodhnú nó cinn nua a chruthú, féadfaidh tú do scáthán atá ann cheana a úsáid fós.
+settings.mirror_settings.docs.pull_mirror_instructions=Chun scáthán tarraingthe a shocrú, téigh i gcomhairle le do thoil:
+settings.mirror_settings.docs.more_information_if_disabled=Is féidir leat tuilleadh eolais a fháil faoi scátháin bhrú agus tarraingthe anseo:
+settings.mirror_settings.docs.doc_link_title=Conas is féidir liom na stórtha a scáthánú?
+settings.mirror_settings.docs.doc_link_pull_section=an chuid "Ag tarraingt ó stóras" den doiciméadú.
+settings.mirror_settings.docs.pulling_remote_title=Ag tarraingt ó stóras cianda
+settings.mirror_settings.mirrored_repository=Stóras scátháin
+settings.mirror_settings.pushed_repository=Stóras brúite
+settings.mirror_settings.direction=Treo
+settings.mirror_settings.direction.pull=Tarraingt
+settings.mirror_settings.direction.push=Brúigh
+settings.mirror_settings.last_update=Nuashonrú deireanach
+settings.mirror_settings.push_mirror.none=Níl aon scátháin bhrú cumraithe
+settings.mirror_settings.push_mirror.remote_url=URL Stóras Cianda Git
+settings.mirror_settings.push_mirror.add=Cuir Scáthán Brúigh leis
+settings.mirror_settings.push_mirror.edit_sync_time=Eagar eatramh sioncronaithe scátháin
+
+settings.sync_mirror=Sioncronaigh Anois
+settings.pull_mirror_sync_in_progress=Athruithe a tharraingt ón iargúlta %s i láthair na huaire.
+settings.push_mirror_sync_in_progress=Athruithe a bhrú ar an iargúlta %s i láthair na huaire.
+settings.site=Láithreán Gréasáin
+settings.update_settings=Nuashonrú Socruithe
+settings.update_mirror_settings=Nuashonraigh Socruithe Scátháin
+settings.branches.switch_default_branch=Athraigh Brainse Réamhshocraithe
+settings.branches.update_default_branch=An Brainse Réamhshocraithe a nuashonrú
+settings.branches.add_new_rule=Cuir Riail Nua leis
+settings.advanced_settings=Ardsocruithe
+settings.wiki_desc=Cumasaigh Stór Vicí
+settings.use_internal_wiki=Úsáid Vicí Insuite
+settings.default_wiki_branch_name=Ainm Brainse Réamhshocraithe Vicí
+settings.default_wiki_everyone_access=Cead Rochtana Réamhshocraithe d'úsáideoirí sínithe isteach:
+settings.failed_to_change_default_wiki_branch=Theip ar an brainse réamhshocraithe vicí a athrú.
+settings.use_external_wiki=Úsáid Vicí Seachtrach
+settings.external_wiki_url=URL Vicí Seachtrach
+settings.external_wiki_url_error=Ní URL bailí é URL seachtrach vicí.
+settings.external_wiki_url_desc=Atreoraítear cuairteoirí chuig an URL wiki seachtrach agus iad ag cliceáil ar an gcluaisín wiki.
+settings.issues_desc=Cumasaigh Rianóir Saincheist Stórais
+settings.use_internal_issue_tracker=Úsáid Rianóir Saincheist Ionsuite
+settings.use_external_issue_tracker=Úsáid Rianaire Eisiúint Sheachtrach
+settings.external_tracker_url=URL Rianaithe Saincheisteanna Seachtrach
+settings.external_tracker_url_error=Ní URL bailí é an URL rianaitheora saincheisteanna seachtrach.
+settings.external_tracker_url_desc=Déantar cuairteoirí a atreorú chuig an URL rianaithe eisiúintí seachtracha nuair a chliceálann siad ar an táb saincheisteanna.
+settings.tracker_url_format=Formáid URL Rianaithe Saincheist Seachtrach
+settings.tracker_url_format_error=Ní URL bailí é an fhormáid URL rianaitheora saincheisteanna seachtrach.
+settings.tracker_issue_style=Formáid Uimhir Rianaithe Saincheisteanna
+settings.tracker_issue_style.numeric=Uimhriúil
+settings.tracker_issue_style.alphanumeric=Alfauméireacha
+settings.tracker_issue_style.regexp=Léiriú Rialta
+settings.tracker_issue_style.regexp_pattern=Patrún Léirithe Rialta
+settings.tracker_issue_style.regexp_pattern_desc=Úsáidfear an chéad ghrúpa a gabhadh in ionad {index}
.
+settings.tracker_url_format_desc=Úsáid na sealbhóirí áite {user}
, {repo}
agus {index}
le haghaidh an ainm úsáideora, an t-ainm stórtha agus an t-innéacs eisiúna.
+settings.enable_timetracker=Cumasaigh Rianú Ama
+settings.allow_only_contributors_to_track_time=Lig do Rannpháirtithe Amach Am a Rianú
+settings.pulls_desc=Cumasaigh Iarratais Tarraingthe Stóras
+settings.pulls.ignore_whitespace=Déan neamhaird de spás bán le haghaidh coinbhleachtaí
+settings.pulls.enable_autodetect_manual_merge=Cumasaigh cumasc láimhe autodetector (Nóta: I roinnt cásanna speisialta, is féidir míbhreithiúnais tarlú)
+settings.pulls.allow_rebase_update=Cumasaigh brainse iarratais tarraingthe a nuashonrú trí athbhunú
+settings.pulls.default_delete_branch_after_merge=Scrios brainse an iarratais tarraingthe tar éis cumasc de réir réamhshocraithe
+settings.pulls.default_allow_edits_from_maintainers=Ceadaigh eagarthóirí ó chothabhálaí de réir réamhshocraithe
+settings.releases_desc=Cumasaigh Eisiúintí Stórais
+settings.packages_desc=Cumasaigh Clárlann na bPacáistí Taisclainne
+settings.projects_desc=Cumasaigh Tionscadail
+settings.projects_mode_desc=Mód Tionscadail (cé na cineálacha tionscadail le taispeáint)
+settings.projects_mode_repo=Tionscadail stórais amháin
+settings.projects_mode_owner=Tionscadail úsáideora nó org amháin
+settings.projects_mode_all=Gach tionscadal
+settings.actions_desc=Cumasaigh Gníomhartha Taiscthe
+settings.admin_settings=Socruithe Riarthóra
+settings.admin_enable_health_check=Cumasaigh Seiceálacha Sláinte Stórais (git fsck)
+settings.admin_code_indexer=Innéacsaitheoir Cód
+settings.admin_stats_indexer=Innéacsóir Staitisticí Cód
+settings.admin_indexer_commit_sha=SHA Innéacsaithe Deiridh
+settings.admin_indexer_unindexed=Neamh-innéacsaithe
+settings.reindex_button=Cuir le Scuaine Reindex
+settings.reindex_requested=Athinnéacsú Iarrtha
+settings.admin_enable_close_issues_via_commit_in_any_branch=Saincheist a dhúnadh trí ghealltanas a rinneadh i mbrainse neamh-mhainneachtana
+settings.danger_zone=Crios Contúirte
+settings.new_owner_has_same_repo=Tá stóras leis an ainm céanna ag an úinéir nua cheana féin. Roghnaigh ainm eile le do thoil.
+settings.convert=Tiontaigh go Stóras Rialta
+settings.convert_desc=Is féidir leat an scáthán seo a thiontú ina stór rialta. Ní féidir é seo a chur ar ais.
+settings.convert_notices_1=Déanfaidh an oibríocht seo an scáthán a thiontú ina stóras rialta agus ní féidir é a chur ar ais.
+settings.convert_confirm=Tiontaigh Stóras
+settings.convert_succeed=Tá an scáthán tiontaithe ina stóras rialta.
+settings.convert_fork=Tiontaigh go Stóras Rialta
+settings.convert_fork_desc=Is féidir leat an forc seo a thiontú ina stóras rialta. Ní féidir é seo a chur ar ais.
+settings.convert_fork_notices_1=Déanfaidh an oibríocht seo an forc a thiontú ina stóras rialta agus ní féidir é a chur ar ais.
+settings.convert_fork_confirm=Tiontaigh Stóras
+settings.convert_fork_succeed=Tá an forc tiontaithe ina stóras rialta.
+settings.transfer=Úinéireacht Aistrithe
+settings.transfer.rejected=Diúltaíodh d'aistriú stóras.
+settings.transfer.success=D'éirigh le haistriú stóras.
+settings.transfer.blocked_user=Ní féidir an stóras a aistriú toisc go bhfuil bac á chur ort ag an úinéir nua.
+settings.transfer_abort=Cealaigh aistriú
+settings.transfer_abort_invalid=Ní féidir leat aistriú stóras nach bhfuil ann a chealú.
+settings.transfer_abort_success=Cuireadh an t-aistriú stóras chuig %s ar ceal go rathúil.
+settings.transfer_desc=Aistrigh an stóras seo chuig úsáideoir nó chuig eagraíocht a bhfuil cearta riarthóra agat ina leith.
+settings.transfer_form_title=Cuir isteach ainm an stóras mar dhearbhú:
+settings.transfer_in_progress=Tá aistriú leanúnach ann faoi láthair. Cealaigh é más mian leat an stóras seo a aistriú chuig úsáideoir eile.
+settings.transfer_notices_1=- Caillfidh tú rochtain ar an stóras má aistríonn tú é chuig úsáideoir aonair.
+settings.transfer_notices_2=- Coimeádfaidh tú rochtain ar an stóras má aistríonn tú é chuig eagraíocht a bhfuil (comh)úinéir agat.
+settings.transfer_notices_3=- Má tá an stóras príobháideach agus má aistrítear é chuig úsáideoir aonair, cinnteoidh an gníomh seo go bhfuil ar a laghad cead léite ag an úsáideoir (agus athraíonn sé ceadanna más gá).
+settings.transfer_notices_4=- Más le heagraíocht an stóras, agus má aistríonn tú chuig eagraíocht nó duine aonair eile é, caillfidh tú na naisc idir saincheisteanna an taisclainne agus bord tionscadail na heagraíochta.
+settings.transfer_owner=Úinéir nua
+settings.transfer_perform=Déan Aistriú
+settings.transfer_started=`Tá an stóras seo marcáilte le haistriú agus tá sé ag fanacht le deimhniú ó "%s"`
+settings.transfer_succeed=Tá an stóras aistrithe.
+settings.signing_settings=Socruithe Fíoraithe Sínithe
+settings.trust_model=Samhail Iontaobhas Sínithe
+settings.trust_model.default=Múnla Iontaobhais Réamhshocraithe
+settings.trust_model.default.desc=Úsáid an tsamhail iontaobhais stórais réamhshocraithe don suiteáil
+settings.trust_model.collaborator=Comhoibritheoir
+settings.trust_model.collaborator.long=Comhoibritheoir: Sínithe muinín ag comhoibrithe
+settings.trust_model.collaborator.desc=Déanfar sínithe bailí ó chomhoibritheoirí an stóras seo a mharcáil mar 'iontaofa' – (cibé acu a mheaitseálann siad an tiomnóir nó nach bhfuil). Seachas sin, marcálfar sínithe bailí mar 'neamhiontaofa' má mheaitseálann an síniú an tiomnóir agus mar 'neamh-mheaitseáilte' mura bhfuil.
+settings.trust_model.committer=Coimisitheoir
+settings.trust_model.committer.long=Gealltóir: Sínithe iontaobhais a mheaitseálann na coimitheoirí (Meaitseálann sé seo le GitHub agus cuirfidh sé iallach ar Gitea gealltanais sínithe Gitea a bheith mar an tiomnóir)
+settings.trust_model.committer.desc=Ní mharcálfar "muinín" ar shínithe bailí ach amháin má mheaitseálann siad leis an gcoiste, nó déanfar iad a mharcáil "gan mheaitseáil". Cuireann sé seo iachall ar Gitea a bheith mar an tiomnóir ar ghealltanais sínithe agus an fíor-chimisteoir marcáilte mar Comhúdar: agus Co-tiomanta ag: leantóir sa chimiú. Caithfidh an eochair réamhshocraithe Gitea a bheith ag teacht le hÚsáideoir sa bhunachar sonraí.
+settings.trust_model.collaboratorcommitter=Comhoibritheo+Coimiteoir
+settings.trust_model.collaboratorcommitter.long=Comhoibrí+Coiste: sínithe muiníne ó chomhoibrithe a mheaitseálann an tiomnóir
+settings.trust_model.collaboratorcommitter.desc=Déanfar sínithe bailí ó chomhoibritheoirí ar an stór seo a mharcáil "muinín" má mheaitseálann siad leis an gcoiste. Seachas sin, marcálfar "neamhiontaofa" ar shínithe bailí má mheaitseálann an síniú leis an gcoiste agus "gan mheaitseáil" ar shlí eile. Cuirfidh sé seo iallach ar Gitea a mharcáil mar an tiomnóir ar ghealltanais shínithe agus an fíor-choiste a bheith marcáilte mar Comhúdaraithe Ag: agus Comhthiomanta Ag: leantóir sa ghealltanas. Caithfidh an eochair réamhshocraithe Gitea a bheith ag teacht le hÚsáideoir sa bhunachar sonraí.
+settings.wiki_delete=Scrios Sonraí Vicí
+settings.wiki_delete_desc=Tá sonraí wiki stóras a scriosadh buan agus ní féidir iad a chur ar ais.
+settings.wiki_delete_notices_1=- Scriosfaidh agus díchumasóidh sé seo an stóras vicí do %s go buan.
+settings.confirm_wiki_delete=Scrios Sonraí Vicí
+settings.wiki_deletion_success=Scriosadh sonraí vicí an stórais.
+settings.delete=Scrios an Stóras seo
+settings.delete_desc=Tá scriosadh stóras buan agus ní féidir é a chealú.
+settings.delete_notices_1=- NÍ FÉIDIR an oibríocht seo a chealú.
+settings.delete_notices_2=- Scriosfaidh an oibríocht seo stór %s go buan lena n-áirítear cód, ceisteanna, nótaí tráchta, sonraí vicí agus socruithe comhoibrithe.
+settings.delete_notices_fork_1=- Beidh forcanna den stóras seo neamhspleách tar éis iad a scriosadh.
+settings.deletion_success=Tá an stóras scriosta.
+settings.update_settings_success=Nuashonraíodh na socruithe stóras.
+settings.update_settings_no_unit=Ba cheart go gceadódh an stóras idirghníomhú de chineál éigin ar a laghad.
+settings.confirm_delete=Scrios Stóras
+settings.add_collaborator=Cuir Comhoibritheoir leis
+settings.add_collaborator_success=Cuireadh an comhoibritheoir leis.
+settings.add_collaborator_inactive_user=Ní féidir úsáideoir neamhghníomhach a chur mar chomhoibritheoir.
+settings.add_collaborator_owner=Ní féidir úinéir a chur leis mar chomhoibritheoir.
+settings.add_collaborator_duplicate=Tá an comhoibrí curtha leis an stóras seo cheana féin.
+settings.add_collaborator.blocked_user=Cuireann úinéir an stóras bac ar an gcomhoibritheoir nó a mhalairt.
+settings.delete_collaborator=Bain
+settings.collaborator_deletion=Bain Comhoibritheoir
+settings.collaborator_deletion_desc=Má dhéantar comhoibrí a bhaint, déanfar a rochtain ar an stóras seo a chúlghairm. Lean ort?
+settings.remove_collaborator_success=Tá an comhoibritheoir bainte.
+settings.org_not_allowed_to_be_collaborator=Ní féidir eagraíochtaí a chur leis mar chomhoibritheoir.
+settings.change_team_access_not_allowed=Tá rochtain foirne a athrú don stóras teoranta d'úinéir eagraíochta
+settings.team_not_in_organization=Níl an fhoireann san eagraíocht chéanna leis an stóras
+settings.teams=Foirne
+settings.add_team=Cuir Foireann leis
+settings.add_team_duplicate=Tá an stóras ag an bhfoireann cheana féin
+settings.add_team_success=Tá rochtain ag an bhfoireann anois ar an stóras.
+settings.change_team_permission_tip=Tá cead na foirne socraithe ar leathanach socraithe foirne agus ní féidir é a athrú in aghaidh an stóras
+settings.delete_team_tip=Tá rochtain ag an bhfoireann seo ar gach stórais agus ní féidir í a bhaint
+settings.remove_team_success=Tá rochtain na foirne ar an stóras bainte amach.
+settings.add_webhook=Cuir Crúca Gréasán leis
+settings.add_webhook.invalid_channel_name=Ní féidir ainm cainéal Crúca Gréasán a bheith folamh agus ní féidir ach carachtar # a bheith ann.
+settings.hooks_desc=Déanann Crúcaí Gréasán iarratais HTTP POST go huathoibríoch chuig freastalaí nuair a chuireann imeachtaí áirithe Gitea tús. Léigh tuilleadh sa treoirleabhair gréasáin.
+settings.webhook_deletion=Bain Crúca Gréasán
+settings.webhook_deletion_desc=Scriostar a shocruithe agus a stair seachadta a bhaineann le Crúca Gréasán a bhaint. Lean ar aghaidh?
+settings.webhook_deletion_success=Tá an Crúca Gréasán bainte amach.
+settings.webhook.test_delivery=Seachadadh Tástála
+settings.webhook.test_delivery_desc=Déan tástáil ar an Crúca Gréasán seo le himeacht bhréige.
+settings.webhook.test_delivery_desc_disabled=Chun an Crúca Gréasán seo a thástáil le himeacht bhréige, gníomhachtaigh é.
+settings.webhook.request=Iarratas
+settings.webhook.response=Freagra
+settings.webhook.headers=Ceanntásca
+settings.webhook.payload=Ábhar
+settings.webhook.body=Comhlacht
+settings.webhook.replay.description=Seinn an Crúca Gréasán seo arís.
+settings.webhook.replay.description_disabled=Chun an Crúca Gréasán seo a athsheinm, gníomhachtaigh é.
+settings.webhook.delivery.success=Cuireadh imeacht leis an scuaine seachadta. D'fhéadfadh sé cúpla soicind a thógáil sula dtaispeántar sé sa stair seachadta.
+settings.githooks_desc=Tá Git Crúcaí faoi thiomáint ag Git féin. Is féidir leat comhaid crúca a chur in eagar thíos chun oibríochtaí saincheaptha a shocrú.
+settings.githook_edit_desc=Mura bhfuil an hook neamhghníomhach, cuirfear ábhar samplach i láthair. Má fhágann tú ábhar go luach folamh díchumasófar an crúca seo.
+settings.githook_name=Ainm Crúca
+settings.githook_content=Ábhar Crúca
+settings.update_githook=Nuashonraigh Crúca
+settings.add_webhook_desc=Seolfaidh Gitea iarratais POST
le cineál ábhar sonraithe chuig an spriocURL. Léigh tuilleadh sa treoir Crúcaí Gréasán.
+settings.payload_url=URL spriocdhírithe
+settings.http_method=Modh HTTP
+settings.content_type=Cineál Ábhar POST
+settings.secret=Rúnda
+settings.slack_username=Ainm úsáideora
+settings.slack_icon_url=URL deilbhín
+settings.slack_color=Dath
+settings.discord_username=Ainm úsáideora
+settings.discord_icon_url=URL deilbhín
+settings.event_desc=Truicear Ar:
+settings.event_push_only=Imeachtaí Brúigh
+settings.event_send_everything=Gach Imeacht
+settings.event_choose=Imeachtaí Saincheaptha…
+settings.event_header_repository=Imeachtaí Stóras
+settings.event_create=Cruthaigh
+settings.event_create_desc=Cruthaíodh brainse nó clib.
+settings.event_delete=Scrios
+settings.event_delete_desc=Brainse nó clib scriosta.
+settings.event_fork=Forc
+settings.event_fork_desc=Forcadh stóras.
+settings.event_wiki=Vicí
+settings.event_wiki_desc=Leathanach Vicí cruthaithe, athainmnithe, curtha in eagar nó scriosta.
+settings.event_release=Scaoileadh
+settings.event_release_desc=Scaoileadh foilsithe, nuashonraithe nó scriosta i stóras.
+settings.event_push=Brúigh
+settings.event_force_push=Fórsa Brúigh
+settings.event_push_desc=Brúigh Git chuig stóras.
+settings.event_repository=Stóras
+settings.event_repository_desc=Stóras a cruthaíodh nó a scriosadh.
+settings.event_header_issue=Imeachtaí Eisiúint
+settings.event_issues=Saincheisteanna
+settings.event_issues_desc=Osclaíodh, dúnadh, athosclaíodh nó cuireadh an cheist in eagar.
+settings.event_issue_assign=Saincheist Sannaithe
+settings.event_issue_assign_desc=Eisiúint sannta nó neamhshannta.
+settings.event_issue_label=Eisiúint Lipéadaithe
+settings.event_issue_label_desc=Lipéid eisiúna nuashonraithe nó glanta.
+settings.event_issue_milestone=Clocha Míle Saincheiste
+settings.event_issue_milestone_desc=Clocha Míle Saincheiste nó Clocha Míle de-Saincheiste.
+settings.event_issue_comment=Trácht Eisiúna
+settings.event_issue_comment_desc=Trácht eisiúna cruthaithe, curtha in eagar nó a scriosadh.
+settings.event_header_pull_request=Tarraingt Imeachtaí Iarratas
+settings.event_pull_request=Iarratas Tarraingthe
+settings.event_pull_request_desc=Iarratas tarraingthe oscailte, dúnta, athoscailte nó curtha in eagar.
+settings.event_pull_request_assign=Iarratas Tarraingthe Sannta
+settings.event_pull_request_assign_desc=Iarratas tarraingthe sannta nó neamhshannta.
+settings.event_pull_request_label=Iarratas Tarraingthe Lipéadaithe
+settings.event_pull_request_label_desc=Tarraing lipéid iarratais nuashonraithe nó glanta.
+settings.event_pull_request_milestone=Iarratas Tarraing Cloch Mhíle
+settings.event_pull_request_milestone_desc=Iarratas tarraing clocha míle nó dí-chlocha míle.
+settings.event_pull_request_comment=Trácht ar Iarratas Tarraingthe
+settings.event_pull_request_comment_desc=Trácht ar iarratas tarraingthe cruthaithe, curtha in eagar, nó scriosta.
+settings.event_pull_request_review=Iarratas Tarraingthe Athbhreithnithe
+settings.event_pull_request_review_desc=Tarraing iarratas ceadaithe, diúltaithe nó trácht athbhreithnithe.
+settings.event_pull_request_sync=Iarratas Tarraing Sincronaithe
+settings.event_pull_request_sync_desc=Tarraing iarratas sioncrónaithe.
+settings.event_pull_request_review_request=Iarratas ar Athbhreithniú Tarraingthe Iarrtha
+settings.event_pull_request_review_request_desc=Tarraing athbhreithniú iarratais iarrtha nó baineadh iarratas athbhreithnithe.
+settings.event_pull_request_approvals=Ceaduithe Iarratais Tarraing
+settings.event_pull_request_merge=Cumaisc Iarratas Tarraing
+settings.event_package=Pacáiste
+settings.event_package_desc=Pacáiste a cruthaíodh nó a scriosadh i stóras.
+settings.branch_filter=Scagaire brainse
+settings.branch_filter_desc=Liosta bán brainse le haghaidh brú, cruthú brainse agus imeachtaí scriosta brainse, sonraithe mar phatrún glob. Má tá sé folamh nó *
, tuairiscítear imeachtaí do gach brainse. Féach %[2]s doiciméadú le haghaidh comhréire. Samplaí: máistir
, {master,release*}
.
+settings.authorization_header=Ceanntásc Údaraithe
+settings.authorization_header_desc=Cuirfear san áireamh mar cheanntásc údaraithe d'iarratais nuair a bheidh ann Samplaí: %s.
+settings.active=Gníomhach
+settings.active_helper=Seolfar faisnéis faoi imeachtaí spreagtha chuig an URL Crúca Gréasán seo.
+settings.add_hook_success=Cuireadh an Crúca Gréasán leis.
+settings.update_webhook=Nuashonraigh Crúca Gréasán
+settings.update_hook_success=Nuashonraíodh an Crúca Gréasán.
+settings.delete_webhook=Bain Crúca Gréasán
+settings.recent_deliveries=Seachadtaí le déana
+settings.hook_type=Cineál Crúca
+settings.slack_token=Comhartha
+settings.slack_domain=Fearann
+settings.slack_channel=Cainéal
+settings.add_web_hook_desc=Comhtháthaigh %s isteach i do stóras.
+settings.web_hook_name_gitea=Gitea
+settings.web_hook_name_gogs=Gogs
+settings.web_hook_name_slack=Slack
+settings.web_hook_name_discord=Discord
+settings.web_hook_name_dingtalk=DingTalk
+settings.web_hook_name_telegram=Teileagram
+settings.web_hook_name_matrix=Maitrís
+settings.web_hook_name_msteams=Microsoft Teams
+settings.web_hook_name_feishu_or_larksuite=Feishu / Lark Suite
+settings.web_hook_name_feishu=Feishu
+settings.web_hook_name_larksuite=Lark Suite
+settings.web_hook_name_wechatwork=WeCom (Wechat Work)
+settings.web_hook_name_packagist=Packagist
+settings.packagist_username=Ainm úsáideora Pacagist
+settings.packagist_api_token=Comhartha API
+settings.packagist_package_url=URL pacáiste Packagist
+settings.deploy_keys=Eochracha a imscaradh
+settings.add_deploy_key=Cuir Eochair Imscartha leis
+settings.deploy_key_desc=Tá rochtain tarraingthe léite amháin ag eochracha imscartha ar an stóras.
+settings.is_writable=Cumasaigh Rochtain Scríobh
+settings.is_writable_info=Lig don eochair imlonnaithe seo a bhrú chuig an stóras.
+settings.no_deploy_keys=Níl aon eochracha imscartha ann fós.
+settings.title=Teideal
+settings.deploy_key_content=Ábhar
+settings.key_been_used=Tá eochair imscartha le hábhar comhionann in úsáid cheana féin.
+settings.key_name_used=Tá eochair imscartha leis an ainm céanna ann cheana féin.
+settings.add_key_success=Tá an eochair imlonnaithe "%s" curtha leis.
+settings.deploy_key_deletion=Bain Eochair Imlonnaithe
+settings.deploy_key_deletion_desc=Ag baint eochair imscartha, cuirfear a rochtain ar an stóras seo a chúlghairm. Lean ar aghaidh?
+settings.deploy_key_deletion_success=Tá an eochair imscartha bainte amach.
+settings.branches=Brainsí
+settings.protected_branch=Cosaint Brainse
+settings.protected_branch.save_rule=Sábháil Riail
+settings.protected_branch.delete_rule=Scrios Riail
+settings.protected_branch_can_push=Ceadaigh bhrú?
+settings.protected_branch_can_push_yes=Is féidir leat a bhrú
+settings.protected_branch_can_push_no=Ní féidir leat a bhrú
+settings.branch_protection=Rialacha Cosanta Brainse do Bhrainse '%s'
+settings.protect_this_branch=Cumasaigh Cosaint Brainse
+settings.protect_this_branch_desc=Cosc ar scriosadh agus cuireann sé srian le Git a bhrú agus a chumasc go dtí an brainse.
+settings.protect_disable_push=Díchumasaigh Brúigh
+settings.protect_disable_push_desc=Ní cheadfar aon bhrú chuig an mbrainse seo.
+settings.protect_disable_force_push=Díchumasaigh Fórsa Brú
+settings.protect_disable_force_push_desc=Ní cheadfar aon fhórsa a bhrú chuig an mbrainse seo.
+settings.protect_enable_push=Cumasaigh Brúigh
+settings.protect_enable_push_desc=Beidh cead ag aon duine a bhfuil rochtain scríofa aige/aici brú chuig an mbrainse seo (ach gan brú a bhrú).
+settings.protect_enable_force_push_all=Cumasaigh Fórsa Brúigh
+settings.protect_enable_force_push_all_desc=Beidh cead ag duine ar bith a bhfuil rochtain brú aige brú a chur ar an mbrainse seo.
+settings.protect_enable_force_push_allowlist=Brú Fórsa Srianta ón Liosta Ceadaithe
+settings.protect_enable_force_push_allowlist_desc=Ní cheadófar ach d’úsáideoirí liostaithe nó foirne a bhfuil rochtain bhrú acu brú a chur ar an mbrainse seo.
+settings.protect_enable_merge=Cumasaigh Cumaisc
+settings.protect_enable_merge_desc=Beidh cead ag aon duine a bhfuil rochtain scríofa aige na hiarratais tarraingte a chumasc leis an mbrainse seo.
+settings.protect_whitelist_committers=Brú Srianta ón Liosta Ceadaithe
+settings.protect_whitelist_committers_desc=Ní bheidh cead ach úsáideoirí nó foirne liostaithe ceadaithe brú chuig an mbrainse seo (ach gan brú a chur i bhfeidhm).
+settings.protect_whitelist_deploy_keys=Eochracha imscartha ón Liosta Ceadaithe le rochtain scríofa chun brú.
+settings.protect_whitelist_users=Úsáideoirí ar an Liosta Ceadaithe chun brú a dhéanamh:
+settings.protect_whitelist_teams=Foirne ar an Liosta Ceadaithe chun brú a dhéanamh:
+settings.protect_force_push_allowlist_users=Úsáideoirí ar an Liosta Ceadaithe le haghaidh brú fórsa a dhéanamh:
+settings.protect_force_push_allowlist_teams=Foirne ar an Liosta Ceadaithe le haghaidh brú fórsa a dhéanamh:
+settings.protect_force_push_allowlist_deploy_keys=Eochracha imscaradh le rochtain brú ar an Liosta Ceadaithe le haghaidh brú fórsa a dhéanamh.
+settings.protect_merge_whitelist_committers=Cumasaigh Liosta Ceadaithe Cumaisc
+settings.protect_merge_whitelist_committers_desc=Ní lig ach d'úsáideoirí nó d'fhoirne liostaithe iarratais tarraingthe isteach sa bhrainse seo a chumasc.
+settings.protect_merge_whitelist_users=Úsáideoirí ar an Liosta Ceadaithe le haghaidh cumasc:
+settings.protect_merge_whitelist_teams=Foirne ar an Liosta Ceadaithe le haghaidh cumasc:
+settings.protect_check_status_contexts=Cumasaigh Seiceáil Stádas
+settings.protect_status_check_patterns=Patrúin seiceála stádais:
+settings.protect_status_check_patterns_desc=Iontráil patrúin chun a shonrú cé na seiceálacha stádais a chaithfidh pas a fháil sular féidir brainsí a chumasc le brainse a chomhoibríonn leis an riail seo. Sonraíonn gach líne patrún. Ní féidir patrúin a bheith folamh.
+settings.protect_check_status_contexts_desc=A cheangal ar sheiceálacha stádais pas a fháil roimh chumasc. Nuair a bheidh sé cumasaithe, ní mór gealltanais a bhrú ar dtús chuig brainse eile, ansin iad a chumasc nó a bhrú go díreach chuig brainse a thagann leis an riail seo tar éis do sheiceálacha stádais a bheith caite. Mura ndéantar comhthéacs ar bith a mheaitseáil, ní mór go n-éireodh leis an ngealltanas deiridh beag beann ar an gcomhthéacs.
+settings.protect_check_status_contexts_list=Seiceálacha stádais a fuarthas sa tseachtain seo caite don stóras seo
+settings.protect_status_check_matched=Comhoiriúnach
+settings.protect_invalid_status_check_pattern=Patrún seiceála stádais neamhbhailí: "%s".
+settings.protect_no_valid_status_check_patterns=Gan aon phatrúin seiceála stádais bailí.
+settings.protect_required_approvals=Ceaduithe riachtanacha:
+settings.protect_required_approvals_desc=Ná lig ach iarratas tarraingthe a chumasc le go leor ceaduithe riachtanacha. Tá ceaduithe riachtanacha ó úsáideoirí nó foirne atá ar an liosta ceadaithe nó ó aon duine a bhfuil rochtain scríofa acu.
+settings.protect_approvals_whitelist_enabled=Ceaduithe a theorannú le húsáideoirí nó foirne liostaithe
+settings.protect_approvals_whitelist_enabled_desc=Ní dhéanfar ach léirmheasanna ó úsáideoirí nó foirne ceadaithe a áireamh chuig na formheasanna riachtanacha. Gan liosta ceadaithe formheasa, áireofar léirmheasanna ó aon duine a bhfuil rochtain scríofa acu ar na ceaduithe riachtanacha.
+settings.protect_approvals_whitelist_users=Léirmheastóirí ón Liosta Ceadaithe:
+settings.protect_approvals_whitelist_teams=Foirne ar an Liosta Ceadaithe le haghaidh athbhreithnithe:
+settings.dismiss_stale_approvals=Déan seancheaduithe a dhíbhe
+settings.dismiss_stale_approvals_desc=Nuair a bhrúitear gealltanais nua a athraíonn ábhar an iarratais tarraingthe chuig an mbrainse, déanfar sean-cheaduithe a dhíchur.
+settings.ignore_stale_approvals=Déan neamhaird de sheancheaduithe
+settings.ignore_stale_approvals_desc=Ná cuir faomhadh a rinneadh ar ghealltanais níos sine (athbhreithnithe seanchaite) san áireamh i dtreo cé mhéad faomhadh atá ag an PR. Ní bhaineann le hábhar má dhéantar athbhreithnithe seanchaite a dhíbhe cheana féin.
+settings.require_signed_commits=Ceangaltais Sínithe a cheangal
+settings.require_signed_commits_desc=Diúltaigh brú chuig an mbrainse seo má tá siad neamhshínithe nó neamh-fhíoraithe.
+settings.protect_branch_name_pattern=Patrún Ainm Brainse Cosanta
+settings.protect_branch_name_pattern_desc=Patrúin ainmneacha brainse faoi chosaint. Féach an cháipéisíocht le haghaidh comhréire patrún. Samplaí: príomh, scaoileadh/**
+settings.protect_patterns=Patrúin
+settings.protect_protected_file_patterns=Patrúin comhaid faoi chosaint (scartha ag baint úsáide as leathchóilín ';'):
+settings.protect_protected_file_patterns_desc=Ní cheadaítear comhaid chosanta a athrú go díreach fiú má tá cearta ag an úsáideoir comhaid sa bhrainse seo a chur leis, a chur in eagar nó a scriosadh. Is féidir patrúin iolracha a dheighilt trí úsáid a bhaint as leathstad (';'). Féach ar %[2]s do chomhréir phatrúin. Samplaí: .drone.yml
, /docs/**/*.txt
.
+settings.protect_unprotected_file_patterns=Patrúin comhaid gan chosaint (scartha ag baint úsáide as leathchóilín ';'):
+settings.protect_unprotected_file_patterns_desc=Comhaid gan chosaint a cheadaítear a athrú go díreach má tá rochtain scríofa ag an úsáideoir, ag seachaint srianadh brú. Is féidir patrúin iolracha a dheighilt trí úsáid a bhaint as leathstad (';'). Féach ar %[2]s do chomhréir phatrúin. Samplaí: .drone.yml
, /docs/**/*.txt
.
+settings.add_protected_branch=Cumasaigh cosaint
+settings.delete_protected_branch=Díchumasaigh cosaint
+settings.update_protect_branch_success=Tá cosaint brainse don riail "%s" nuashonraithe.
+settings.remove_protected_branch_success=Baineadh cosaint brainse don riail "%s".
+settings.remove_protected_branch_failed=Theip ar riail cosanta brainse "%s" a bhaint.
+settings.protected_branch_deletion=Scrios Cosaint Brainse
+settings.protected_branch_deletion_desc=Ligeann cosaint brainse a dhíchumasú d'úsáideoirí a bhfuil cead scríofa acu brú chuig an mbrainse. Lean ar aghaidh?
+settings.block_rejected_reviews=Cuir bac ar chumasc ar léirmheasanna diúltaithe
+settings.block_rejected_reviews_desc=Ní bheidh cumasc indéanta nuair a iarrann athbhreithnithe oifigiúla athruithe, fiú má tá go leor ceadaithe ann.
+settings.block_on_official_review_requests=Cuir bac ar chumasc ar iarratais ar athbhreithniú oifigiúil
+settings.block_on_official_review_requests_desc=Ní bheidh sé indéanta cumasc nuair a bhíonn iarratais oifigiúla ar athbhreithniú aige, fiú má tá go leor ceadaithe ann.
+settings.block_outdated_branch=Cuir bac ar chumasc má tá an t-iarratas tarraingthe as dáta
+settings.block_outdated_branch_desc=Ní bheidh cumasc indéanta nuair a bhíonn ceannbhrainse taobh thiar de bhronnbhrainse.
+settings.default_branch_desc=Roghnaigh brainse stóras réamhshocraithe le haghaidh iarratas tarraingte agus geallann an cód:
+settings.merge_style_desc=Stíleanna Cumaisc
+settings.default_merge_style_desc=Stíl Cumaisc Réamhshocraithe
+settings.choose_branch=Roghnaigh brainse…
+settings.no_protected_branch=Níl aon bhrainsí cosanta ann.
+settings.edit_protected_branch=Cuir in eagar
+settings.protected_branch_required_rule_name=Ainm riail riachtanach
+settings.protected_branch_duplicate_rule_name=Ainm riail dúblach
+settings.protected_branch_required_approvals_min=Ní féidir ceaduithe riachtanacha a bheith diúltach.
+settings.tags=Clibeanna
+settings.tags.protection=Cosaint Clib
+settings.tags.protection.pattern=Patrún Clib
+settings.tags.protection.allowed=Ceadaithe
+settings.tags.protection.allowed.users=Úsáideoirí ceadaithe
+settings.tags.protection.allowed.teams=Foirne ceadaithe
+settings.tags.protection.allowed.noone=Níl aon duine
+settings.tags.protection.create=Clib a chosaint
+settings.tags.protection.none=Níl aon chlibeanna cosanta ann.
+settings.tags.protection.pattern.description=Is féidir leat ainm amháin nó patrún glob nó slonn rialta a úsáid chun clibeanna iolracha a mheaitseáil. Léigh tuilleadh sa treoir na gclibeanna cosanta.
+settings.bot_token=Comhartha Bota
+settings.chat_id=ID Comhrá
+settings.thread_id=ID Snáithe
+settings.matrix.homeserver_url=URL sheirbhíse baile
+settings.matrix.room_id=ID seomra
+settings.matrix.message_type=Cineál teachtaireachta
+settings.visibility.private.button=Déan Príobháideach
+settings.visibility.private.text=Ní amháin go gcuirfidh an infheictheacht a athrú go príobháideach an repo infheicthe amháin do bhaill cheadaithe ach féadfaidh sé an gaol idir é agus forcanna, féachadóirí agus réaltaí a bhaint.
+settings.visibility.private.bullet_title=An infheictheacht a athrú go toil phríobháide
+settings.visibility.private.bullet_one=Déan an stóras infheicthe do chomhaltaí ceadaithe amháin.
+settings.visibility.private.bullet_two=B’fhéidir go mbainfear an gaol idir é agus forcanna, faireoirí, agus réaltaí.
+settings.visibility.public.button=Déan Poiblí
+settings.visibility.public.text=Má athraíonn an infheictheacht don phobal, beidh an stóras le feiceáil do dhuine ar bith.
+settings.visibility.public.bullet_title=Athróidh an infheictheacht go poiblí:
+settings.visibility.public.bullet_one=Déan an repo le feiceáil do dhuine ar bith.
+settings.visibility.success=Athraigh infheictheacht stóras.
+settings.visibility.error=Tharla earráid agus tú ag iarraidh infheictheacht an stóras a athrú.
+settings.visibility.fork_error=Ní féidir infheictheacht stóras forcáilte a athrú.
+settings.archive.button=Cartlann Stóras
+settings.archive.header=Cartlann an Stóras seo
+settings.archive.text=Má dhéantar an stóras a chartlannú, beidh sé léite go hiomlán amháin. Beidh sé i bhfolach ón bpainéal. Aon duine (ní fiú tú!) beidh siad in ann tiomantas nua a dhéanamh, nó aon saincheisteanna nó iarratais a tharraingt a oscailt.
+settings.archive.success=Rinneadh an stóras a chartlannú go rathúil.
+settings.archive.error=Tharla earráid agus tú ag iarraidh an stóras a chartlannú. Féach an logáil le haghaidh tuilleadh sonraí.
+settings.archive.error_ismirror=Ní féidir leat stóras scátháin a chartlannú.
+settings.archive.branchsettings_unavailable=Níl socruithe brainse ar fáil má tá an stóras i gcartlann.
+settings.archive.tagsettings_unavailable=Níl socruithe clibeanna ar fáil má tá an stóras i gcartlann.
+settings.archive.mirrors_unavailable=Níl scátháin ar fáil má tá an stóras i gcartlann.
+settings.unarchive.button=Stóras gan cartlann
+settings.unarchive.header=Díchartlannaigh an stóras seo
+settings.unarchive.text=Beidh an stóras a dhícheangal ag athghairm a chumas chun tiomanta agus brúigh a fháil, chomh maith le fadhbanna nua agus iarratais tarraing.
+settings.unarchive.success=Rinneadh an stóras a dhíchartlann go rathúil.
+settings.unarchive.error=Tharla earráid agus tú ag iarraidh an stóras a dhíchartlannú. Féach an logáil le haghaidh tuilleadh sonraí.
+settings.update_avatar_success=Nuashonraíodh avatar an stóras.
+settings.lfs=LFS
+settings.lfs_filelist=Comhaid LFS a stóráiltear sa stóras seo
+settings.lfs_no_lfs_files=Níl aon chomhaid LFS stóráilte sa stóras seo
+settings.lfs_findcommits=Aimsigh gealltanais
+settings.lfs_lfs_file_no_commits=Níor aimsíodh aon ghealltanais don chomhad LFS seo
+settings.lfs_noattribute=Níl an tréith inghlasáilte sa bhrainse réamhshocraithe ag an gcosán seo
+settings.lfs_delete=Scrios comhad LFS le OID %s
+settings.lfs_delete_warning=D'fhéadfadh earráidí 'níl réad ann 'ar an tseiceáil a bheith ina chúis le comhad LFS a scriosadh. An bhfuil tú cinnte?
+settings.lfs_findpointerfiles=Faigh comhaid pointeora
+settings.lfs_locks=Glais
+settings.lfs_invalid_locking_path=Cosan neamhbhailí: %s
+settings.lfs_invalid_lock_directory=Ní féidir eolaire a ghlasáil: %s
+settings.lfs_lock_already_exists=Tá an glas ann cheana féin: %s
+settings.lfs_lock=Glas
+settings.lfs_lock_path=Cosán comhad le haghaidh glasáil...
+settings.lfs_locks_no_locks=Gan Glais
+settings.lfs_lock_file_no_exist=Níl an comhad faoi ghlas sa bhrainse réamhshocraithe
+settings.lfs_force_unlock=Díghlasáil Fórsa
+settings.lfs_pointers.found=Aimsíodh %d pointeoir(í) blob - %d bainteach, %d neamhghaolmhar (%d in easnamh ón siopa)
+settings.lfs_pointers.sha=SHA Blob
+settings.lfs_pointers.oid=OID
+settings.lfs_pointers.inRepo=I Stóras
+settings.lfs_pointers.exists=Ann sa siopa
+settings.lfs_pointers.accessible=Inrochtana don Úsáideoir
+settings.lfs_pointers.associateAccessible=Comhlach %d OID inrochtana
+settings.rename_branch_failed_exist=Ní féidir brainse a athainmniú toisc go bhfuil spriocbhrainse %s ann.
+settings.rename_branch_failed_not_exist=Ní féidir brainse %s a athainmniú toisc nach bhfuil sé ann.
+settings.rename_branch_success=Ainmníodh brainse %s go rathúil go %s.
+settings.rename_branch_from=sean-ainm brainse
+settings.rename_branch_to=ainm brainse nua
+settings.rename_branch=Athainmnigh brainse
+
+diff.browse_source=Brabhsáil Foinse
+diff.parent=tuismitheoir
+diff.commit=tiomantas
+diff.git-notes=Nótaí
+diff.data_not_available=Níl Ábhar Difríochtaí Ar Fáil
+diff.options_button=Roghanna Diff
+diff.show_diff_stats=Taispeáin Staitisticí
+diff.download_patch=Íoslódáil an comhad paiste
+diff.download_diff=Íoslódáil Comhad Diff
+diff.show_split_view=Amharc Scoilt
+diff.show_unified_view=Amharc Aontaithe
+diff.whitespace_button=Spás bán
+diff.whitespace_show_everything=Taispeáin gach athrú
+diff.whitespace_ignore_all_whitespace=Déan neamhaird de spás bán nuair a dhéantar comparáid idir línte
+diff.whitespace_ignore_amount_changes=Déan neamhaird de athruithe ar an méid spás bán
+diff.whitespace_ignore_at_eol=Déan neamhaird ar athruithe ar spás bán ag EOL
+diff.stats_desc=D'athraigh %d comhad le %d breiseanna agus %d scriosta
+diff.stats_desc_file=%d athruithe: %d breiseanna agus scriosadh %d
+diff.bin=BRUSCAIR
+diff.bin_not_shown=Ní thaispeántar comhad dénártha.
+diff.view_file=Féach ar an gComhad
+diff.file_before=Roimhe
+diff.file_after=Tar éis
+diff.file_image_width=Leithead
+diff.file_image_height=Airde
+diff.file_byte_size=Méid
+diff.file_suppressed=Tá difríocht comhad cosc orthu toisc go bhfuil sé ró-mhór
+diff.file_suppressed_line_too_long=Cuirtear difríocht comhad faoi chois toisc go bhfuil líne amháin nó níos mó rófhada
+diff.too_many_files=Níor taispeánadh roinnt comhad mar go bhfuil an iomarca comhad athraithe sa difríocht seo
+diff.show_more=Taispeáin Tuilleadh
+diff.load=Difríocht Luchtaigh
+diff.generated=a ghintear
+diff.vendored=curtha ar fáil
+diff.comment.add_line_comment=Cuir trácht líne leis
+diff.comment.placeholder=Fág trácht
+diff.comment.markdown_info=Tacaítear le stíliú le marcáil.
+diff.comment.add_single_comment=Cuir trácht aonair leis
+diff.comment.add_review_comment=Cuir trácht leis
+diff.comment.start_review=Tosaigh athbhreithniú
+diff.comment.reply=Freagra
+diff.review=Léirmheas
+diff.review.header=Cuir isteach léirmheas
+diff.review.placeholder=Trácht athbhreithnithe
+diff.review.comment=Trácht
+diff.review.approve=Ceadú
+diff.review.self_reject=Ní féidir le húdair iarratais tarraing athruithe a iarraidh ar a n-iarratas tarraingthe
+diff.review.reject=Iarr athruithe
+diff.review.self_approve=Ní féidir le húdair iarratais tarraing a n-iarratas tarraingthe féin a chead
+diff.committed_by=tiomanta ag
+diff.protected=Cosanta
+diff.image.side_by_side=Taobh le Taobh
+diff.image.swipe=Scaoil
+diff.image.overlay=Forleagan
+diff.has_escaped=Tá carachtair Unicode i bhfolach ag an líne seo
+diff.show_file_tree=Taispeáin crann comhad
+diff.hide_file_tree=Folaigh crann comhad
+
+releases.desc=Rian leaganacha tionscadal agus íoslódálacha.
+release.releases=Eisiúintí
+release.detail=Sonraí eisithe
+release.tags=Clibeanna
+release.new_release=Scaoileadh Nua
+release.draft=Dréacht
+release.prerelease=Réamh-eisiúint
+release.stable=Cobhsaí
+release.compare=Déan comparáid
+release.edit=cuir in eagar
+release.ahead.commits=Geallann %d
+release.ahead.target=go %s ón scaoileadh seo
+tag.ahead.target=chuig %s ón gclib seo
+release.source_code=Cód Foinse
+release.new_subheader=Eagraíonn eiseachtaí leaganacha tionscadail
+release.edit_subheader=Eagraíonn eisiúintí leaganacha tionscadal.
+release.tag_name=Ainm chlib
+release.target=Sprioc
+release.tag_helper=Roghnaigh clib atá ann cheana nó cruthaigh clib nua.
+release.tag_helper_new=Clib nua. Cruthófar an chlib seo ón sprioc.
+release.tag_helper_existing=Clib atá ann cheana.
+release.title=Teideal scaoileadh
+release.title_empty=Ní féidir leis an teideal a bheith folamh.
+release.message=Déan cur síos ar an eisiúint seo
+release.prerelease_desc=Marcáil mar Réamh-eisiúint
+release.prerelease_helper=Marcáil an scaoileadh seo mí-oiriúnach le húsáid táirgeachta.
+release.cancel=Cealaigh
+release.publish=Foilsigh Eisiúint
+release.save_draft=Sábháil Dréacht
+release.edit_release=Eisiúint Nuashonraithe
+release.delete_release=Scrios Scaoilte
+release.delete_tag=Scrios Clib
+release.deletion=Scrios Scaoilte
+release.deletion_desc=Ní bhíonn scaoileadh ag scriosadh ach é ó Gitea. Ní dhéanfaidh sé difear do chlib Git, ar ábhar do stóras nó ar a stair. Lean ar aghaidh?
+release.deletion_success=Tá an scaoileadh scriosta.
+release.deletion_tag_desc=Scriosfar an chlib seo ón stóras. Ní athraítear inneachar agus stair na stórtha. Lean ort?
+release.deletion_tag_success=Tá an chlib scriosta.
+release.tag_name_already_exist=Tá eisiúint leis an ainm clib seo ann cheana féin.
+release.tag_name_invalid=Níl ainm an chlib bailí.
+release.tag_name_protected=Tá ainm an chlib cosanta.
+release.tag_already_exist=Tá an t-ainm clib seo ann cheana féin.
+release.downloads=Íoslódálacha
+release.download_count=Íoslódálacha: %s
+release.add_tag_msg=Úsáid teideal agus ábhar an eisiúna mar theachtaireacht chlibe.
+release.add_tag=Cruthaigh Clib Amháin
+release.releases_for=Eisiúintí do %s
+release.tags_for=Clibeanna do %s
+
+branch.name=Ainm Brainse
+branch.already_exists=Tá brainse leis an ainm "%s" ann cheana féin.
+branch.delete_head=Scrios
+branch.delete=`Scrios Brainse "%s"`
+branch.delete_html=Scrios Brainse
+branch.delete_desc=Tá brainse a scriosadh buan. Cé go bhféadfadh an brainse scriosta leanúint ar aghaidh ag bheith ann ar feadh tréimhse ghearr sula mbaintear í i ndáiríre, NÍ FÉIDIR é a dhíchur i bhformhór Lean ar aghaidh?
+branch.deletion_success=Tá brainse "%s" scriosta.
+branch.deletion_failed=Theip ar scriosadh brainse "%s".
+branch.delete_branch_has_new_commits=Ní féidir brainse “%s” a scriosadh toisc go bhfuil tiomáintí nua curtha leis tar éis a chumasc.
+branch.create_branch=Cruthaigh brainse %s
+branch.create_from=`ó "%s"`
+branch.create_success=Tá brainse "%s" cruthaithe.
+branch.branch_already_exists=Tá brainse "%s" sa stóras seo cheana.
+branch.branch_name_conflict=Tagann an t-ainm brainse "%s" leis an mbrainse "%s" atá ann cheana féin.
+branch.tag_collision=Ní féidir brainse "%s" a chruthú mar tá clib leis an ainm céanna sa stóras cheana féin.
+branch.deleted_by=Scriosta ag %s
+branch.restore_success=Tá brainse "%s" curtha ar ais.
+branch.restore_failed=Theip ar chur ar ais brainse "%s".
+branch.protected_deletion_failed=Tá brainse "%s" cosanta. Ní féidir é a scriosadh.
+branch.default_deletion_failed=Is é brainse "%s" an brainse réamhshocraithe. Ní féidir é a scriosadh.
+branch.restore=`Athchóirigh Brainse "%s"`
+branch.download=`Brainse Íosluchtaithe "%s"`
+branch.rename=`Athainmnigh Brainse "%s"`
+branch.included_desc=Tá an brainse seo mar chuid den bhrainse réamhshocraithe
+branch.included=San áireamh
+branch.create_new_branch=Cruthaigh brainse ón mbrainse:
+branch.confirm_create_branch=Cruthaigh brainse
+branch.warning_rename_default_branch=Tá tú ag athainmniú an bhrainse réamhshocraithe.
+branch.rename_branch_to=Athainmnigh "%s" go:
+branch.confirm_rename_branch=Athainmnigh brainse
+branch.create_branch_operation=Cruthaigh brainse
+branch.new_branch=Cruthaigh brainse nua
+branch.new_branch_from=`Cruthaigh brainse nua ó "%s"`
+branch.renamed=Ainmníodh brainse %s go %s.
+
+tag.create_tag=Cruthaigh clib %s
+tag.create_tag_operation=Cruthaigh clib
+tag.confirm_create_tag=Cruthaigh clib
+tag.create_tag_from=`Cruthaigh clib nua ó "%s"`
+
+tag.create_success=Tá clib "%s" cruthaithe.
+
+topic.manage_topics=Bainistigh topaicí
+topic.done=Déanta
+topic.count_prompt=Ní féidir leat níos mó ná 25 topaicí a roghnú
+topic.format_prompt=Ní mór do thopaicí tosú le litir nó uimhir, is féidir daiseanna ('-') agus poncanna ('.') a áireamh, a bheith suas le 35 carachtar ar fad. Ní mór litreacha a bheith i litreacha beaga.
+
+find_file.go_to_file=Téigh go dtí an comhad
+find_file.no_matching=Níl aon chomhad meaitseála le fáil
+
+error.csv.too_large=Ní féidir an comhad seo a rinneadh toisc go bhfuil sé ró-mhór.
+error.csv.unexpected=Ní féidir an comhad seo a rindreáil toisc go bhfuil carachtar ann gan súil leis i líne %d agus i gcolún %d.
+error.csv.invalid_field_count=Ní féidir an comhad seo a rindreáil toisc go bhfuil líon mícheart réimsí i líne %d.
+error.broken_git_hook=Is cosúil go bhfuil crúcaí git den stór seo briste. Lean an doiciméadúchán chun iad a cheartú, ansin brúigh roinnt gealltanas chun an stádas a athnuachan.
+
+[graphs]
+component_loading=Á lódáil %s...
+component_loading_failed=Ní fhéadfaí %s a luchtú
+component_loading_info=Seans go dtógfaidh sé seo beagán…
+component_failed_to_load=Tharla earráid gan choinne.
+code_frequency.what=minicíocht cód
+contributors.what=ranníocaíochtaí
+recent_commits.what=tiomantáin le déanaí
+
+[org]
+org_name_holder=Ainm na hEagraíochta
+org_full_name_holder=Ainm iomlán na hEagraíochta
+org_name_helper=Ba cheart go mbeadh ainmneacha eagraíochta gearr agus i gcuimhne.
+create_org=Cruthaigh Eagraíocht
+repo_updated=Nuashonraithe
+members=Comhaltaí
+teams=Foirne
+code=Cód
+lower_members=comhaltaí
+lower_repositories=stórais
+create_new_team=Foireann Nua
+create_team=Cruthaigh Foireann
+org_desc=Cur síos
+team_name=Ainm Foirne
+team_desc=Cur síos
+team_name_helper=Ba chóir go mbeadh ainmneacha foirne gearr agus i gcuimhne.
+team_desc_helper=Déan cur síos ar chuspóir nó ról na foirne.
+team_access_desc=Rochtain stórais
+team_permission_desc=Cead
+team_unit_desc=Ceadaigh Rochtain ar Rannóga Stóras
+team_unit_disabled=(Díchumasaithe)
+
+form.name_reserved=Tá an t-ainm eagraíochta "%s" curtha in áirithe.
+form.name_pattern_not_allowed=Ní cheadaítear an patrún "%s" in ainm eagraíochta.
+form.create_org_not_allowed=Níl cead agat eagraíocht a chruthú.
+
+settings=Socruithe
+settings.options=Eagraíocht
+settings.full_name=Ainm Iomlán
+settings.email=Ríomhphost Teagmhála
+settings.website=Láithreán Gréasáin
+settings.location=Suíomh
+settings.permission=Ceadanna
+settings.repoadminchangeteam=Is féidir le riarthóir an stórais rochtain d'fhoirne a chur leis agus a bhaint
+settings.visibility=Infheictheacht
+settings.visibility.public=Poiblí
+settings.visibility.limited=Teoranta (Infheicthe d'úsáideoirí fíordheimhnithe amháin)
+settings.visibility.limited_shortname=Teoranta
+settings.visibility.private=Príobháideach (Infheicthe amháin do bhaill eagraíochta)
+settings.visibility.private_shortname=Príobháideach
+
+settings.update_settings=Nuashonrú Socruithe
+settings.update_setting_success=Nuashonraíodh socruithe eagraíochta.
+settings.change_orgname_prompt=Nóta: Athróidh ainm na heagraíochta ag athrú URL d'eagraíochta agus saorfar an sean-ainm.
+settings.change_orgname_redirect_prompt=Déanfaidh an sean-ainm a atreorú go dtí go n-éilítear é.
+settings.update_avatar_success=Nuashonraíodh avatar na heagraíochta.
+settings.delete=Scrios Eagraíocht
+settings.delete_account=Scrios an Eagraíocht seo
+settings.delete_prompt=Bainfear an eagraíocht go buan. NÍ FÉIDIR é seo a chealú!
+settings.confirm_delete_account=Deimhnigh scriosadh
+settings.delete_org_title=Scrios Eagraíocht
+settings.delete_org_desc=Scriosfar an eagraíocht seo go buan. Lean ar aghaidh?
+settings.hooks_desc=Cuir crúcaí gréasán in leis a spreagfar do gach stóras faoin eagraíocht seo.
+
+settings.labels_desc=Cuir lipéid leis ar féidir iad a úsáid ar shaincheisteanna do gach stóras faoin eagraíocht seo.
+
+members.membership_visibility=Infheictheacht Ballraíochta:
+members.public=Infheicthe
+members.public_helper=dhéanamh i bhfolach
+members.private=I bhfolach
+members.private_helper=a dhéanamh le feiceáil
+members.member_role=Ról Comhalta:
+members.owner=Úinéir
+members.member=Comhalta
+members.remove=Bain
+members.remove.detail=Bain %[1]s de %[2]s?
+members.leave=Fágáil
+members.leave.detail=Fág %s?
+members.invite_desc=Cuir ball nua le %s:
+members.invite_now=Tabhair cuireadh Anois
+
+teams.join=Bígí
+teams.leave=Fág
+teams.leave.detail=Fág %s?
+teams.can_create_org_repo=Cruthaigh stórais
+teams.can_create_org_repo_helper=Is féidir le baill stóras nua a chruthú san eagraíocht. Gheobhaidh an cruthaitheoir rochtain riarthóra ar an stóras nua.
+teams.none_access=Gan Rochtain
+teams.none_access_helper=Ní féidir le baill aon ghníomhaíocht eile a fheiceáil nó a dhéanamh ar an aonad seo. Níl aon éifeacht aige ar stórais phoiblí.
+teams.general_access=Rochtain Ginearálta
+teams.general_access_helper=Déanfar ceadanna baill a chinneadh ag an tábla ceadanna thíos.
+teams.read_access=Léigh
+teams.read_access_helper=Is féidir le baill stórais foirne a fheiceáil agus a chlónáil.
+teams.write_access=Scríobh
+teams.write_access_helper=Is féidir le baill léamh agus brú chuig stórais foirne.
+teams.admin_access=Rochtain Riarthóra
+teams.admin_access_helper=Is féidir le baill tarraingt agus brú chuig stórais foirne agus comhoibritheoirí a chur leo.
+teams.no_desc=Níl aon tuairisc ag an bhfoireann seo
+teams.settings=Socruithe
+teams.owners_permission_desc=Tá rochtain iomlán ag úinéirí ar gach stórais agus tá rochtain ag an riarthóir ar an eagraíocht.
+teams.members=Baill Foirne
+teams.update_settings=Nuashonrú Socruithe
+teams.delete_team=Scrios Foireann
+teams.add_team_member=Cuir Comhalta Foirne leis
+teams.invite_team_member=Tabhair cuireadh chuig %s
+teams.invite_team_member.list=Cuirí ar Feitheamh
+teams.delete_team_title=Scrios Foireann
+teams.delete_team_desc=Cúlghairtear rochtain stórais óna baill a scriosadh foirne. Lean ar aghaidh?
+teams.delete_team_success=Tá an fhoireann scriosta.
+teams.read_permission_desc=Deonaíonn an fhoireann seo rochtain Léamh: is féidir le baill stórtha foirne a fheiceáil agus a chlónáil.
+teams.write_permission_desc=Tugann an fhoireann seo rochtain do Scríobh: is féidir le baill léamh ó stórtha foirne agus iad a bhrú chucu.
+teams.admin_permission_desc=Tugann an fhoireann seo rochtain do Riarachán: is féidir le baill léamh ó stórtha foirne, brú chucu agus cur leo.
+teams.create_repo_permission_desc=Ina theannta sin, tugann an fhoireann seo cead Cruthaigh Stóras: is féidir le baill stórtha nua a chruthú san eagraíocht.
+teams.repositories=Stórais Foirne
+teams.remove_all_repos_title=Bain gach stórais foirne
+teams.remove_all_repos_desc=Bainfidh sé seo gach stórais ón bhfoireann.
+teams.add_all_repos_title=Cuir gach stórais leis
+teams.add_all_repos_desc=Cuirfidh sé seo stórais uile na heagraíochta leis an bhfoireann.
+teams.add_nonexistent_repo=Níl an stóras atá tú ag iarraidh a chur leis ann, cruthaigh é ar dtús.
+teams.add_duplicate_users=Is ball foirne é an úsáideoir cheana féin.
+teams.repos.none=Ní raibh rochtain ag an bhfoireann seo ar aon stóras.
+teams.members.none=Níl aon bhaill ar an bhfoireann seo.
+teams.members.blocked_user=Ní féidir an t-úsáideoir a chur leis toisc go bhfuil an eagraíocht bac air.
+teams.specific_repositories=Stórais Sonrach
+teams.specific_repositories_helper=Ní bheidh rochtain ag comhaltaí ach ar stórtha a cuireadh leis an bhfoireann go sainráite. Ní bhainfear na stórtha a cuireadh leis cheana le Gach stóras go huathoibríoch trí é seo a roghnú.
+teams.all_repositories=Gach stórais
+teams.all_repositories_helper=Tá rochtain ag an bhfoireann ar gach stórais. Má roghnaíonn sé seo, cuirfear na stórais go léir atá ann cheana leis an bhfoireann.
+teams.all_repositories_read_permission_desc=Tugann an fhoireann seo rochtain do Léamh ar gach stórais: is féidir le baill amharc ar stórais agus iad a chlónáil.
+teams.all_repositories_write_permission_desc=Tugann an fhoireann seo rochtain do Scríobh ar gach stórais: is féidir le baill léamh ó stórais agus iad a bhrú chucu.
+teams.all_repositories_admin_permission_desc=Tugann an fhoireann seo rochtain Riarthóra ar gach stóras: is féidir le comhaltaí léamh, brú a dhéanamh agus comhoibritheoirí a chur le stórtha.
+teams.invite.title=Tugadh cuireadh duit dul isteach i bhfoireann %s san eagraíocht %s.
+teams.invite.by=Ar cuireadh ó %s
+teams.invite.description=Cliceáil ar an gcnaipe thíos le do thoil chun dul isteach san fhoireann.
+
+[admin]
+maintenance=Cothabháil
+dashboard=Deais
+self_check=Féin-sheiceáil
+identity_access=Féiniúlacht & Rochtain
+users=Cuntais Úsáideora
+organizations=Eagraíochtaí
+assets=Sócmhainní Cód
+repositories=Stórais
+hooks=Crúcaí Gréasán
+integrations=Comhtháthaithe
+authentication=Foinsí Fíordheimhnithe
+emails=Ríomhphoist Úsáideoirí
+config=Cumraíocht
+config_summary=Achoimre
+config_settings=Socruithe
+notices=Fógraí Córais
+monitor=Monatóireacht
+first_page=Ar dtús
+last_page=Deiridh
+total=Iomlán: %d
+settings=Socruithe Riaracháin
+
+dashboard.new_version_hint=Tá Gitea %s ar fáil anois, tá %s á rith agat. Seiceáil an blag le haghaidh tuilleadh sonraí.
+dashboard.statistic=Achoimre
+dashboard.maintenance_operations=Oibríochtaí Cothabháil
+dashboard.system_status=Stádas an Chórais
+dashboard.operation_name=Ainm Oibríochta
+dashboard.operation_switch=Athraigh
+dashboard.operation_run=Rith
+dashboard.clean_unbind_oauth=Glan naisc OAuth neamhcheangailte
+dashboard.clean_unbind_oauth_success=Scriosadh gach nasc OAuth neamhcheangailte.
+dashboard.task.started=Tasc Tosaigh: %[1]s
+dashboard.task.process=Tasc: %[1]s
+dashboard.task.cancelled=Tasc: %[1]s cealaithe: %[3]s
+dashboard.task.error=Earráid sa Tasc: %[1]s: %[3]s
+dashboard.task.finished=Tasc: Tá %[1]s tosaithe ag %[2]s críochnaithe
+dashboard.task.unknown=Tasc anaithnid: %[1]s
+dashboard.cron.started=Cron tosaithe: %[1]s
+dashboard.cron.process=Cron: %[1]s
+dashboard.cron.cancelled=Cron: %[1]s cealaithe: %[3]s
+dashboard.cron.error=Earráid i gCron: %s: %[3]s
+dashboard.cron.finished=Cron: %[1]s críochnaithe
+dashboard.delete_inactive_accounts=Scrios gach cuntas neamhghníomhach
+dashboard.delete_inactive_accounts.started=Tasc scriostha gach cuntas neamhghníomhachtaithe tosaithe.
+dashboard.delete_repo_archives=Scrios gach cartlann stórais (ZIP, TAR.GZ, srl.)
+dashboard.delete_repo_archives.started=Scrios gach tasc cartlann stórais a thosaigh.
+dashboard.delete_missing_repos=Scrios gach stóras atá in easnamh ar a gcuid comhad Git
+dashboard.delete_missing_repos.started=Scrios gach stóras atá in easnamh ar a dtasc comhaid Git a thosaigh.
+dashboard.delete_generated_repository_avatars=Scrios abhatáranna stórtha ginte
+dashboard.sync_repo_branches=Sync brainsí caillte ó shonraí git go bunachair sonraí
+dashboard.sync_repo_tags=Clibeanna sioncraigh ó shonraí git go bunachar sonraí
+dashboard.update_mirrors=Scátháin a nuashonrú
+dashboard.repo_health_check=Seiceáil sláinte gach stóras
+dashboard.check_repo_stats=Seiceáil gach staitisticí stórais
+dashboard.archive_cleanup=Scrios sean-chartlanna stórais
+dashboard.deleted_branches_cleanup=Brainsí scriosta a ghlanadh
+dashboard.update_migration_poster_id=Nuashonraigh ID póstaer imir
+dashboard.git_gc_repos=Bailíonn truflais gach stórais
+dashboard.resync_all_sshkeys=Nuashonraigh an comhad '.ssh/authorized_keys' le heochracha Gitea SSH.
+dashboard.resync_all_sshprincipals=Nuashonraigh an comhad '.ssh/authorized_principals' le príomhphrionsabail Gitea SSH.
+dashboard.resync_all_hooks=Athshioncrónaigh crúcaí réamhfhála, nuashonraithe agus iar-fhála na stórtha go léir.
+dashboard.reinit_missing_repos=Aththosaigh gach stórais Git atá in easnamh a bhfuil taifid ann dóibh
+dashboard.sync_external_users=Sioncrónaigh sonraí úsáideoirí seachtracha
+dashboard.cleanup_hook_task_table=Tábla hook_task glantacháin
+dashboard.cleanup_packages=Pacáistí glanta in éag
+dashboard.cleanup_actions=Gníomhaíochtaí glanta in éag acmhainní
+dashboard.server_uptime=Aga fónaimh Freastalaí
+dashboard.current_goroutine=Goroutines Reatha
+dashboard.current_memory_usage=Úsáid Cuimhne Reatha
+dashboard.total_memory_allocated=Cuimhne Iomlán Leithdháilte
+dashboard.memory_obtained=Cuimhne Faighte
+dashboard.pointer_lookup_times=Amanna Cuardaigh Pointeora
+dashboard.memory_allocate_times=Leithdháiltí Cuimhne
+dashboard.memory_free_times=Saorálann Cuimhne
+dashboard.current_heap_usage=Úsáid Charn Reatha
+dashboard.heap_memory_obtained=Cuimhne Charn Faighte
+dashboard.heap_memory_idle=Díomhaoin Cuimhne Carn
+dashboard.heap_memory_in_use=Cuimhne Carm In Úsáid
+dashboard.heap_memory_released=Cuimhne Carn Eisithe
+dashboard.heap_objects=Cuspóirí Carn
+dashboard.bootstrap_stack_usage=Úsáid Staca Bootstrap
+dashboard.stack_memory_obtained=Cuimhne Staca Faighte
+dashboard.mspan_structures_usage=Úsáid Struchtúir MSpan
+dashboard.mspan_structures_obtained=Struchtúir MSpan a Faightear
+dashboard.mcache_structures_usage=Úsáid Struchtúir MCache
+dashboard.mcache_structures_obtained=Struchtúir MCache a Faightear
+dashboard.profiling_bucket_hash_table_obtained=Tábla Hash Buicéad Próifílithe a Faightear
+dashboard.gc_metadata_obtained=Meiteashonraí GC faighte
+dashboard.other_system_allocation_obtained=Leithdháileadh Córais Eile a Fuarthas
+dashboard.next_gc_recycle=Athchúrsáil GC Eile
+dashboard.last_gc_time=Ó Am Deiridh GC
+dashboard.total_gc_time=Sos Iomlán GC
+dashboard.total_gc_pause=Sos Iomlán GC
+dashboard.last_gc_pause=Sos GC Deireanach
+dashboard.gc_times=Amanna GC
+dashboard.delete_old_actions=Scrios gach sean-ghníomhaíocht ón mbunachar
+dashboard.delete_old_actions.started=Scrios na sean-ghníomhaíocht go léir ón mbunachar sonraí tosaithe.
+dashboard.update_checker=Seiceoir nuashonraithe
+dashboard.delete_old_system_notices=Scrios gach seanfhógra córais ón mbunachar sonraí
+dashboard.gc_lfs=Bailigh truflais meta rudaí LFS
+dashboard.stop_zombie_tasks=Stad gníomhartha tascanna zombie
+dashboard.stop_endless_tasks=Stad gníomhartha tascanna gan deireadh
+dashboard.cancel_abandoned_jobs=Cealaigh gníomhartha poist tréigthe
+dashboard.start_schedule_tasks=Tosaigh tascanna sceideal gníom
+dashboard.sync_branch.started=Thosaigh Brainsí Sioncronú
+dashboard.sync_tag.started=Clibeanna Thosaigh Sioncronú
+dashboard.rebuild_issue_indexer=Atógáil innéacsóir eisiúna
+dashboard.sync_repo_licenses=Sioncronaigh ceadúnais repo
+
+users.user_manage_panel=Bainistíocht Cuntas Úsáideora
+users.new_account=Cruthaigh cuntas Úsáideora
+users.name=Ainm úsáideora
+users.full_name=Ainm Iomlán
+users.activated=Gníomhachtaithe
+users.admin=Riarachán
+users.restricted=Srianta
+users.reserved=In áirithe
+users.bot=Bota
+users.remote=Iargúlta
+users.2fa=2FA
+users.repos=Stórais
+users.created=Cruthaithe
+users.last_login=Sínigh Isteach Deiridh
+users.never_login=Ná Sínigh Isteach riamh
+users.send_register_notify=Seol Fógra um Chlárú Úsáideora
+users.new_success=Tá an cuntas úsáideora "%s" cruthaithe.
+users.edit=Eagar
+users.auth_source=Foinse Fíordheimhnithe
+users.local=Áitiúil
+users.auth_login_name=Ainm Síniú Isteach Fíordheimhnithe
+users.password_helper=Fág an pasfhocal folamh chun é a choinneáil gan athrú.
+users.update_profile_success=Nuashonraíodh an cuntas úsáideora.
+users.edit_account=Cuir Cuntas Úsáideora in Eagar
+users.max_repo_creation=Uasmhéid Stóras
+users.max_repo_creation_desc=(Cuir isteach -1 chun an teorainn réamhshocraithe domhanda a úsáid.)
+users.is_activated=Gníomhachtaítear Cuntas Úsáideora
+users.prohibit_login=Díchumasaigh Síniú Isteach
+users.is_admin=Is Riarthóir
+users.is_restricted=Is Srianta
+users.allow_git_hook=Féadfaidh Git Hooks a Chruthú
+users.allow_git_hook_tooltip=Déantar Git Hooks a fhorghníomhú mar úsáideoir OS a ritheann Gitea agus beidh an leibhéal céanna rochtana óstaigh aige. Mar thoradh air sin, is féidir le húsáideoirí a bhfuil an phribhléid speisialta Git Hook seo acu rochtain a fháil ar gach stór Gitea agus iad a mhodhnú chomh maith leis an mbunachar sonraí a úsáideann Gitea. Dá bharr sin tá siad in ann pribhléidí riarthóra Gitea a fháil freisin.
+users.allow_import_local=Is féidir Stórais Áitiúla a Allmhairiú
+users.allow_create_organization=Is féidir Eagraíochtaí a Chruthú
+users.update_profile=Nuashonraigh Cuntas Úsáideora
+users.delete_account=Scrios Cuntas Úsáide
+users.cannot_delete_self=Ní féidir leat tú féin a scriosadh
+users.still_own_repo=Tá stórais amháin nó níos mó fós ag an úsáideoir seo. Scrios nó aistrigh na stórais seo ar dtús.
+users.still_has_org=Is ball d'eagraíocht é an t-úsáideoir seo. Bain an t-úsáideoir ó aon eagraíochtaí ar dtús.
+users.purge=Úsáideoir a Ghlanadh
+users.purge_help=Scrios go héigeantach úsáideoir agus aon stórais, eagraíochtaí agus pacáistí atá faoi úinéireacht an úsáideora. Scriosfar gach trácht freisin.
+users.still_own_packages=Tá pacáiste amháin nó níos mó fós ag an úsáideoir seo, scrios na pacáistí seo ar dtús.
+users.deletion_success=Scriosadh an cuntas úsáideora.
+users.reset_2fa=Athshocraigh 2FA
+users.list_status_filter.menu_text=Scagaire
+users.list_status_filter.reset=Athshocraigh
+users.list_status_filter.is_active=Gníomhach
+users.list_status_filter.not_active=Neamhghníomhach
+users.list_status_filter.is_admin=Riarachán
+users.list_status_filter.not_admin=Ní Riarachán
+users.list_status_filter.is_restricted=Srianta
+users.list_status_filter.not_restricted=Gan Srian
+users.list_status_filter.is_prohibit_login=Cosc ar Logáil Isteach
+users.list_status_filter.not_prohibit_login=Ceadaigh Logáil isteach
+users.list_status_filter.is_2fa_enabled=2FA Cumasaithe
+users.list_status_filter.not_2fa_enabled=2FA faoi mhíchumas
+users.details=Sonraí Úsáideora
+
+emails.email_manage_panel=Bainistíocht Ríomhphost Úsáideoir
+emails.primary=Bunscoile
+emails.activated=Gníomhachtaithe
+emails.filter_sort.email=Ríomhphost
+emails.filter_sort.email_reverse=Ríomhphost (droim ar ais)
+emails.filter_sort.name=Ainm Úsáideora
+emails.filter_sort.name_reverse=Ainm Úsáideora (droim ar ais)
+emails.updated=Nuashonraíodh an ríomhphost
+emails.not_updated=Theip ar an seoladh ríomhphoist iarrtha a nuashonrú: %v
+emails.duplicate_active=Tá an seoladh ríomhphoist seo gníomhach cheana féin d'úsáideoir difriúil.
+emails.change_email_header=Nuashonraigh Airíonna Ríomhphoist
+emails.change_email_text=An bhfuil tú cinnte gur mhaith leat an seoladh ríomhphoist seo a nuashonrú?
+emails.delete=Scrios Ríomhphost
+emails.delete_desc=An bhfuil tú cinnte gur mhaith leat an seoladh ríomhphoist seo a scriosadh?
+emails.deletion_success=Tá an seoladh ríomhphoist scriosta.
+emails.delete_primary_email_error=Ní féidir leat an ríomhphost príomhúil a scriosadh.
+
+orgs.org_manage_panel=Bainistíocht Eagraíochta
+orgs.name=Ainm
+orgs.teams=Foirne
+orgs.members=Comhaltaí
+orgs.new_orga=Eagraíocht Nua
+
+repos.repo_manage_panel=Bainistíocht Stórais
+repos.unadopted=Stórais Neamhghlactha
+repos.unadopted.no_more=Níor aimsíodh níos mó stórais neamhghlactha
+repos.owner=Úinéir
+repos.name=Ainm
+repos.private=Príobháideach
+repos.issues=Saincheisteanna
+repos.size=Méid
+repos.lfs_size=Méid LFS
+
+packages.package_manage_panel=Bainistíocht Pacáiste
+packages.total_size=Méid Iomlán: %s
+packages.unreferenced_size=Méid gan tagairt: %s
+packages.cleanup=Glan suas sonraí in éag
+packages.cleanup.success=Glanadh suas sonraí in éag go rathúil
+packages.owner=Úinéir
+packages.creator=Cruthaitheoir
+packages.name=Ainm
+packages.version=Leagan
+packages.type=Cineál
+packages.repository=Stóráil
+packages.size=Méid
+packages.published=Foilsithe
+
+defaulthooks=Réamhshocraithe Crúcaí Gréasán
+defaulthooks.desc=Déanann Crúcaí Gréasán iarratais HTTP POST go huathoibríoch chuig freastalaí nuair a chuireann imeachtaí áirithe Gitea tús. Is mainneachtainí iad na cuacha gréasáin a shainítear anseo agus déanfar iad a chóipeáil isteach i ngach stórais nua. Léigh tuilleadh sa treoir chúca Crúcaí Gréasán.
+defaulthooks.add_webhook=Cuir Crúca Gréasán Réamhshocraithe leis
+defaulthooks.update_webhook=Nuashonraigh Réamhshocrú Crúca Gréasán
+
+systemhooks=Córas Crúcaí Gréasán
+systemhooks.desc=Déanann Crúcaí Gréasán iarratais HTTP POST go huathoibríoch chuig freastalaí nuair a chuireann imeachtaí áirithe Gitea tús. Gníomhóidh na Crúcaí Gréasán atá sainithe anseo ar gach stóras ar an gcóras, mar sin déan machnamh ar aon impleachtaí feidhmíochta a d’fhéadfadh a bheith aige seo. Léigh tuilleadh sa treoir chúca gréasáin.
+systemhooks.add_webhook=Cuir Crúca Gréasán Córas leis
+systemhooks.update_webhook=Nuashonraigh Córas Crúca Gréasán
+
+auths.auth_manage_panel=Bainistiú Foinse Fíordheimhnithe
+auths.new=Cuir Foinse Fíordheimhni
+auths.name=Ainm
+auths.type=Cineál
+auths.enabled=Cumasaithe
+auths.syncenabled=Cumasaigh Sioncrónú Úsáideora
+auths.updated=Nuashonraithe
+auths.auth_type=Cineál Fíordheimhnithe
+auths.auth_name=Ainm Fíordheimhnithe
+auths.security_protocol=Prótacal Slándála
+auths.domain=Fearann
+auths.host=Óstach
+auths.port=Calafort
+auths.bind_dn=Ceangail DN
+auths.bind_password=Ceangail Pasfhocal
+auths.user_base=Bonn Cuardaigh Úsáideora
+auths.user_dn=Úsáideoir DN
+auths.attribute_username=Tréith Ainm Úsáideora
+auths.attribute_username_placeholder=Fág folamh chun an t-ainm úsáideora a iontráiltear i Gitea a úsáid.
+auths.attribute_name=Tréith Céad Ainm
+auths.attribute_surname=Tréith Sloinne
+auths.attribute_mail=Tréith ríomhphoist
+auths.attribute_ssh_public_key=Tréith Eochair SSH Phoiblí
+auths.attribute_avatar=Tréith Avatar
+auths.attributes_in_bind=Faigh tréithe i gComhthéacs Bind DN
+auths.allow_deactivate_all=Lig do thoradh cuardaigh folamh gach úsáideoir a dhíghníomhachtú
+auths.use_paged_search=Úsáid Cuardach Leathanaigh
+auths.search_page_size=Méid an Leathanaigh
+auths.filter=Scagaire Úsáideora
+auths.admin_filter=Scagaire Riaracháin
+auths.restricted_filter=Scagaire Srianta
+auths.restricted_filter_helper=Fág folamh chun aon úsáideoirí a shocrú mar theoranta. Úsáid réiltín ('*') chun gach úsáideoir nach meaitseálann Scagaire Riaracháin a shocrú mar theoranta.
+auths.verify_group_membership=Fíoraigh ballraíocht ghrúpa i LDAP (fág an scagaire folamh le scipeáil)
+auths.group_search_base=Bonn Cuardaigh Grúpa DN
+auths.group_attribute_list_users=Tréith Grúpa ina bhfuil Liosta Úsáideoirí
+auths.user_attribute_in_group=Tréith Úsáideora atá Liostaithe i nGrúpa
+auths.map_group_to_team=Léarscáil grúpaí LDAP chuig foirne na hEagraíochta (fág an réimse folamh le scipeáil)
+auths.map_group_to_team_removal=Bain úsáideoirí ó fhoirne sioncronaithe mura mbaineann an t-úsáideoir leis an ngrúpa comhfhreagrach LDAP
+auths.enable_ldap_groups=Cumasaigh grúpaí LDAP
+auths.ms_ad_sa=MS AD Tréithe Cuardaigh
+auths.smtp_auth=Cineál Fíordheimhnithe SMTP
+auths.smtphost=Óstach SMTP
+auths.smtpport=SMTP Calafort
+auths.allowed_domains=Fearainn Ceadaithe
+auths.allowed_domains_helper=Fág folamh chun gach fearann a cheadú. Déan ilfhearann a scaradh le camóg (',').
+auths.skip_tls_verify=Scipeáil Fíorú TLS
+auths.force_smtps=Fórsa SMTPS
+auths.force_smtps_helper=Úsáidtear SMTPS i gcónaí ar chalafort 465. Socraigh é seo chun SMTPS a chur i bhfeidhm ar chalafoirt eile. (Seachas sin úsáidfear STARTTLS ar chalafoirt eile má thacaíonn an t-óstach leis.)
+auths.helo_hostname=Ainm Óstach HELO
+auths.helo_hostname_helper=Ainm óstach a sheoltar le HELO. Fág bán chun an t-ainm óstach reatha a sheoladh.
+auths.disable_helo=Díchumasaigh HELO
+auths.pam_service_name=Ainm Seirbhíse PAM
+auths.pam_email_domain=Fearann Ríomhphoist PAM (roghnach)
+auths.oauth2_provider=Soláthraí OAuth2
+auths.oauth2_icon_url=URL deilbhín
+auths.oauth2_clientID=Aitheantas Cliant (Eochair)
+auths.oauth2_clientSecret=Rúnda Cliant
+auths.openIdConnectAutoDiscoveryURL=URL Fionnachtana Uathoibríoch OpenID Connect
+auths.oauth2_use_custom_url=Úsáid URLanna Saincheaptha in ionad URLanna Réamhshocraithe
+auths.oauth2_tokenURL=URL Comhartha
+auths.oauth2_authURL=Údaraigh URL
+auths.oauth2_profileURL=URL Próifíl
+auths.oauth2_emailURL=URL ríomhphoist
+auths.skip_local_two_fa=Scipeáil 2FA áitiúil
+auths.skip_local_two_fa_helper=Ciallaíonn fágáil gan socrú go mbeidh ar úsáideoirí áitiúla a bhfuil tacar 2FA acu 2FA a rith fós chun logáil isteach
+auths.oauth2_tenant=Tionónta
+auths.oauth2_scopes=Scóipeanna Breise
+auths.oauth2_required_claim_name=Ainm Éilimh Riachtanach
+auths.oauth2_required_claim_name_helper=Socraigh an t-ainm seo chun logáil isteach ón bhfoinse seo a shrianadh d'úsáideoirí a bhfuil éileamh acu leis an ainm seo
+auths.oauth2_required_claim_value=Luach Éilimh Riachtanach
+auths.oauth2_required_claim_value_helper=Socraigh an luach seo chun logáil isteach ón bhfoinse seo a shrianadh chuig úsáideoirí a bhfuil éileamh acu leis an ainm agus an luach seo
+auths.oauth2_group_claim_name=Ainm éileamh ag soláthar ainmneacha grúpa don fhoinse seo (Roghnach)
+auths.oauth2_admin_group=Luach Éilimh Grúpa d'úsáideoirí riarthóra. (Roghnach - teastaíonn ainm éilimh thuas)
+auths.oauth2_restricted_group=Luach Éilimh Grúpa d'úsáideoirí srianta. (Roghnach - teastaíonn ainm éilimh thuas)
+auths.oauth2_map_group_to_team=Map mhaígh grúpaí chuig foirne Eagraíochta. (Roghnach - éilíonn ainm an éilimh thuas)
+auths.oauth2_map_group_to_team_removal=Bain úsáideoirí ó fhoirne sioncronaithe mura mbaineann an t-úsáideoir leis an ngrúpa comhfhreagrach.
+auths.enable_auto_register=Cumasaigh Clárú Auto
+auths.sspi_auto_create_users=Cruthaigh úsáideoirí go huathoibríoch
+auths.sspi_auto_create_users_helper=Lig do mhodh auth SSPI cuntais nua a chruthú go huathoibríoch d'úsáideoirí a logálann isteach den chéad uair
+auths.sspi_auto_activate_users=Gníomhachtaigh úsáideoirí go huathoibríoch
+auths.sspi_auto_activate_users_helper=Lig modh auth SSPI úsáideoirí nua a ghníomhachtú go huathoibríoch
+auths.sspi_strip_domain_names=Bain ainmneacha fearann ó ainm úsáideora
+auths.sspi_strip_domain_names_helper=Má dhéantar iad a sheiceáil, bainfear ainmneacha fearainn ó ainmneacha logála isteach (m.sh. Beidh “DOMAIN\ user” agus "user@example.org" araon ní bheidh ach “úsáideoir”).
+auths.sspi_separator_replacement=Deighilteoir le húsáid in ionad\,/agus @
+auths.sspi_separator_replacement_helper=An carachtar a úsáidfear chun na deighilteoirí a chur in ionad na n-ainmneacha logála síos-leibhéil (m.sh. an \ i "DOMAIN\úsáideoir") agus ainmneacha príomhoidí úsáideora (m.sh. an @ in "user@example.org").
+auths.sspi_default_language=Teanga úsáideora réamhshocraithe
+auths.sspi_default_language_helper=Teanga réamhshocraithe d'úsáideoirí cruthaithe go huathoibríoch ag modh auth SSPI. Fág folamh más fearr leat teanga a bhrath go huathoibríoch.
+auths.tips=Leideanna
+auths.tips.oauth2.general=OAuth2 Fíordheimhniú
+auths.tips.oauth2.general.tip=Agus fíordheimhniú OAuth2 nua á chlárú agat, ba chóir go mbeadh an URL glaonna ais/atreoraithe:
+auths.tip.oauth2_provider=Soláthraí OAuth2
+auths.tip.bitbucket=Cláraigh tomhaltóir OAuth nua ar %s agus cuir an cead 'Cuntas' - 'Léigh' leis
+auths.tip.nextcloud=`Cláraigh tomhaltóir OAuth nua ar do chás ag baint úsáide as an roghchlár seo a leanas "Socruithe -> Slándáil -> cliant OAuth 2.0"`
+auths.tip.dropbox=Cruthaigh feidhmchlár nua ag %s
+auths.tip.facebook=Cláraigh feidhmchlár nua ag %s agus cuir an táirge "Facebook Login" leis
+auths.tip.github=Cláraigh feidhmchlár OAuth nua ar %s
+auths.tip.gitlab_new=Cláraigh feidhmchlár nua ar %s
+auths.tip.google_plus=Faigh dintiúir chliaint OAuth2 ó chonsól API Google ag %s
+auths.tip.openid_connect=Úsáid URL Fionnachtana OpenID Connect "https://{server}/.well-known/openid-configuration" chun na críochphointí a shonrú
+auths.tip.twitter=Téigh go %s, cruthaigh feidhmchlár agus cinntigh go bhfuil an rogha "Ceadaigh úsáid a bhaint as an bhfeidhmchlár seo chun logáil isteach le Twitter" cumasaithe
+auths.tip.discord=Cláraigh feidhmchlár nua ar %s
+auths.tip.gitea=Cláraigh feidhmchlár OAuth2 nua. Tá treoir le fáil ag %s
+auths.tip.yandex=`Cruthaigh feidhmchlár nua ag %s. Roghnaigh na ceadanna seo a leanas ón rannán "Yandex.Passport API": "Rochtain ar sheoladh ríomhphoist", "Rochtain ar avatar úsáideora" agus "Rochtain ar ainm úsáideora, céad ainm agus sloinne, inscne"`
+auths.tip.mastodon=Ionchur URL sampla saincheaptha don shampla mastodon is mian leat a fhíordheimhniú leis (nó bain úsáid as an gceann réamhshocraithe)
+auths.edit=Cuir Foinse Fíordheimhnithe in Eagar
+auths.activated=Tá an Foinse Fíordheimhnithe seo gníomhachtaithe
+auths.new_success=Tá an fíordheimhniú "%s" curtha leis.
+auths.update_success=Nuashonraíodh an fhoinse fíordheimhnithe.
+auths.update=Nuashonraigh Foinse Fíordheimhnithe
+auths.delete=Scrios Foinse Fíordheimhnithe
+auths.delete_auth_title=Scrios Foinse Fíordheimhnithe
+auths.delete_auth_desc=Má scriosann tú foinse fíordheimhnithe cuirtear cosc ar úsáideoirí í a úsáid chun síniú isteach. Lean ort?
+auths.still_in_used=Tá an fhoinse fíordheimhnithe fós in úsáid. Tiontaigh nó scrios aon úsáideoir a úsáideann an fhoinse fíordheimhnithe seo ar dtús.
+auths.deletion_success=Tá an fhoinse fíordheimhnithe scriosta.
+auths.login_source_exist=Tá an fhoinse fíordheimhnithe "%s" ann cheana.
+auths.login_source_of_type_exist=Tá foinse fíordheimhnithe den chineál seo ann cheana féin.
+auths.unable_to_initialize_openid=Ní féidir Soláthraí Ceangail OpenID a thionscnamh: %s
+auths.invalid_openIdConnectAutoDiscoveryURL=URL Neamhbhailí Fionnachtana Uathoibríoch (ní mór gur URL bailí é seo ag tosú le http:// nó https://)
+
+config.server_config=Cumraíocht Freastalaí
+config.app_name=Teideal an Láithreáin
+config.app_ver=Leagan Gitea
+config.app_url=URL Bonn Gitea
+config.custom_conf=Cosán Comhad Cumraíochta
+config.custom_file_root_path=Cosán Fréamh Comhad Saincheaptha
+config.domain=Fearann Freastalaí
+config.offline_mode=Mód Áitiúil
+config.disable_router_log=Díchumasaigh Loga an Ródaire
+config.run_user=Rith Mar Ainm úsáideora
+config.run_mode=Mód Rith
+config.git_version=Leagan Git
+config.app_data_path=Cosán Sonraí Aip
+config.repo_root_path=Cosán Fréimhe Stórála
+config.lfs_root_path=Cosán Fréamh LFS
+config.log_file_root_path=Cosán Logála
+config.script_type=Cineál Script
+config.reverse_auth_user=Úsáideoir Fíordheimhnithe Droim ar Ais
+
+config.ssh_config=Cumraíocht SSH
+config.ssh_enabled=Cumasaithe
+config.ssh_start_builtin_server=Úsáid Freastalaí Ionsuite
+config.ssh_domain=Fearainn Freastalaí SSH
+config.ssh_port=Calafort
+config.ssh_listen_port=Éist Calafort
+config.ssh_root_path=Cosán Fréimhe
+config.ssh_key_test_path=Cosán Tástáil Eochair
+config.ssh_keygen_path=Keygen ('ssh-keygen') Cosán
+config.ssh_minimum_key_size_check=Seiceáil Íosta Méid Eochair
+config.ssh_minimum_key_sizes=Méideanna Íosta Eochrach
+
+config.lfs_config=Cumraíocht LFS
+config.lfs_enabled=Cumasaithe
+config.lfs_content_path=Cosán Ábhar LFS
+config.lfs_http_auth_expiry=Éag Auth LFS HTTP
+
+config.db_config=Cumraíocht Bunachar Sonraí
+config.db_type=Cineál
+config.db_host=Óstach
+config.db_name=Ainm
+config.db_user=Ainm úsáideora
+config.db_schema=Scéim
+config.db_ssl_mode=SSL
+config.db_path=Cosán
+
+config.service_config=Cumraíocht Seirbhíse
+config.register_email_confirm=Deimhniú Ríomhphost a éileamh chun Clárú
+config.disable_register=Díchumasaigh Féin-Chlárú
+config.allow_only_internal_registration=Ceadaigh Clárú Amháin Trí Gitea féin
+config.allow_only_external_registration=Ceadaigh Clárú Trí Sheirbhísí Seachtracha amháin
+config.enable_openid_signup=Cumasaigh Féinchlárú OpenID
+config.enable_openid_signin=Cumasaigh Síniú isteach OpenID
+config.show_registration_button=Taispeáin Cnaipe Cláraithe
+config.require_sign_in_view=Teastaíonn Sínigh isteach chun Leathanaigh Amharc
+config.mail_notify=Cumasaigh Fógraí Ríomhphoist
+config.enable_captcha=Cumasaigh CAPTCHA
+config.active_code_lives=Saol Gníomhach ag an gCód
+config.reset_password_code_lives=Am Éaga Chóid Aisghabhála Cuntais
+config.default_keep_email_private=Folaigh Seoltaí Ríomhphoist de réir Réamhshocrú
+config.default_allow_create_organization=Ceadaigh Cruthú Eagraíochtaí de réir Réamhshocrú
+config.enable_timetracking=Cumasaigh Rianú Ama
+config.default_enable_timetracking=Cumasaigh Rianú Ama de réir Réamhshocrú
+config.default_allow_only_contributors_to_track_time=Lig do Rannpháirtithe Amháin Rianú Am
+config.no_reply_address=Fearann Ríomhphoist Folaithe
+config.default_visibility_organization=Infheictheacht réamhshocraithe d'Eagraíochtaí nua
+config.default_enable_dependencies=Cumasaigh Spleáchais Eisithe de réir Réamhshocrú
+
+config.webhook_config=Cumraíocht Crúca Gréasán
+config.queue_length=Fad scuaine
+config.deliver_timeout=Teorainn Ama Seachadta
+config.skip_tls_verify=Scipeáil Fíorú TLS
+
+config.mailer_config=Cumraíocht Seoltóra
+config.mailer_enabled=Cumasaithe
+config.mailer_enable_helo=Cumasaigh HELO
+config.mailer_name=Ainm
+config.mailer_protocol=Prótacal
+config.mailer_smtp_addr=Seoladh SMTP
+config.mailer_smtp_port=Calafort SMTP
+config.mailer_user=Úsáideoir
+config.mailer_use_sendmail=Úsáid Sendmail
+config.mailer_sendmail_path=Cosán Sendmail
+config.mailer_sendmail_args=Argóintí Breise chuig Sendmail
+config.mailer_sendmail_timeout=Teorainn Ama Sendmail
+config.mailer_use_dummy=Caochadán
+config.test_email_placeholder=Ríomhphost (m.sh. test@example.com)
+config.send_test_mail=Seol Ríomhphost Tástála
+config.send_test_mail_submit=Seol
+config.test_mail_failed=Theip ar ríomhphost tástála a sheoladh chuig "%s": %v
+config.test_mail_sent=Tá ríomhphost tástála seolta chuig "%s".
+
+config.oauth_config=Cumraíocht OAuth
+config.oauth_enabled=Cumasaithe
+
+config.cache_config=Cumraíocht taisce
+config.cache_adapter=Cuibheoir taisce
+config.cache_interval=Eatramh Taisce
+config.cache_conn=Ceangal Taisce
+config.cache_item_ttl=Mír Taisce TTL
+config.cache_test=Taisce Tástáil
+config.cache_test_failed=Theip ar an taisce a thaiscéaladh: %v.
+config.cache_test_slow=D'éirigh leis an tástáil taisce, ach tá an freagra mall: %s.
+config.cache_test_succeeded=D'éirigh leis an tástáil taisce, fuair sé freagra i %s.
+
+config.session_config=Cumraíocht Seisiúin
+config.session_provider=Soláthraí Seisiúin
+config.provider_config=Cumraíocht Soláthraí
+config.cookie_name=Ainm Fianán
+config.gc_interval_time=Am Eatramh GC
+config.session_life_time=Am Saoil na Seisiúin
+config.https_only=HTTPS Amháin
+config.cookie_life_time=Am Saoil Fianán
+
+config.picture_config=Cumraíocht Pictiúr agus Avatar
+config.picture_service=Seirbhís Pictiúr
+config.disable_gravatar=Díchumasaigh Gravatar
+config.enable_federated_avatar=Cumasaigh Avatars Cónaidhme
+config.open_with_editor_app_help=Na heagarthóirí "Oscailte le" don roghchlár Clón. Má fhágtar folamh é, úsáidfear an réamhshocrú. Leathnaigh chun an réamhshocrú a fheiceáil.
+
+config.git_config=Cumraíocht Git
+config.git_disable_diff_highlight=Díchumasaigh Aibhsiú Comhréire Diff
+config.git_max_diff_lines=Max Diff Lines (do chomhad amháin)
+config.git_max_diff_line_characters=Carachtair Max Diff (le haghaidh líne amháin)
+config.git_max_diff_files=Comhaid Max Diff (le taispeáint)
+config.git_gc_args=Argóintí GC
+config.git_migrate_timeout=Teorainn Ama Imirce
+config.git_mirror_timeout=Teorainn Ama Nuashonraithe Scátháin
+config.git_clone_timeout=Teorainn Ama Oibríochta Clón
+config.git_pull_timeout=Tarraing Am Oibríochta
+config.git_gc_timeout=Teorainn Ama Oibriúcháin GC
+
+config.log_config=Cumraíocht Logáil
+config.logger_name_fmt=Logálaí: %s
+config.disabled_logger=Díchumasaithe
+config.access_log_mode=Mód Logáil Rochtana
+config.access_log_template=Teimpléad Logáil Rochtana
+config.xorm_log_sql=Logáil SQL
+
+config.set_setting_failed=Theip ar shocrú %s a shocrú
+
+monitor.stats=Staitisticí
+
+monitor.cron=Tascanna Cron
+monitor.name=Ainm
+monitor.schedule=Sceideal
+monitor.next=An chéad uair eile
+monitor.previous=Am Roimhe Seo
+monitor.execute_times=Forghníomhaíochtaí
+monitor.process=Próisis reatha
+monitor.stacktrace=Rian cruachta
+monitor.processes_count=Próisis %d
+monitor.download_diagnosis_report=Íoslódáil tuairisc diagnóis
+monitor.desc=Cur síos
+monitor.start=Am Tosaigh
+monitor.execute_time=Am Forghníomhaithe
+monitor.last_execution_result=Toradh
+monitor.process.cancel=Cealaigh próiseas
+monitor.process.cancel_desc=Má chuirtear próiseas ar ceal d'fhéadfadh go gcaillfí sonraí
+monitor.process.cancel_notices=Cealaigh: %s?
+monitor.process.children=Leanaí
+
+monitor.queues=Scuaineanna
+monitor.queue=Scuaine: %s
+monitor.queue.name=Ainm
+monitor.queue.type=Cineál
+monitor.queue.exemplar=Cineál Eiseamláire
+monitor.queue.numberworkers=Líon na nOibrithe
+monitor.queue.activeworkers=Oibrithe Gníomhacha
+monitor.queue.maxnumberworkers=Líon Uasta na nOibrithe
+monitor.queue.numberinqueue=Uimhir i scuaine
+monitor.queue.review_add=Athbhreithniú / Cuir Oibrithe leis
+monitor.queue.settings.title=Socruithe Linn
+monitor.queue.settings.desc=Fásann linnte go dinimiciúil mar fhreagra ar a gcuid scuaine oibrithe a bhlocáil.
+monitor.queue.settings.maxnumberworkers=Uaslíon na n-oibrithe
+monitor.queue.settings.maxnumberworkers.placeholder=Faoi láthair %[1]d
+monitor.queue.settings.maxnumberworkers.error=Caithfidh uaslíon na n-oibrithe a bheith ina uimhir
+monitor.queue.settings.submit=Nuashonrú Socruithe
+monitor.queue.settings.changed=Socruithe Nuashonraithe
+monitor.queue.settings.remove_all_items=Bain gach
+monitor.queue.settings.remove_all_items_done=Baineadh na míreanna go léir sa scuaine.
+
+notices.system_notice_list=Fógraí Córais
+notices.view_detail_header=Féach ar Sonraí Fógra
+notices.operations=Oibríochtaí
+notices.select_all=Roghnaigh Gach
+notices.deselect_all=Díroghnaigh Gach
+notices.inverse_selection=Roghnú Inbhéartha
+notices.delete_selected=Scrios Roghnaithe
+notices.delete_all=Scrios Gach Fógra
+notices.type=Cineál
+notices.type_1=Stóras
+notices.type_2=Tasc
+notices.desc=Cur síos
+notices.op=Oibríocht.
+notices.delete_success=Scriosadh na fógraí córais.
+
+self_check.no_problem_found=Níor aimsíodh aon fhadhb fós.
+self_check.startup_warnings=Rabhadh tosaithe:
+self_check.database_collation_mismatch=Bí ag súil le comhthiomsú a úsáid sa bhunachar sonraí: %s
+self_check.database_collation_case_insensitive=Tá bunachar sonraí ag baint úsáide as comparáid %s, arb é comhdhlúthú neamhíogair. Cé go bhféadfadh Gitea oibriú leis, d'fhéadfadh go mbeadh roinnt cásanna annamh ann nach n-oibríonn mar a bhíothas ag súil leis.
+self_check.database_inconsistent_collation_columns=Tá comhthiomsú %s in úsáid ag an mbunachar sonraí, ach tá comhthiomsuithe mímheaitseála á n-úsáid ag na colúin seo. D'fhéadfadh sé a bheith ina chúis le roinnt fadhbanna gan choinne.
+self_check.database_fix_mysql=D'úsáideoirí MySQL/MariaDB, d'fhéadfá an t-ordú "gitea doctor convert" a úsáid chun na fadhbanna comhthiomsaithe a réiteach, nó d'fhéadfá an fhadhb a réiteach trí "ALTER ... COLLATE ..." SQLs de láimh freisin.
+self_check.database_fix_mssql=I gcás úsáideoirí MSSQL, ní fhéadfá an fhadhb a réiteach ach trí "ALTER ... COLLATE ..." SQLs de láimh faoi láthair.
+self_check.location_origin_mismatch=Ní mheaitseálann an URL reatha (%[1]s) an URL atá le feiceáil ag Gitea (%[2]s). Má tá seachfhreastalaí droim ar ais á úsáid agat, cinntigh le do thoil go bhfuil na ceanntásca "Óstríomhaire" agus "X-Forwarded-Proto" socraithe i gceart.
+
+[action]
+create_repo=stóras cruthaithe %s
+rename_repo=stóras athainmnithe ó %[1]s
go %[3]s
+commit_repo=brú chuig %[3]s ag %[4]s
+create_issue=`osclaíodh ceist %[3]s#%[2]s`
+close_issue=`eagrán dúnta %[3]s#%[2]s`
+reopen_issue=`athoscailt an cheist %[3]s#%[2]s`
+create_pull_request=`iarratas tarraingthe cruthaithe %[3]s#%[2]s`
+close_pull_request=`iarratas tarraingthe dúnta %[3]s#%[2]s`
+reopen_pull_request=`iarratas tarraingthe athoscailte %[3]s#%[2]s`
+comment_issue=`trácht ar cheist %[3]s#%[2]s`
+comment_pull=`déan trácht ar iarratas tarraingthe %[3]s#%[2]s`
+merge_pull_request=`iarratas tarraingthe cumaisc %[3]s#%[2]s`
+auto_merge_pull_request=`iarratas tarraingthe cumasctha go huathoibríoch %[3]s#%[2]s`
+transfer_repo=aistrithe stóras %s
go %s
+push_tag=brú %[3]s go %[4]s
+delete_tag=scriosta clib %[2]s ó %[3]s
+delete_branch=brainse scriosta %[2]s ó %[3]s
+compare_branch=Déan comparáid
+compare_commits=Déan comparáid idir tiomáintí %d
+compare_commits_general=Déan comparáid idir tiomáintí
+mirror_sync_push=geallann synced do %[3]s ag %[4]s ón scáthán
+mirror_sync_create=sioncronaigh tagairt nua %[3]s do %[4]s ón scáthán
+mirror_sync_delete=sioncronaithe agus scriosta an tagairt %[2]s
ag %[3]s ón scáthán
+approve_pull_request=`ceadaithe %[3]s#%[2]s`
+reject_pull_request=`athruithe molta le haghaidh %[3]s#%[2]s`
+publish_release=`scaoileadh %[4]s ag %[3]s`
+review_dismissed=`léirmheas ó %[4]s le haghaidh %[3]s#%[2]s`
+review_dismissed_reason=Cúis:
+create_branch=brainse cruthaithe %[3]s i %[4]s
+starred_repo=le %[2]s le réalta
+watched_repo=thosaigh sé ag breathnú ar %[2]s
+
+[tool]
+now=anois
+future=todhchaí
+1s=1 soicind
+1m=1 nóiméad
+1h=1 uair an chloig
+1d=1 lá
+1w=1 seachtain
+1mon=1 mhí
+1y=1 bhliain
+seconds=%d soicind
+minutes=%d nóiméad
+hours=%d uair an chloig
+days=%d laethanta
+weeks=%d seachtain
+months=%d míonna
+years=%d bliain
+raw_seconds=soicind
+raw_minutes=nóiméad
+
+[dropzone]
+default_message=Scaoil comhaid nó cliceáil anseo chun iad a uaslódáil.
+invalid_input_type=Ní féidir leat comhaid den chineál seo a uaslódáil.
+file_too_big=Sáraíonn méid comhaid ({{filesize}} MB) an t-uasmhéid de ({{maxFilesize}} MB).
+remove_file=Bain an comhad
+
+[notification]
+notifications=Fógraí
+unread=Gan léamh
+read=Léigh
+no_unread=Gan aon fhógraí neamh-léite.
+no_read=Gan aon fhógraí léite.
+pin=Fógra bioráin
+mark_as_read=Marcáil mar léite
+mark_as_unread=Marcáil mar neamh-léite
+mark_all_as_read=Marcáil gach ceann mar léite
+subscriptions=Síntiúis
+watching=Ag féachaint
+no_subscriptions=Gan síntiúis
+
+[gpg]
+default_key=Sínithe leis an eochair réamhshocraithe
+error.extract_sign=Theip ar an síniú a bhaint
+error.generate_hash=Theip ar hash gealltanas a ghiniúint
+error.no_committer_account=Níl aon chuntas nasctha le seoladh ríomhphoist an tiomnóra
+error.no_gpg_keys_found=Níor aimsíodh aon eochair aithne don síniú seo sa bhunachar
+error.not_signed_commit=Ní tiomantas sínithe
+error.failed_retrieval_gpg_keys=Theip ar aisghabháil eochair ar bith a bhí ceangailte le cuntas an tiomnóra
+error.probable_bad_signature=RABHADH! Cé go bhfuil eochair leis an ID seo sa bhunachar sonraí ní fhíoraíonn sé an tiomantas seo! Tá an tiomantas seo AMHRASACH.
+error.probable_bad_default_signature=RABHADH! Cé go bhfuil an t-aitheantas seo ag an eochair réamhshocraithe ní fíoraíonn sé an tiomantas seo! Tá an tiomantas seo AMHRASACH.
+
+[units]
+unit=Aonad
+error.no_unit_allowed_repo=Níl cead agat rochtain a fháil ar aon chuid den tiomantas seo.
+error.unit_not_allowed=Níl cead agat an rannán stóras seo a rochtain.
+
+[packages]
+title=Pacáistí
+desc=Bainistigh pacáistí stórais.
+empty=Níl aon phacáistí ann fós.
+no_metadata=Gan aon mheiteashonraí.
+empty.documentation=Le haghaidh tuilleadh eolais ar chlárlann na bpacáistí, féach ar na doiciméid.
+empty.repo=An ndearna tú uaslódáil ar phacáiste, ach nach bhfuil sé léirithe anseo? Téigh go socruithe pacáiste agus nasc leis an stóras seo é.
+registry.documentation=Le haghaidh tuilleadh eolais ar chlárlann %s, féach ar na doiciméid.
+filter.type=Cineál
+filter.type.all=Gach
+filter.no_result=Níor thug do scagaire aon torthaí.
+filter.container.tagged=Clibeáilte
+filter.container.untagged=Gan chlib
+published_by=Foilsithe %[1]s ag %[3]s
+published_by_in=Foilsithe ag %[1]s ag %[3]s in %[5]s
+installation=Suiteáil
+about=Maidir leis an bpacáiste seo
+requirements=Riachtanais
+dependencies=Spleithiúlachtaí
+keywords=Eochairfhocail
+details=Sonraí
+details.author=Údar
+details.project_site=Suíomh an Tionscadail
+details.repository_site=Suíomh Stóras
+details.documentation_site=Suíomh Doiciméadaithe
+details.license=Ceadúnas
+assets=Sócmhainní
+versions=Leaganacha
+versions.view_all=Féach ar gach
+dependency.id=ID
+dependency.version=Leagan
+alpine.registry=Socraigh an chlár seo tríd an url a chur i do chomhad /etc/apk/repositories
:
+alpine.registry.key=Íoslódáil eochair RSA poiblí na clárlainne isteach san fhillteán /etc/apk/keys/
chun an síniú innéacs a fhíorú:
+alpine.registry.info=Roghnaigh $branch agus $repository ón liosta thíos.
+alpine.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+alpine.repository=Eolas Stórais
+alpine.repository.branches=Brainsí
+alpine.repository.repositories=Stórais
+alpine.repository.architectures=Ailtireachtaí
+cargo.registry=Socraigh an clárlann seo sa chomhad cumraíochta lasta (mar shampla ~/.cargo/config.toml
):
+cargo.install=Chun an pacáiste a shuiteáil ag baint úsáide as Cargo, reáchtáil an t-ordú seo a leanas:
+chef.registry=Socraigh an clárlann seo i do chomhad ~/.chef/config.rb
:
+chef.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+composer.registry=Socraigh an chlár seo i do chomhad ~/.composer/config.json
:
+composer.install=Chun an pacáiste a shuiteáil ag baint úsáide as Cumadóir, reáchtáil an t-ordú seo a leanas:
+composer.dependencies=Spleithiúlachtaí
+composer.dependencies.development=Spleithiúlachtaí Forbartha
+conan.details.repository=Stóras
+conan.registry=Socraigh an clárlann seo ón líne ordaithe:
+conan.install=Chun an pacáiste a shuiteáil ag úsáid Conan, reáchtáil an t-ordú seo a leanas:
+conda.registry=Socraigh an chlár seo mar stóras Conda i do chomhad .condarc
:
+conda.install=Chun an pacáiste a shuiteáil ag úsáid Conda, reáchtáil an t-ordú seo a leanas:
+container.details.type=Cineál Íomhá
+container.details.platform=Ardán
+container.pull=Tarraing an íomhá ón líne ordaithe:
+container.digest=Díleáigh:
+container.multi_arch=Córas Oibriúcháin / Ailtireacht
+container.layers=Sraitheanna Íomhá
+container.labels=Lipéid
+container.labels.key=Eochair
+container.labels.value=Luach
+cran.registry=Cumraigh an chlárlann seo i do chomhad Rprofile.site
:
+cran.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+debian.registry=Socraigh an clárlann seo ón líne ordaithe:
+debian.registry.info=Roghnaigh $distribution agus $component ón liosta thíos.
+debian.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+debian.repository=Eolas Stóras
+debian.repository.distributions=Dáiltí
+debian.repository.components=Comhpháirteanna
+debian.repository.architectures=Ailtireachtaí
+generic.download=Íoslódáil pacáiste ón líne ordaithe:
+go.install=Suiteáil an pacáiste ón líne ordaithe:
+helm.registry=Socraigh an clárlann seo ón líne ordaithe:
+helm.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+maven.registry=Socraigh an clárlann seo i do chomhad pom.xml
tionscadail:
+maven.install=Chun an pacáiste a úsáid cuir na nithe seo a leanas sa bhloc spleáchais
sa chomhad pom.xml
:
+maven.install2=Rith tríd an líne ordaithe:
+maven.download=Chun an spleáchas a íoslódáil, rith tríd an líne ordaithe:
+nuget.registry=Socraigh an clárlann seo ón líne ordaithe:
+nuget.install=Chun an pacáiste a shuiteáil ag úsáid NuGet, reáchtáil an t-ordú seo a leanas:
+nuget.dependency.framework=Spriocchreat
+npm.registry=Socraigh an chlárlann seo i do chomhad .npmrc
do thionscadail:
+npm.install=Chun an pacáiste a shuiteáil ag úsáid npm, reáchtáil an t-ordú seo a leanas:
+npm.install2=nó cuir leis an gcomhad package.json é:
+npm.dependencies=Spleithiúlachtaí
+npm.dependencies.development=Spleithiúlachtaí Forbartha
+npm.dependencies.bundle=Spleáchais Chuachta
+npm.dependencies.peer=Spleithiúlachtaí Piaraí
+npm.dependencies.optional=Spleáchais Roghnacha
+npm.details.tag=Clib
+pub.install=Chun an pacáiste a shuiteáil ag úsáid Dart, reáchtáil an t-ordú seo a leanas:
+pypi.requires=Teastaíonn Python
+pypi.install=Chun an pacáiste a shuiteáil ag úsáid pip, reáchtáil an t-ordú seo a leanas:
+rpm.registry=Socraigh an clárlann seo ón líne ordaithe:
+rpm.distros.redhat=ar dháileadh bunaithe ar RedHat
+rpm.distros.suse=ar dháileadh bunaithe ar SUSE
+rpm.install=Chun an pacáiste a shuiteáil, rith an t-ordú seo a leanas:
+rpm.repository=Eolas Stóras
+rpm.repository.architectures=Ailtireachtaí
+rpm.repository.multiple_groups=Tá an pacáiste seo ar fáil i ngrúpaí éagsúla.
+rubygems.install=Chun an pacáiste a shuiteáil ag baint úsáide as gem, reáchtáil an t-ordú seo a leanas:
+rubygems.install2=nó cuir leis an Gemfile é:
+rubygems.dependencies.runtime=Spleáchais Rith-Ama
+rubygems.dependencies.development=Spleáchais Forbartha
+rubygems.required.ruby=Éilíonn leagan Ruby
+rubygems.required.rubygems=Éilíonn leagan RubyGem
+swift.registry=Socraigh an clárlann seo ón líne ordaithe:
+swift.install=Cuir an pacáiste i do chomhad Package.swift
:
+swift.install2=agus reáchtáil an t-ordú seo a leanas:
+vagrant.install=Chun bosca Vagrant a chur leis, reáchtáil an t-ordú seo a leanas:
+settings.link=Nasc an pacáiste seo le stóras
+settings.link.description=Má nascann tú pacáiste le stóras, liostaítear an pacáiste i liosta pacáistí an stórais.
+settings.link.select=Roghnaigh Stóras
+settings.link.button=Nuashonraigh Nasc Stórais
+settings.link.success=D'éirigh le nasc an stórais a nuashonrú.
+settings.link.error=Theip ar an nasc stóras a nuashonrú.
+settings.delete=Scrios pacáiste
+settings.delete.description=Tá pacáiste a scriosadh buan agus ní féidir é a chur ar ais.
+settings.delete.notice=Tá tú ar tí %s (%s) a scriosadh. Tá an oibríocht seo dochúlaithe, an bhfuil tú cinnte?
+settings.delete.success=Tá an pacáiste scriosta.
+settings.delete.error=Theip ar an pacáiste a scriosadh.
+owner.settings.cargo.title=Innéacs Clárlann Lasta
+owner.settings.cargo.initialize=Innéacs a chur i dtosach
+owner.settings.cargo.initialize.description=Tá gá le stóras innéacs speisialta Git chun an clárlann Cargo a úsáid. Tríd an rogha seo, cruthófar an stóras (nó athchruthófar é) agus cumrófar é go huathoibríoch.
+owner.settings.cargo.initialize.error=Níorbh fhéidir an t-innéacs Cargo a thúsú: %v
+owner.settings.cargo.initialize.success=Cruthaíodh an t-innéacs Cargo go rathúil.
+owner.settings.cargo.rebuild=Innéacs Atógáil
+owner.settings.cargo.rebuild.description=Is féidir atógáil a bheith úsáideach mura bhfuil an t-innéacs sioncronaithe leis na pacáistí Cargo stóráilte.
+owner.settings.cargo.rebuild.error=Níorbh fhéidir an t-innéacs Cargo a atógáil: %v
+owner.settings.cargo.rebuild.success=D'éirigh leis an innéacs Cargo a atógáil.
+owner.settings.cleanuprules.title=Bainistigh Rialacha Glanta
+owner.settings.cleanuprules.add=Cuir Riail Glantacháin leis
+owner.settings.cleanuprules.edit=Cuir Riail Glantacháin in eagar
+owner.settings.cleanuprules.none=Níl aon rialacha glanta ar fáil. Féach ar na doiciméid le do thoil.
+owner.settings.cleanuprules.preview=Réamhamharc Riail Glantacháin
+owner.settings.cleanuprules.preview.overview=Tá pacáistí %d beartaithe a bhaint.
+owner.settings.cleanuprules.preview.none=Ní hionann riail glantacháin agus pacáistí ar bith.
+owner.settings.cleanuprules.enabled=Cumasaithe
+owner.settings.cleanuprules.pattern_full_match=Cuir patrún i bhfeidhm ar ainm an phacáiste iomlán
+owner.settings.cleanuprules.keep.title=Coinnítear leaganacha a mheaitseálann leis na rialacha seo, fiú má mheaitseálann siad riail bhaint thíos.
+owner.settings.cleanuprules.keep.count=Coinnigh an ceann is déanaí
+owner.settings.cleanuprules.keep.count.1=1 leagan in aghaidh an phacáiste
+owner.settings.cleanuprules.keep.count.n=Leaganacha %d in aghaidh an phacáiste
+owner.settings.cleanuprules.keep.pattern=Coinnigh leaganacha meaitseála
+owner.settings.cleanuprules.keep.pattern.container=Coinnítear an leagan is déanaí
le haghaidh pacáistí Coimeádán i gcónaí.
+owner.settings.cleanuprules.remove.title=Baintear leaganacha a mheaitseálann leis na rialacha seo, mura deir riail thuas iad a choinneáil.
+owner.settings.cleanuprules.remove.days=Bain leaganacha níos sine ná
+owner.settings.cleanuprules.remove.pattern=Bain leaganacha meaitseála
+owner.settings.cleanuprules.success.update=Nuashonraíodh an riail ghlantacháin.
+owner.settings.cleanuprules.success.delete=Scriosadh an riail glantacháin.
+owner.settings.chef.title=Clárlann Chef
+owner.settings.chef.keypair=Gin péire eochair
+owner.settings.chef.keypair.description=Tá eochairphéire riachtanach le fíordheimhniú a dhéanamh ar chlárlann an Chef. Má tá péire eochrach ginte agat roimhe seo, má ghinfidh tú eochairphéire nua, scriosfar an seanphéire eochair.
+
+[secrets]
+secrets=Rúin
+description=Cuirfear rúin ar aghaidh chuig gníomhartha áirithe agus ní féidir iad a léamh ar mhalairt.
+none=Níl aon rúin ann fós.
+creation=Cuir Rúnda leis
+creation.name_placeholder=carachtair alfanumair nó íoslaghda amháin nach féidir a thosú le GITEA_ nó GITHUB_
+creation.value_placeholder=Ionchur ábhar ar bith. Fágfar spás bán ag tús agus ag deireadh ar lár.
+creation.success=Tá an rún "%s" curtha leis.
+creation.failed=Theip ar an rún a chur leis.
+deletion=Bain rún
+deletion.description=Is buan rún a bhaint agus ní féidir é a chealú. Lean ort?
+deletion.success=Tá an rún bainte.
+deletion.failed=Theip ar rún a bhaint.
+management=Bainistíocht Rúin
+
+[actions]
+actions=Gníomhartha
+
+unit.desc=Bainistigh gníomhartha
+
+status.unknown=Anaithnid
+status.waiting=Ag fanacht
+status.running=Ag rith
+status.success=Rath
+status.failure=Teip
+status.cancelled=Cealaíodh
+status.skipped=Scipeáilte
+status.blocked=Blocáilte
+
+runners=Reathaitheoirí
+runners.runner_manage_panel=Bainistíocht reathaithe
+runners.new=Cruthaigh reathaí nua
+runners.new_notice=Conas reathaí a thosú
+runners.status=Stádas
+runners.id=ID
+runners.name=Ainm
+runners.owner_type=Cineál
+runners.description=Cur síos
+runners.labels=Lipéid
+runners.last_online=Am Ar Líne Deiridh
+runners.runner_title=Reathaí
+runners.task_list=Tascanna le déanaí ar an reathaí seo
+runners.task_list.no_tasks=Níl aon tasc ann fós.
+runners.task_list.run=Rith
+runners.task_list.status=Stádas
+runners.task_list.repository=Stóras
+runners.task_list.commit=Tiomantas
+runners.task_list.done_at=Déanta ag
+runners.edit_runner=Cuir Reathaí in Eagar
+runners.update_runner=Nuashonrú Athruithe
+runners.update_runner_success=Nuashonraíodh an Reathaí
+runners.update_runner_failed=Theip ar an reathaí a nuashonrú
+runners.delete_runner=Scrios an reathaí seo
+runners.delete_runner_success=Scriosadh an reathaí go rathúil
+runners.delete_runner_failed=Theip ar an reathaí a scriosadh
+runners.delete_runner_header=Deimhnigh an reathaí seo a scriosadh
+runners.delete_runner_notice=Má tá tasc ar siúl ar an reathaí seo, cuirfear deireadh leis agus marcáil mar theip. Féadfaidh sé sreabhadh oibre tógála a bhriseadh.
+runners.none=Níl aon reathaí ar fáil
+runners.status.unspecified=Anaithnid
+runners.status.idle=Díomhaoin
+runners.status.active=Gníomhach
+runners.status.offline=As líne
+runners.version=Leagan
+runners.reset_registration_token=Athshocraigh comhartha clár
+runners.reset_registration_token_success=D'éirigh le hathshocrú comhartha clárúcháin an dara háit
+
+runs.all_workflows=Gach Sreafaí Oibre
+runs.commit=Tiomantas
+runs.scheduled=Sceidealaithe
+runs.pushed_by=bhrú ag
+runs.invalid_workflow_helper=Tá comhad cumraíochta sreabhadh oibre nebhailí. Seiceáil do chomhad cumraithe le do thoil: %s
+runs.no_matching_online_runner_helper=Gan aon reathaí ar líne a mheaitseáil le lipéad: %s
+runs.no_job_without_needs=Caithfidh post amháin ar a laghad a bheith sa sreabhadh oibre gan spleáchas.
+runs.no_job=Caithfidh post amháin ar a laghad a bheith sa sreabhadh oibre
+runs.actor=Aisteoir
+runs.status=Stádas
+runs.actors_no_select=Gach aisteoir
+runs.status_no_select=Gach stádas
+runs.no_results=Níor mheaitseáil aon torthaí.
+runs.no_workflows=Níl aon sreafaí oibre ann fós.
+runs.no_workflows.quick_start=Níl a fhios agam conas tosú le Gitea Actions? Féach an treoirleabhar mear tosaithe.
+runs.no_workflows.documentation=Le haghaidh tuilleadh eolais ar Gitea Actions, féach ar na doiciméid.
+runs.no_runs=Níl aon rith ag an sreabhadh oibre fós.
+runs.empty_commit_message=(teachtaireacht tiomantas folamh)
+runs.expire_log_message=Glanadh logaí toisc go raibh siad ró-sean.
+
+workflow.disable=Díchumasaigh sreabhadh oibre
+workflow.disable_success=D'éirigh le sreabhadh oibre '%s' a dhíchumasú.
+workflow.enable=Cumasaigh sreabhadh oibre
+workflow.enable_success=Cumasaíodh sreabhadh oibre '%s' go rathúil.
+workflow.disabled=Tá sreabhadh oibre díchumasaithe
+workflow.run=Rith Sreabhadh Oibre
+workflow.not_found=Níor aimsíodh sreabhadh oibre '%s'.
+workflow.run_success=Ritheann sreabhadh oibre '%s' go rathúil.
+workflow.from_ref=Úsáid sreabhadh oibre ó
+workflow.has_workflow_dispatch=Tá comhoibriú ag an gcur i bhfeidhm seo le himeacht workflow_dispatch.
+
+need_approval_desc=Teastaíonn faomhadh chun sreafaí oibre a rith le haghaidh iarratas tarraingt forc.
+
+variables=Athróga
+variables.management=Bainistíocht Athróg
+variables.creation=Cuir Athróg leis
+variables.none=Níl aon athróga ann fós.
+variables.deletion=Bain athróg
+variables.deletion.description=Tá athróg a bhaint buan agus ní féidir é a chur ar ais. Lean ar aghaidh?
+variables.description=Cuirfear athróga chuig gníomhartha áirithe agus ní féidir iad a léamh ar mhalairt eile.
+variables.id_not_exist=Níl athróg le ID %d ann.
+variables.edit=Cuir Athróg in Eagar
+variables.deletion.failed=Theip ar athróg a bhaint.
+variables.deletion.success=Tá an athróg bainte.
+variables.creation.failed=Theip ar athróg a chur leis.
+variables.creation.success=Tá an athróg "%s" curtha leis.
+variables.update.failed=Theip ar athróg a chur in eagar.
+variables.update.success=Tá an t-athróg curtha in eagar.
+
+[projects]
+deleted.display_name=Tionscadal scriosta
+type-1.display_name=Tionscadal Aonair
+type-2.display_name=Tionscadal Stórais
+type-3.display_name=Tionscadal Eagrúcháin
+
+[git.filemode]
+changed_filemode=%[1]s → %[2]s
+; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
+directory=Eolaire
+normal_file=Comhad gnáth
+executable_file=Comhad infheidhmithe
+symbolic_link=Nasc siombalach
+submodule=Fo-mhodúl
+
diff --git a/options/locale/locale_hu-HU.ini b/options/locale/locale_hu-HU.ini
index 28605d48cf..69f0e6eab7 100644
--- a/options/locale/locale_hu-HU.ini
+++ b/options/locale/locale_hu-HU.ini
@@ -397,7 +397,6 @@ account_link=Kapcsolt fiókok
organization=Szervezetek
public_profile=Nyilvános profil
-password_username_disabled=A nem helyi felhasználóknak nem engedélyezett, hogy megváltoztassák a felhasználói nevüket. Kérjük lépjen kapcsolatba a helyi rendszergazdájával további információkért.
full_name=Teljes név
website=Webhely
location=Hely
diff --git a/options/locale/locale_id-ID.ini b/options/locale/locale_id-ID.ini
index 94c60979a8..d1b4166e16 100644
--- a/options/locale/locale_id-ID.ini
+++ b/options/locale/locale_id-ID.ini
@@ -317,7 +317,6 @@ account_link=Akun Tertaut
organization=Organisasi
public_profile=Profil Publik
-password_username_disabled=Pengguna non-lokal tidak diizinkan untuk mengubah nama pengguna mereka. Silakan hubungi administrator sistem anda untuk lebih lanjut.
full_name=Nama Lengkap
website=Situs Web
location=Lokasi
diff --git a/options/locale/locale_is-IS.ini b/options/locale/locale_is-IS.ini
index 656b5e1c56..0bd4ba6894 100644
--- a/options/locale/locale_is-IS.ini
+++ b/options/locale/locale_is-IS.ini
@@ -428,7 +428,6 @@ account_link=Tengdir Reikningar
organization=Stofnanir
public_profile=Opinber Notandasíða
-password_username_disabled=Notendum utan staðarins er ekki heimilt að breyta notendanafni sínu. Vinsamlegast hafðu samband við síðustjórann þinn til að fá frekari upplýsingar.
full_name=Fullt Nafn
website=Vefsíða
location=Staðsetning
diff --git a/options/locale/locale_it-IT.ini b/options/locale/locale_it-IT.ini
index 3ddd2bbddf..d82215622f 100644
--- a/options/locale/locale_it-IT.ini
+++ b/options/locale/locale_it-IT.ini
@@ -516,7 +516,6 @@ account_link=Account collegati
organization=Organizzazioni
public_profile=Profilo pubblico
-password_username_disabled=Gli utenti non locali non hanno il permesso di cambiare il proprio nome utente. per maggiori dettagli si prega di contattare l'amministratore del sito.
full_name=Nome Completo
website=Sito web
location=Posizione
diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini
index 3a80c741db..973c1b3761 100644
--- a/options/locale/locale_ja-JP.ini
+++ b/options/locale/locale_ja-JP.ini
@@ -705,7 +705,6 @@ public_profile=公開プロフィール
biography_placeholder=自己紹介してください!(Markdownを使うことができます)
location_placeholder=おおよその場所を他の人と共有
profile_desc=あなたのプロフィールが他のユーザーにどのように表示されるかを制御します。あなたのプライマリメールアドレスは、通知、パスワードの回復、WebベースのGit操作に使用されます。
-password_username_disabled=非ローカルユーザーのユーザー名は変更できません。詳細はサイト管理者にお問い合わせください。
full_name=フルネーム
website=Webサイト
location=場所
@@ -1040,6 +1039,7 @@ issue_labels_helper=イシューのラベルセットを選択
license=ライセンス
license_helper=ライセンス ファイルを選択してください。
license_helper_desc=ライセンスにより、他人があなたのコードに対して何ができて何ができないのかを規定します。 どれがプロジェクトにふさわしいか迷っていますか? ライセンス選択サイト も確認してみてください。
+multiple_licenses=複数のライセンス
object_format=オブジェクトのフォーマット
object_format_helper=リポジトリのオブジェクトフォーマット。後で変更することはできません。SHA1 は最も互換性があります。
readme=README
@@ -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=コメントの変更を保存できません。 他のユーザーによって内容がすでに変更されているようです。 変更を上書きしないようにするため、ページを更新してからもう一度編集してください
@@ -2940,6 +2941,7 @@ dashboard.start_schedule_tasks=Actionsスケジュールタスクを開始
dashboard.sync_branch.started=ブランチの同期を開始しました
dashboard.sync_tag.started=タグの同期を開始しました
dashboard.rebuild_issue_indexer=イシューインデクサーの再構築
+dashboard.sync_repo_licenses=リポジトリライセンスの同期
users.user_manage_panel=ユーザーアカウント管理
users.new_account=ユーザーアカウントを作成
diff --git a/options/locale/locale_ko-KR.ini b/options/locale/locale_ko-KR.ini
index dc122ec4c3..91c5b24ab5 100644
--- a/options/locale/locale_ko-KR.ini
+++ b/options/locale/locale_ko-KR.ini
@@ -375,7 +375,6 @@ account_link=연결된 계정
organization=조직
public_profile=공개 프로필
-password_username_disabled=로컬 사용자가 아닌 경우 사용자 이름 변경을 할 수 없습니다. 자세한 내용은 관리자에게 문의해주세요.
full_name=성명
website=웹 사이트
location=위치
diff --git a/options/locale/locale_lv-LV.ini b/options/locale/locale_lv-LV.ini
index d8ab21e170..ee6f3911b0 100644
--- a/options/locale/locale_lv-LV.ini
+++ b/options/locale/locale_lv-LV.ini
@@ -623,7 +623,6 @@ public_profile=Publiskais profils
biography_placeholder=Pastāsti mums mazliet par sevi! (Var izmantot Markdown)
location_placeholder=Kopīgot savu aptuveno atrašanās vietu ar citiem
profile_desc=Norādīt, kā profils tiek attēlots citiem lietotājiem. Primārā e-pasta adrese tiks izmantota paziņojumiem, paroles atjaunošanai un Git tīmekļa darbībām.
-password_username_disabled=Ne-lokāliem lietotājiem nav atļauts mainīt savu lietotāja vārdu. Sazinieties ar sistēmas administratoru, lai uzzinātu sīkāk.
full_name=Pilns vārds
website=Mājas lapa
location=Atrašanās vieta
diff --git a/options/locale/locale_nl-NL.ini b/options/locale/locale_nl-NL.ini
index 5ed3417b4a..1540cf095b 100644
--- a/options/locale/locale_nl-NL.ini
+++ b/options/locale/locale_nl-NL.ini
@@ -515,7 +515,6 @@ account_link=Gekoppelde Accounts
organization=Organisaties
public_profile=Openbaar profiel
-password_username_disabled=Niet-lokale gebruikers kunnen hun gebruikersnaam niet veranderen. Neem contact op met de sitebeheerder voor meer details.
full_name=Volledige naam
website=Website
location=Locatie
diff --git a/options/locale/locale_pl-PL.ini b/options/locale/locale_pl-PL.ini
index 911a4b9e0e..22bdf1bbac 100644
--- a/options/locale/locale_pl-PL.ini
+++ b/options/locale/locale_pl-PL.ini
@@ -500,7 +500,6 @@ account_link=Powiązane Konta
organization=Organizacje
public_profile=Profil publiczny
-password_username_disabled=Użytkownicy nielokalni nie mogą zmieniać swoich nazw. Aby uzyskać więcej informacji, skontaktuj się z administratorem strony.
full_name=Imię i nazwisko
website=Strona
location=Lokalizacja
diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini
index 6f4f710d7f..bb185d3de6 100644
--- a/options/locale/locale_pt-BR.ini
+++ b/options/locale/locale_pt-BR.ini
@@ -622,7 +622,6 @@ public_profile=Perfil público
biography_placeholder=Conte-nos um pouco sobre você! (Você pode usar Markdown)
location_placeholder=Compartilhe sua localização aproximada com outras pessoas
profile_desc=Controle como o seu perfil é exibido para outros usuários. Seu endereço de e-mail principal será usado para notificações, recuperação de senha e operações do Git baseadas na Web.
-password_username_disabled=Usuários não-locais não podem alterar seus nomes de usuário. Por favor contate o administrador do site para mais informações.
full_name=Nome completo
website=Site
location=Localização
diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini
index e423832e9e..41531f7b3d 100644
--- a/options/locale/locale_pt-PT.ini
+++ b/options/locale/locale_pt-PT.ini
@@ -580,6 +580,8 @@ lang_select_error=Escolha um idioma da lista.
username_been_taken=O nome de utilizador já foi tomado.
username_change_not_local_user=Utilizadores que não são locais não têm permissão para mudar o nome de utilizador.
+change_username_disabled=Alterar o nome de utilizador está desabilitado.
+change_full_name_disabled=Alterar o nome completo está desabilitado.
username_has_not_been_changed=O nome de utilizador não foi modificado
repo_name_been_taken=O nome do repositório já foi usado.
repository_force_private=Forçar Privado está habilitado: repositórios privados não podem ser tornados públicos.
@@ -705,7 +707,8 @@ public_profile=Perfil público
biography_placeholder=Conte-nos um pouco sobre si! (Pode usar Markdown)
location_placeholder=Partilhe a sua localização aproximada com outros
profile_desc=Controle como o seu perfil é apresentado aos outros utilizadores. O seu endereço de email principal será usado para notificações, recuperação de senha e operações Git baseadas na web.
-password_username_disabled=Utilizadores não-locais não podem mudar os seus nomes de utilizador. Entre em contacto com o administrador do sítio saber para mais detalhes.
+password_username_disabled=Não tem permissão para alterar os nomes de utilizador deles/delas. Entre em contacto com o administrador para saber mais detalhes.
+password_full_name_disabled=Não tem permissão para alterar o nome completo deles/delas. Entre em contacto com o administrador para saber mais detalhes.
full_name=Nome completo
website=Sítio web
location=Localização
@@ -1040,6 +1043,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 +2945,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/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini
index 03c6e2d073..7fd73f9d83 100644
--- a/options/locale/locale_ru-RU.ini
+++ b/options/locale/locale_ru-RU.ini
@@ -618,7 +618,6 @@ public_profile=Открытый профиль
biography_placeholder=Расскажите немного о себе! (Можно использовать Markdown)
location_placeholder=Поделитесь своим приблизительным местоположением с другими
profile_desc=Контролируйте, как ваш профиль будет отображаться другим пользователям. Ваш основной адрес электронной почты будет использоваться для уведомлений, восстановления пароля и веб-операций Git.
-password_username_disabled=Нелокальным пользователям запрещено изменение их имени пользователя. Для получения более подробной информации обратитесь к администратору сайта.
full_name=Имя и фамилия
website=Веб-сайт
location=Местоположение
diff --git a/options/locale/locale_si-LK.ini b/options/locale/locale_si-LK.ini
index c9521d80f8..4d64c46e6e 100644
--- a/options/locale/locale_si-LK.ini
+++ b/options/locale/locale_si-LK.ini
@@ -480,7 +480,6 @@ account_link=සම්බන්ධිත ගිණුම්
organization=සංවිධාන
public_profile=ප්රසිද්ධ පැතිකඩ
-password_username_disabled=දේශීය නොවන පරිශීලකයින්ට ඔවුන්ගේ පරිශීලක නාමය වෙනස් කිරීමට අවසර නැත. වැඩි විස්තර සඳහා කරුණාකර ඔබේ වෙබ් අඩවිය පරිපාලක අමතන්න.
full_name=සම්පූර්ණ නම
website=වියමන අඩවිය
location=ස්ථානය
diff --git a/options/locale/locale_sk-SK.ini b/options/locale/locale_sk-SK.ini
index 484fa320fa..a964b526af 100644
--- a/options/locale/locale_sk-SK.ini
+++ b/options/locale/locale_sk-SK.ini
@@ -583,7 +583,6 @@ account_link=Prepojené účty
organization=Organizácie
public_profile=Verejný profil
-password_username_disabled=Externí používatelia nemôžu meniť svoje používateľské meno. Kontaktujte, prosím, svojho administrátora kvôli detailom.
full_name=Celé meno
website=Webová stránka
location=Miesto
diff --git a/options/locale/locale_sv-SE.ini b/options/locale/locale_sv-SE.ini
index 459b704506..2993828c22 100644
--- a/options/locale/locale_sv-SE.ini
+++ b/options/locale/locale_sv-SE.ini
@@ -418,7 +418,6 @@ account_link=Länkade Konton
organization=Organisationer
public_profile=Offentlig profil
-password_username_disabled=Externa användare kan inte ändra sitt användarnamn. Kontakta din webbadministratör för mera information.
full_name=Fullständigt namn
website=Webbplats
location=Plats
diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini
index 7ef6c1d35e..3c719f84ba 100644
--- a/options/locale/locale_tr-TR.ini
+++ b/options/locale/locale_tr-TR.ini
@@ -694,7 +694,6 @@ public_profile=Herkese Açık Profil
biography_placeholder=Bize kendiniz hakkında birşeyler söyleyin! (Markdown kullanabilirsiniz)
location_placeholder=Yaklaşık konumunuzu başkalarıyla paylaşın
profile_desc=Profilinizin başkalarına nasıl gösterildiğini yönetin. Ana e-posta adresiniz bildirimler, parola kurtarma ve web tabanlı Git işlemleri için kullanılacaktır.
-password_username_disabled=Yerel olmayan kullanıcılara kullanıcı adlarını değiştirme izni verilmemiştir. Daha fazla bilgi edinmek için lütfen site yöneticisi ile iletişime geçiniz.
full_name=Ad Soyad
website=Web Sitesi
location=Konum
diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini
index 129ab1b7f5..d94d11207b 100644
--- a/options/locale/locale_uk-UA.ini
+++ b/options/locale/locale_uk-UA.ini
@@ -494,7 +494,6 @@ account_link=Прив'язані облікові записи
organization=Організації
public_profile=Загальнодоступний профіль
-password_username_disabled=Нелокальним користувачам заборонено змінювати ім'я користувача. Щоб отримати докладнішу інформацію, зв'яжіться з адміністратором сайту.
full_name=Повне ім'я
website=Веб-сайт
location=Місцезнаходження
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index 2827a8cd35..3be7b044e9 100644
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -686,7 +686,6 @@ public_profile=公开信息
biography_placeholder=告诉我们一点您自己! (您可以使用Markdown)
location_placeholder=与他人分享你的大概位置
profile_desc=控制您的个人资料对其他用户的显示方式。您的主要电子邮件地址将用于通知、密码恢复和基于网页界面的 Git 操作
-password_username_disabled=不允许非本地用户更改他们的用户名。更多详情请联系您的系统管理员。
full_name=自定义名称
website=个人网站
location=所在地区
diff --git a/options/locale/locale_zh-TW.ini b/options/locale/locale_zh-TW.ini
index 9406419e6b..d755f64dcd 100644
--- a/options/locale/locale_zh-TW.ini
+++ b/options/locale/locale_zh-TW.ini
@@ -583,7 +583,6 @@ account_link=已連結帳號
organization=組織
public_profile=公開的個人資料
-password_username_disabled=非本地使用者不允許更改他們的帳號。詳細資訊請聯絡您的系統管理員。
full_name=全名
website=個人網站
location=所在地區
diff --git a/package-lock.json b/package-lock.json
index e0e83b60ec..ca001b2939 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -29,7 +29,7 @@
"esbuild-loader": "4.2.2",
"escape-goat": "4.0.0",
"fast-glob": "3.3.2",
- "htmx.org": "2.0.2",
+ "htmx.org": "2.0.3",
"idiomorph": "0.3.0",
"jquery": "3.7.1",
"katex": "0.16.11",
@@ -10548,10 +10548,9 @@
}
},
"node_modules/htmx.org": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/htmx.org/-/htmx.org-2.0.2.tgz",
- "integrity": "sha512-eUPIpQaWKKstX393XNCRCMJTrqPzikh36Y9RceqsUZLTtlFjFaVDgwZLUsrFk8J2uzZxkkfiy0TE359j2eN6hA==",
- "license": "0BSD"
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/htmx.org/-/htmx.org-2.0.3.tgz",
+ "integrity": "sha512-AeoJUAjkCVVajbfKX+3sVQBTCt8Ct4lif1T+z/tptTXo8+8yyq3QIMQQe/IT+R8ssfrO1I0DeX4CAronzCL6oA=="
},
"node_modules/human-signals": {
"version": "5.0.0",
diff --git a/package.json b/package.json
index d188e99a30..015dfc67a6 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,7 @@
"esbuild-loader": "4.2.2",
"escape-goat": "4.0.0",
"fast-glob": "3.3.2",
- "htmx.org": "2.0.2",
+ "htmx.org": "2.0.3",
"idiomorph": "0.3.0",
"jquery": "3.7.1",
"katex": "0.16.11",
diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go
index 0f42e8f59e..d17e4875b1 100644
--- a/routers/api/packages/api.go
+++ b/routers/api/packages/api.go
@@ -63,6 +63,20 @@ func reqPackageAccess(accessMode perm.AccessMode) func(ctx *context.Context) {
ctx.Error(http.StatusUnauthorized, "reqPackageAccess", "user should have specific permission or be a site admin")
return
}
+
+ // check if scope only applies to public resources
+ publicOnly, err := scope.PublicOnly()
+ if err != nil {
+ ctx.Error(http.StatusForbidden, "tokenRequiresScope", "parsing public resource scope failed: "+err.Error())
+ return
+ }
+
+ if publicOnly {
+ if ctx.Package != nil && ctx.Package.Owner.Visibility.IsPrivate() {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public packages")
+ return
+ }
+ }
}
}
diff --git a/routers/api/packages/container/blob.go b/routers/api/packages/container/blob.go
index 9e3a47076c..4595b9a33d 100644
--- a/routers/api/packages/container/blob.go
+++ b/routers/api/packages/container/blob.go
@@ -10,11 +10,11 @@ import (
"fmt"
"os"
"strings"
- "sync"
"code.gitea.io/gitea/models/db"
packages_model "code.gitea.io/gitea/models/packages"
container_model "code.gitea.io/gitea/models/packages/container"
+ "code.gitea.io/gitea/modules/globallock"
"code.gitea.io/gitea/modules/log"
packages_module "code.gitea.io/gitea/modules/packages"
container_module "code.gitea.io/gitea/modules/packages/container"
@@ -22,8 +22,6 @@ import (
packages_service "code.gitea.io/gitea/services/packages"
)
-var uploadVersionMutex sync.Mutex
-
// saveAsPackageBlob creates a package blob from an upload
// The uploaded blob gets stored in a special upload version to link them to the package/image
func saveAsPackageBlob(ctx context.Context, hsr packages_module.HashedSizeReader, pci *packages_service.PackageCreationInfo) (*packages_model.PackageBlob, error) { //nolint:unparam
@@ -90,13 +88,20 @@ func mountBlob(ctx context.Context, pi *packages_service.PackageInfo, pb *packag
})
}
+func containerPkgName(piOwnerID int64, piName string) string {
+ return fmt.Sprintf("pkg_%d_container_%s", piOwnerID, strings.ToLower(piName))
+}
+
func getOrCreateUploadVersion(ctx context.Context, pi *packages_service.PackageInfo) (*packages_model.PackageVersion, error) {
var uploadVersion *packages_model.PackageVersion
- // FIXME: Replace usage of mutex with database transaction
- // https://github.com/go-gitea/gitea/pull/21862
- uploadVersionMutex.Lock()
- err := db.WithTx(ctx, func(ctx context.Context) error {
+ releaser, err := globallock.Lock(ctx, containerPkgName(pi.Owner.ID, pi.Name))
+ if err != nil {
+ return nil, err
+ }
+ defer releaser()
+
+ err = db.WithTx(ctx, func(ctx context.Context) error {
created := true
p := &packages_model.Package{
OwnerID: pi.Owner.ID,
@@ -140,7 +145,6 @@ func getOrCreateUploadVersion(ctx context.Context, pi *packages_service.PackageI
return nil
})
- uploadVersionMutex.Unlock()
return uploadVersion, err
}
@@ -173,6 +177,12 @@ func createFileForBlob(ctx context.Context, pv *packages_model.PackageVersion, p
}
func deleteBlob(ctx context.Context, ownerID int64, image, digest string) error {
+ releaser, err := globallock.Lock(ctx, containerPkgName(ownerID, image))
+ if err != nil {
+ return err
+ }
+ defer releaser()
+
return db.WithTx(ctx, func(ctx context.Context) error {
pfds, err := container_model.GetContainerBlobs(ctx, &container_model.BlobSearchOptions{
OwnerID: ownerID,
diff --git a/routers/api/v1/admin/hooks.go b/routers/api/v1/admin/hooks.go
index fa60836b7e..db481fbf59 100644
--- a/routers/api/v1/admin/hooks.go
+++ b/routers/api/v1/admin/hooks.go
@@ -45,7 +45,7 @@ func ListHooks(ctx *context.APIContext) {
}
hooks := make([]*api.Hook, len(sysHooks))
for i, hook := range sysHooks {
- h, err := webhook_service.ToHook(setting.AppURL+"/admin", hook)
+ h, err := webhook_service.ToHook(setting.AppURL+"/-/admin", hook)
if err != nil {
ctx.Error(http.StatusInternalServerError, "convert.ToHook", err)
return
@@ -83,7 +83,7 @@ func GetHook(ctx *context.APIContext) {
}
return
}
- h, err := webhook_service.ToHook("/admin/", hook)
+ h, err := webhook_service.ToHook("/-/admin/", hook)
if err != nil {
ctx.Error(http.StatusInternalServerError, "convert.ToHook", err)
return
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index 5aa8ad44e5..883e694e44 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -235,6 +235,62 @@ func reqPackageAccess(accessMode perm.AccessMode) func(ctx *context.APIContext)
}
}
+func checkTokenPublicOnly() func(ctx *context.APIContext) {
+ return func(ctx *context.APIContext) {
+ if !ctx.PublicOnly {
+ return
+ }
+
+ requiredScopeCategories, ok := ctx.Data["requiredScopeCategories"].([]auth_model.AccessTokenScopeCategory)
+ if !ok || len(requiredScopeCategories) == 0 {
+ return
+ }
+
+ // public Only permission check
+ switch {
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryRepository):
+ if ctx.Repo.Repository != nil && ctx.Repo.Repository.IsPrivate {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public repos")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryIssue):
+ if ctx.Repo.Repository != nil && ctx.Repo.Repository.IsPrivate {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public issues")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryOrganization):
+ if ctx.Org.Organization != nil && ctx.Org.Organization.Visibility != api.VisibleTypePublic {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public orgs")
+ return
+ }
+ if ctx.ContextUser != nil && ctx.ContextUser.IsOrganization() && ctx.ContextUser.Visibility != api.VisibleTypePublic {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public orgs")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryUser):
+ if ctx.ContextUser != nil && ctx.ContextUser.IsUser() && ctx.ContextUser.Visibility != api.VisibleTypePublic {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public users")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryActivityPub):
+ if ctx.ContextUser != nil && ctx.ContextUser.IsUser() && ctx.ContextUser.Visibility != api.VisibleTypePublic {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public activitypub")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryNotification):
+ if ctx.Repo.Repository != nil && ctx.Repo.Repository.IsPrivate {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public notifications")
+ return
+ }
+ case auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryPackage):
+ if ctx.Package != nil && ctx.Package.Owner.Visibility.IsPrivate() {
+ ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public packages")
+ return
+ }
+ }
+ }
+}
+
// if a token is being used for auth, we check that it contains the required scope
// if a token is not being used, reqToken will enforce other sign in methods
func tokenRequiresScopes(requiredScopeCategories ...auth_model.AccessTokenScopeCategory) func(ctx *context.APIContext) {
@@ -250,9 +306,6 @@ func tokenRequiresScopes(requiredScopeCategories ...auth_model.AccessTokenScopeC
return
}
- ctx.Data["ApiTokenScopePublicRepoOnly"] = false
- ctx.Data["ApiTokenScopePublicOrgOnly"] = false
-
// use the http method to determine the access level
requiredScopeLevel := auth_model.Read
if ctx.Req.Method == "POST" || ctx.Req.Method == "PUT" || ctx.Req.Method == "PATCH" || ctx.Req.Method == "DELETE" {
@@ -261,6 +314,18 @@ func tokenRequiresScopes(requiredScopeCategories ...auth_model.AccessTokenScopeC
// get the required scope for the given access level and category
requiredScopes := auth_model.GetRequiredScopes(requiredScopeLevel, requiredScopeCategories...)
+ allow, err := scope.HasScope(requiredScopes...)
+ if err != nil {
+ ctx.Error(http.StatusForbidden, "tokenRequiresScope", "checking scope failed: "+err.Error())
+ return
+ }
+
+ if !allow {
+ ctx.Error(http.StatusForbidden, "tokenRequiresScope", fmt.Sprintf("token does not have at least one of required scope(s): %v", requiredScopes))
+ return
+ }
+
+ ctx.Data["requiredScopeCategories"] = requiredScopeCategories
// check if scope only applies to public resources
publicOnly, err := scope.PublicOnly()
@@ -269,21 +334,8 @@ func tokenRequiresScopes(requiredScopeCategories ...auth_model.AccessTokenScopeC
return
}
- // this context is used by the middleware in the specific route
- ctx.Data["ApiTokenScopePublicRepoOnly"] = publicOnly && auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryRepository)
- ctx.Data["ApiTokenScopePublicOrgOnly"] = publicOnly && auth_model.ContainsCategory(requiredScopeCategories, auth_model.AccessTokenScopeCategoryOrganization)
-
- allow, err := scope.HasScope(requiredScopes...)
- if err != nil {
- ctx.Error(http.StatusForbidden, "tokenRequiresScope", "checking scope failed: "+err.Error())
- return
- }
-
- if allow {
- return
- }
-
- ctx.Error(http.StatusForbidden, "tokenRequiresScope", fmt.Sprintf("token does not have at least one of required scope(s): %v", requiredScopes))
+ // assign to true so that those searching should only filter public repositories/users/organizations
+ ctx.PublicOnly = publicOnly
}
}
@@ -295,25 +347,6 @@ func reqToken() func(ctx *context.APIContext) {
return
}
- if true == ctx.Data["IsApiToken"] {
- publicRepo, pubRepoExists := ctx.Data["ApiTokenScopePublicRepoOnly"]
- publicOrg, pubOrgExists := ctx.Data["ApiTokenScopePublicOrgOnly"]
-
- if pubRepoExists && publicRepo.(bool) &&
- ctx.Repo.Repository != nil && ctx.Repo.Repository.IsPrivate {
- ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public repos")
- return
- }
-
- if pubOrgExists && publicOrg.(bool) &&
- ctx.Org.Organization != nil && ctx.Org.Organization.Visibility != api.VisibleTypePublic {
- ctx.Error(http.StatusForbidden, "reqToken", "token scope is limited to public orgs")
- return
- }
-
- return
- }
-
if ctx.IsSigned {
return
}
@@ -879,11 +912,11 @@ func Routes() *web.Router {
m.Group("/user/{username}", func() {
m.Get("", activitypub.Person)
m.Post("/inbox", activitypub.ReqHTTPSignature(), activitypub.PersonInbox)
- }, context.UserAssignmentAPI())
+ }, context.UserAssignmentAPI(), checkTokenPublicOnly())
m.Group("/user-id/{user-id}", func() {
m.Get("", activitypub.Person)
m.Post("/inbox", activitypub.ReqHTTPSignature(), activitypub.PersonInbox)
- }, context.UserIDAssignmentAPI())
+ }, context.UserIDAssignmentAPI(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryActivityPub))
}
@@ -939,7 +972,7 @@ func Routes() *web.Router {
}, reqSelfOrAdmin(), reqBasicOrRevProxyAuth())
m.Get("/activities/feeds", user.ListUserActivityFeeds)
- }, context.UserAssignmentAPI(), individualPermsChecker)
+ }, context.UserAssignmentAPI(), checkTokenPublicOnly(), individualPermsChecker)
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser))
// Users (requires user scope)
@@ -957,7 +990,7 @@ func Routes() *web.Router {
m.Get("/starred", user.GetStarredRepos)
m.Get("/subscriptions", user.GetWatchedRepos)
- }, context.UserAssignmentAPI())
+ }, context.UserAssignmentAPI(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser), reqToken())
// Users (requires user scope)
@@ -1044,7 +1077,7 @@ func Routes() *web.Router {
m.Get("", user.IsStarring)
m.Put("", user.Star)
m.Delete("", user.Unstar)
- }, repoAssignment())
+ }, repoAssignment(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryRepository))
m.Get("/times", repo.ListMyTrackedTimes)
m.Get("/stopwatches", repo.GetStopwatches)
@@ -1069,18 +1102,20 @@ func Routes() *web.Router {
m.Get("", user.CheckUserBlock)
m.Put("", user.BlockUser)
m.Delete("", user.UnblockUser)
- }, context.UserAssignmentAPI())
+ }, context.UserAssignmentAPI(), checkTokenPublicOnly())
})
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser), reqToken())
// Repositories (requires repo scope, org scope)
m.Post("/org/{org}/repos",
+ // FIXME: we need org in context
tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization, auth_model.AccessTokenScopeCategoryRepository),
reqToken(),
bind(api.CreateRepoOption{}),
repo.CreateOrgRepoDeprecated)
// requires repo scope
+ // FIXME: Don't expose repository id outside of the system
m.Combo("/repositories/{id}", reqToken(), tokenRequiresScopes(auth_model.AccessTokenScopeCategoryRepository)).Get(repo.GetByID)
// Repos (requires repo scope)
@@ -1334,7 +1369,7 @@ func Routes() *web.Router {
m.Post("", bind(api.UpdateRepoAvatarOption{}), repo.UpdateAvatar)
m.Delete("", repo.DeleteAvatar)
}, reqAdmin(), reqToken())
- }, repoAssignment())
+ }, repoAssignment(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryRepository))
// Notifications (requires notifications scope)
@@ -1343,7 +1378,7 @@ func Routes() *web.Router {
m.Combo("/notifications", reqToken()).
Get(notify.ListRepoNotifications).
Put(notify.ReadRepoNotifications)
- }, repoAssignment())
+ }, repoAssignment(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryNotification))
// Issue (requires issue scope)
@@ -1457,7 +1492,7 @@ func Routes() *web.Router {
Patch(reqToken(), reqRepoWriter(unit.TypeIssues, unit.TypePullRequests), bind(api.EditMilestoneOption{}), repo.EditMilestone).
Delete(reqToken(), reqRepoWriter(unit.TypeIssues, unit.TypePullRequests), repo.DeleteMilestone)
})
- }, repoAssignment())
+ }, repoAssignment(), checkTokenPublicOnly())
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryIssue))
// NOTE: these are Gitea package management API - see packages.CommonRoutes and packages.DockerContainerRoutes for endpoints that implement package manager APIs
@@ -1468,14 +1503,14 @@ func Routes() *web.Router {
m.Get("/files", reqToken(), packages.ListPackageFiles)
})
m.Get("/", reqToken(), packages.ListPackages)
- }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryPackage), context.UserAssignmentAPI(), context.PackageAssignmentAPI(), reqPackageAccess(perm.AccessModeRead))
+ }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryPackage), context.UserAssignmentAPI(), context.PackageAssignmentAPI(), reqPackageAccess(perm.AccessModeRead), checkTokenPublicOnly())
// Organizations
m.Get("/user/orgs", reqToken(), tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser, auth_model.AccessTokenScopeCategoryOrganization), org.ListMyOrgs)
m.Group("/users/{username}/orgs", func() {
m.Get("", reqToken(), org.ListUserOrgs)
m.Get("/{org}/permissions", reqToken(), org.GetUserOrgsPermissions)
- }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser, auth_model.AccessTokenScopeCategoryOrganization), context.UserAssignmentAPI())
+ }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser, auth_model.AccessTokenScopeCategoryOrganization), context.UserAssignmentAPI(), checkTokenPublicOnly())
m.Post("/orgs", tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization), reqToken(), bind(api.CreateOrgOption{}), org.Create)
m.Get("/orgs", org.GetAll, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization))
m.Group("/orgs/{org}", func() {
@@ -1533,7 +1568,7 @@ func Routes() *web.Router {
m.Delete("", org.UnblockUser)
})
}, reqToken(), reqOrgOwnership())
- }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization), orgAssignment(true))
+ }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization), orgAssignment(true), checkTokenPublicOnly())
m.Group("/teams/{teamid}", func() {
m.Combo("").Get(reqToken(), org.GetTeam).
Patch(reqToken(), reqOrgOwnership(), bind(api.EditTeamOption{}), org.EditTeam).
@@ -1553,7 +1588,7 @@ func Routes() *web.Router {
Get(reqToken(), org.GetTeamRepo)
})
m.Get("/activities/feeds", org.ListTeamActivityFeeds)
- }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization), orgAssignment(false, true), reqToken(), reqTeamMembership())
+ }, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryOrganization), orgAssignment(false, true), reqToken(), reqTeamMembership(), checkTokenPublicOnly())
m.Group("/admin", func() {
m.Group("/cron", func() {
diff --git a/routers/api/v1/org/org.go b/routers/api/v1/org/org.go
index e848d95181..9e58746272 100644
--- a/routers/api/v1/org/org.go
+++ b/routers/api/v1/org/org.go
@@ -191,7 +191,7 @@ func GetAll(ctx *context.APIContext) {
// "$ref": "#/responses/OrganizationList"
vMode := []api.VisibleType{api.VisibleTypePublic}
- if ctx.IsSigned {
+ if ctx.IsSigned && !ctx.PublicOnly {
vMode = append(vMode, api.VisibleTypeLimited)
if ctx.Doer.IsAdmin {
vMode = append(vMode, api.VisibleTypePrivate)
diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go
index c1218440e5..d8c39b0f69 100644
--- a/routers/api/v1/repo/issue.go
+++ b/routers/api/v1/repo/issue.go
@@ -149,7 +149,7 @@ func SearchIssues(ctx *context.APIContext) {
Actor: ctx.Doer,
}
if ctx.IsSigned {
- opts.Private = true
+ opts.Private = !ctx.PublicOnly
opts.AllLimited = true
}
if ctx.FormString("owner") != "" {
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go
index 7eb4a8b8a2..34ebcb42d5 100644
--- a/routers/api/v1/repo/pull.go
+++ b/routers/api/v1/repo/pull.go
@@ -52,56 +52,79 @@ func ListPullRequests(ctx *context.APIContext) {
// parameters:
// - name: owner
// in: path
- // description: owner of the repo
+ // description: Owner of the repo
// type: string
// required: true
// - name: repo
// in: path
- // description: name of the repo
+ // description: Name of the repo
// type: string
// required: true
// - name: state
// in: query
- // description: "State of pull request: open or closed (optional)"
+ // description: State of pull request
// type: string
- // enum: [closed, open, all]
+ // enum: [open, closed, all]
+ // default: open
// - name: sort
// in: query
- // description: "Type of sort"
+ // description: Type of sort
// type: string
// enum: [oldest, recentupdate, leastupdate, mostcomment, leastcomment, priority]
// - name: milestone
// in: query
- // description: "ID of the milestone"
+ // description: ID of the milestone
// type: integer
// format: int64
// - name: labels
// in: query
- // description: "Label IDs"
+ // description: Label IDs
// type: array
// collectionFormat: multi
// items:
// type: integer
// format: int64
+ // - name: poster
+ // in: query
+ // description: Filter by pull request author
+ // type: string
// - name: page
// in: query
- // description: page number of results to return (1-based)
+ // description: Page number of results to return (1-based)
// type: integer
+ // minimum: 1
+ // default: 1
// - name: limit
// in: query
- // description: page size of results
+ // description: Page size of results
// type: integer
+ // minimum: 0
// responses:
// "200":
// "$ref": "#/responses/PullRequestList"
// "404":
// "$ref": "#/responses/notFound"
+ // "500":
+ // "$ref": "#/responses/error"
labelIDs, err := base.StringsToInt64s(ctx.FormStrings("labels"))
if err != nil {
ctx.Error(http.StatusInternalServerError, "PullRequests", err)
return
}
+ var posterID int64
+ if posterStr := ctx.FormString("poster"); posterStr != "" {
+ poster, err := user_model.GetUserByName(ctx, posterStr)
+ if err != nil {
+ if user_model.IsErrUserNotExist(err) {
+ ctx.Error(http.StatusBadRequest, "Poster not found", err)
+ } else {
+ ctx.Error(http.StatusInternalServerError, "GetUserByName", err)
+ }
+ return
+ }
+ posterID = poster.ID
+ }
listOptions := utils.GetListOptions(ctx)
prs, maxResults, err := issues_model.PullRequests(ctx, ctx.Repo.Repository.ID, &issues_model.PullRequestsOptions{
ListOptions: listOptions,
@@ -109,6 +132,7 @@ func ListPullRequests(ctx *context.APIContext) {
SortType: ctx.FormTrim("sort"),
Labels: labelIDs,
MilestoneID: ctx.FormInt64("milestone"),
+ PosterID: posterID,
})
if err != nil {
ctx.Error(http.StatusInternalServerError, "PullRequests", err)
@@ -1124,9 +1148,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/repo/repo.go b/routers/api/v1/repo/repo.go
index 6c1a94ee16..4638e2ba5c 100644
--- a/routers/api/v1/repo/repo.go
+++ b/routers/api/v1/repo/repo.go
@@ -129,6 +129,11 @@ func Search(ctx *context.APIContext) {
// "422":
// "$ref": "#/responses/validationError"
+ private := ctx.IsSigned && (ctx.FormString("private") == "" || ctx.FormBool("private"))
+ if ctx.PublicOnly {
+ private = false
+ }
+
opts := &repo_model.SearchRepoOptions{
ListOptions: utils.GetListOptions(ctx),
Actor: ctx.Doer,
@@ -138,7 +143,7 @@ func Search(ctx *context.APIContext) {
TeamID: ctx.FormInt64("team_id"),
TopicOnly: ctx.FormBool("topic"),
Collaborate: optional.None[bool](),
- Private: ctx.IsSigned && (ctx.FormString("private") == "" || ctx.FormBool("private")),
+ Private: private,
Template: optional.None[bool](),
StarredByID: ctx.FormInt64("starredBy"),
IncludeDescription: ctx.FormBool("includeDesc"),
diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go
index fedad87fc4..a9011427fb 100644
--- a/routers/api/v1/user/user.go
+++ b/routers/api/v1/user/user.go
@@ -9,6 +9,7 @@ import (
activities_model "code.gitea.io/gitea/models/activities"
user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/utils"
"code.gitea.io/gitea/services/context"
"code.gitea.io/gitea/services/convert"
@@ -67,12 +68,18 @@ func Search(ctx *context.APIContext) {
maxResults = 1
users = []*user_model.User{user_model.NewActionsUser()}
default:
+ var visible []structs.VisibleType
+ if ctx.PublicOnly {
+ visible = []structs.VisibleType{structs.VisibleTypePublic}
+ }
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,
+ Visible: visible,
+ ListOptions: listOptions,
})
if err != nil {
ctx.JSON(http.StatusInternalServerError, map[string]any{
diff --git a/routers/api/v1/utils/hook.go b/routers/api/v1/utils/hook.go
index f1abd49a7d..4328878e19 100644
--- a/routers/api/v1/utils/hook.go
+++ b/routers/api/v1/utils/hook.go
@@ -100,7 +100,7 @@ func checkCreateHookOption(ctx *context.APIContext, form *api.CreateHookOption)
func AddSystemHook(ctx *context.APIContext, form *api.CreateHookOption) {
hook, ok := addHook(ctx, form, 0, 0)
if ok {
- h, err := webhook_service.ToHook(setting.AppSubURL+"/admin", hook)
+ h, err := webhook_service.ToHook(setting.AppSubURL+"/-/admin", hook)
if err != nil {
ctx.Error(http.StatusInternalServerError, "convert.ToHook", err)
return
@@ -268,7 +268,7 @@ func EditSystemHook(ctx *context.APIContext, form *api.EditHookOption, hookID in
ctx.Error(http.StatusInternalServerError, "GetSystemOrDefaultWebhook", err)
return
}
- h, err := webhook_service.ToHook(setting.AppURL+"/admin", updated)
+ h, err := webhook_service.ToHook(setting.AppURL+"/-/admin", updated)
if err != nil {
ctx.Error(http.StatusInternalServerError, "convert.ToHook", err)
return
diff --git a/routers/private/hook_post_receive.go b/routers/private/hook_post_receive.go
index 0217efc069..4cee70331e 100644
--- a/routers/private/hook_post_receive.go
+++ b/routers/private/hook_post_receive.go
@@ -212,7 +212,7 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) {
return
}
- cols := make([]string, 0, len(opts.GitPushOptions))
+ cols := make([]string, 0, 2)
if isPrivate.Has() {
repo.IsPrivate = isPrivate.Value()
diff --git a/routers/web/admin/admin.go b/routers/web/admin/admin.go
index 6fc97c949e..37c54b5362 100644
--- a/routers/web/admin/admin.go
+++ b/routers/web/admin/admin.go
@@ -185,9 +185,9 @@ func DashboardPost(ctx *context.Context) {
}
}
if form.From == "monitor" {
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/cron")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/monitor/cron")
} else {
- ctx.Redirect(setting.AppSubURL + "/admin")
+ ctx.Redirect(setting.AppSubURL + "/-/admin")
}
}
diff --git a/routers/web/admin/applications.go b/routers/web/admin/applications.go
index 8583398074..9b48f21eca 100644
--- a/routers/web/admin/applications.go
+++ b/routers/web/admin/applications.go
@@ -23,8 +23,8 @@ var (
func newOAuth2CommonHandlers() *user_setting.OAuth2CommonHandlers {
return &user_setting.OAuth2CommonHandlers{
OwnerID: 0,
- BasePathList: fmt.Sprintf("%s/admin/applications", setting.AppSubURL),
- BasePathEditPrefix: fmt.Sprintf("%s/admin/applications/oauth2", setting.AppSubURL),
+ BasePathList: fmt.Sprintf("%s/-/admin/applications", setting.AppSubURL),
+ BasePathEditPrefix: fmt.Sprintf("%s/-/admin/applications/oauth2", setting.AppSubURL),
TplAppEdit: tplSettingsOauth2ApplicationEdit,
}
}
diff --git a/routers/web/admin/auths.go b/routers/web/admin/auths.go
index 3b89be0f8f..60e2b7c86f 100644
--- a/routers/web/admin/auths.go
+++ b/routers/web/admin/auths.go
@@ -324,7 +324,7 @@ func NewAuthSourcePost(ctx *context.Context) {
log.Trace("Authentication created by admin(%s): %s", ctx.Doer.Name, form.Name)
ctx.Flash.Success(ctx.Tr("admin.auths.new_success", form.Name))
- ctx.Redirect(setting.AppSubURL + "/admin/auths")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/auths")
}
// EditAuthSource render editing auth source page
@@ -437,7 +437,7 @@ func EditAuthSourcePost(ctx *context.Context) {
log.Trace("Authentication changed by admin(%s): %d", ctx.Doer.Name, source.ID)
ctx.Flash.Success(ctx.Tr("admin.auths.update_success"))
- ctx.Redirect(setting.AppSubURL + "/admin/auths/" + strconv.FormatInt(form.ID, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/auths/" + strconv.FormatInt(form.ID, 10))
}
// DeleteAuthSource response for deleting an auth source
@@ -454,11 +454,11 @@ func DeleteAuthSource(ctx *context.Context) {
} else {
ctx.Flash.Error(fmt.Sprintf("auth_service.DeleteSource: %v", err))
}
- ctx.JSONRedirect(setting.AppSubURL + "/admin/auths/" + url.PathEscape(ctx.PathParam(":authid")))
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/auths/" + url.PathEscape(ctx.PathParam(":authid")))
return
}
log.Trace("Authentication deleted by admin(%s): %d", ctx.Doer.Name, source.ID)
ctx.Flash.Success(ctx.Tr("admin.auths.deletion_success"))
- ctx.JSONRedirect(setting.AppSubURL + "/admin/auths")
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/auths")
}
diff --git a/routers/web/admin/config.go b/routers/web/admin/config.go
index 2ae93e9cac..d067250a5b 100644
--- a/routers/web/admin/config.go
+++ b/routers/web/admin/config.go
@@ -40,7 +40,7 @@ func SendTestMail(ctx *context.Context) {
ctx.Flash.Info(ctx.Tr("admin.config.test_mail_sent", email))
}
- ctx.Redirect(setting.AppSubURL + "/admin/config")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/config")
}
// TestCache test the cache settings
@@ -56,7 +56,7 @@ func TestCache(ctx *context.Context) {
}
}
- ctx.Redirect(setting.AppSubURL + "/admin/config")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/config")
}
func shadowPasswordKV(cfgItem, splitter string) string {
diff --git a/routers/web/admin/emails.go b/routers/web/admin/emails.go
index f0d8555070..49338fbd7c 100644
--- a/routers/web/admin/emails.go
+++ b/routers/web/admin/emails.go
@@ -134,7 +134,7 @@ func ActivateEmail(ctx *context.Context) {
ctx.Flash.Info(ctx.Tr("admin.emails.updated"))
}
- redirect, _ := url.Parse(setting.AppSubURL + "/admin/emails")
+ redirect, _ := url.Parse(setting.AppSubURL + "/-/admin/emails")
q := url.Values{}
if val := ctx.FormTrim("q"); len(val) > 0 {
q.Set("q", val)
diff --git a/routers/web/admin/hooks.go b/routers/web/admin/hooks.go
index e40580b6e7..91ca6e3fa7 100644
--- a/routers/web/admin/hooks.go
+++ b/routers/web/admin/hooks.go
@@ -36,8 +36,8 @@ func DefaultOrSystemWebhooks(ctx *context.Context) {
sys["Title"] = ctx.Tr("admin.systemhooks")
sys["Description"] = ctx.Tr("admin.systemhooks.desc", "https://docs.gitea.com/usage/webhooks")
sys["Webhooks"], err = webhook.GetSystemWebhooks(ctx, optional.None[bool]())
- sys["BaseLink"] = setting.AppSubURL + "/admin/hooks"
- sys["BaseLinkNew"] = setting.AppSubURL + "/admin/system-hooks"
+ sys["BaseLink"] = setting.AppSubURL + "/-/admin/hooks"
+ sys["BaseLinkNew"] = setting.AppSubURL + "/-/admin/system-hooks"
if err != nil {
ctx.ServerError("GetWebhooksAdmin", err)
return
@@ -46,8 +46,8 @@ func DefaultOrSystemWebhooks(ctx *context.Context) {
def["Title"] = ctx.Tr("admin.defaulthooks")
def["Description"] = ctx.Tr("admin.defaulthooks.desc", "https://docs.gitea.com/usage/webhooks")
def["Webhooks"], err = webhook.GetDefaultWebhooks(ctx)
- def["BaseLink"] = setting.AppSubURL + "/admin/hooks"
- def["BaseLinkNew"] = setting.AppSubURL + "/admin/default-hooks"
+ def["BaseLink"] = setting.AppSubURL + "/-/admin/hooks"
+ def["BaseLinkNew"] = setting.AppSubURL + "/-/admin/default-hooks"
if err != nil {
ctx.ServerError("GetWebhooksAdmin", err)
return
@@ -67,5 +67,5 @@ func DeleteDefaultOrSystemWebhook(ctx *context.Context) {
ctx.Flash.Success(ctx.Tr("repo.settings.webhook_deletion_success"))
}
- ctx.JSONRedirect(setting.AppSubURL + "/admin/hooks")
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/hooks")
}
diff --git a/routers/web/admin/notice.go b/routers/web/admin/notice.go
index 36303cbc06..5f7432e629 100644
--- a/routers/web/admin/notice.go
+++ b/routers/web/admin/notice.go
@@ -74,5 +74,5 @@ func EmptyNotices(ctx *context.Context) {
log.Trace("System notices deleted by admin (%s): [start: %d]", ctx.Doer.Name, 0)
ctx.Flash.Success(ctx.Tr("admin.notices.delete_success"))
- ctx.Redirect(setting.AppSubURL + "/admin/notices")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/notices")
}
diff --git a/routers/web/admin/packages.go b/routers/web/admin/packages.go
index 39f064a1be..2b9edc622d 100644
--- a/routers/web/admin/packages.go
+++ b/routers/web/admin/packages.go
@@ -99,7 +99,7 @@ func DeletePackageVersion(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("packages.settings.delete.success"))
- ctx.JSONRedirect(setting.AppSubURL + "/admin/packages?page=" + url.QueryEscape(ctx.FormString("page")) + "&q=" + url.QueryEscape(ctx.FormString("q")) + "&type=" + url.QueryEscape(ctx.FormString("type")))
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/packages?page=" + url.QueryEscape(ctx.FormString("page")) + "&q=" + url.QueryEscape(ctx.FormString("q")) + "&type=" + url.QueryEscape(ctx.FormString("type")))
}
func CleanupExpiredData(ctx *context.Context) {
@@ -109,5 +109,5 @@ func CleanupExpiredData(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("admin.packages.cleanup.success"))
- ctx.Redirect(setting.AppSubURL + "/admin/packages")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/packages")
}
diff --git a/routers/web/admin/queue.go b/routers/web/admin/queue.go
index dce8f8077f..59b17f88e6 100644
--- a/routers/web/admin/queue.go
+++ b/routers/web/admin/queue.go
@@ -53,7 +53,7 @@ func QueueSet(ctx *context.Context) {
maxNumber, err = strconv.Atoi(maxNumberStr)
if err != nil {
ctx.Flash.Error(ctx.Tr("admin.monitor.queue.settings.maxnumberworkers.error"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
return
}
if maxNumber < -1 {
@@ -65,7 +65,7 @@ func QueueSet(ctx *context.Context) {
mq.SetWorkerMaxNumber(maxNumber)
ctx.Flash.Success(ctx.Tr("admin.monitor.queue.settings.changed"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
}
func QueueRemoveAllItems(ctx *context.Context) {
@@ -85,5 +85,5 @@ func QueueRemoveAllItems(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("admin.monitor.queue.settings.remove_all_items_done"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
}
diff --git a/routers/web/admin/repos.go b/routers/web/admin/repos.go
index e7c27145dc..75e5ee5d86 100644
--- a/routers/web/admin/repos.go
+++ b/routers/web/admin/repos.go
@@ -58,7 +58,7 @@ func DeleteRepo(ctx *context.Context) {
log.Trace("Repository deleted: %s", repo.FullName())
ctx.Flash.Success(ctx.Tr("repo.settings.deletion_success"))
- ctx.JSONRedirect(setting.AppSubURL + "/admin/repos?page=" + url.QueryEscape(ctx.FormString("page")) + "&sort=" + url.QueryEscape(ctx.FormString("sort")))
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/repos?page=" + url.QueryEscape(ctx.FormString("page")) + "&sort=" + url.QueryEscape(ctx.FormString("sort")))
}
// UnadoptedRepos lists the unadopted repositories
@@ -114,7 +114,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
dirSplit := strings.SplitN(dir, "/", 2)
if len(dirSplit) != 2 {
- ctx.Redirect(setting.AppSubURL + "/admin/repos")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/repos")
return
}
@@ -122,7 +122,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
if err != nil {
if user_model.IsErrUserNotExist(err) {
log.Debug("User does not exist: %s", dirSplit[0])
- ctx.Redirect(setting.AppSubURL + "/admin/repos")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/repos")
return
}
ctx.ServerError("GetUserByName", err)
@@ -160,5 +160,5 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("repo.delete_preexisting_success", dir))
}
- ctx.Redirect(setting.AppSubURL + "/admin/repos/unadopted?search=true&q=" + url.QueryEscape(q) + "&page=" + url.QueryEscape(page))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/repos/unadopted?search=true&q=" + url.QueryEscape(q) + "&page=" + url.QueryEscape(page))
}
diff --git a/routers/web/admin/runners.go b/routers/web/admin/runners.go
index d73290a8db..4b89237364 100644
--- a/routers/web/admin/runners.go
+++ b/routers/web/admin/runners.go
@@ -9,5 +9,5 @@ import (
)
func RedirectToDefaultSetting(ctx *context.Context) {
- ctx.Redirect(setting.AppSubURL + "/admin/actions/runners")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/actions/runners")
}
diff --git a/routers/web/admin/stacktrace.go b/routers/web/admin/stacktrace.go
index b3b635af5b..ff751be621 100644
--- a/routers/web/admin/stacktrace.go
+++ b/routers/web/admin/stacktrace.go
@@ -42,5 +42,5 @@ func Stacktrace(ctx *context.Context) {
func StacktraceCancel(ctx *context.Context) {
pid := ctx.PathParam("pid")
process.GetManager().Cancel(process.IDType(pid))
- ctx.JSONRedirect(setting.AppSubURL + "/admin/monitor/stacktrace")
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/monitor/stacktrace")
}
diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go
index 48ff8ea04b..a6b0b5c78b 100644
--- a/routers/web/admin/users.go
+++ b/routers/web/admin/users.go
@@ -215,14 +215,14 @@ func NewUserPost(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("admin.users.new_success", u.Name))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + strconv.FormatInt(u.ID, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + strconv.FormatInt(u.ID, 10))
}
func prepareUserInfo(ctx *context.Context) *user_model.User {
u, err := user_model.GetUserByID(ctx, ctx.PathParamInt64(":userid"))
if err != nil {
if user_model.IsErrUserNotExist(err) {
- ctx.Redirect(setting.AppSubURL + "/admin/users")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users")
} else {
ctx.ServerError("GetUserByID", err)
}
@@ -481,7 +481,7 @@ func EditUserPost(ctx *context.Context) {
}
ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
}
// DeleteUser response for deleting a user
@@ -495,7 +495,7 @@ func DeleteUser(ctx *context.Context) {
// admin should not delete themself
if u.ID == ctx.Doer.ID {
ctx.Flash.Error(ctx.Tr("admin.users.cannot_delete_self"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
return
}
@@ -503,16 +503,16 @@ func DeleteUser(ctx *context.Context) {
switch {
case models.IsErrUserOwnRepos(err):
ctx.Flash.Error(ctx.Tr("admin.users.still_own_repo"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
case models.IsErrUserHasOrgs(err):
ctx.Flash.Error(ctx.Tr("admin.users.still_has_org"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
case models.IsErrUserOwnPackages(err):
ctx.Flash.Error(ctx.Tr("admin.users.still_own_packages"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
case models.IsErrDeleteLastAdminUser(err):
ctx.Flash.Error(ctx.Tr("auth.last_admin"))
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + url.PathEscape(ctx.PathParam(":userid")))
default:
ctx.ServerError("DeleteUser", err)
}
@@ -521,7 +521,7 @@ func DeleteUser(ctx *context.Context) {
log.Trace("Account deleted by admin (%s): %s", ctx.Doer.Name, u.Name)
ctx.Flash.Success(ctx.Tr("admin.users.deletion_success"))
- ctx.Redirect(setting.AppSubURL + "/admin/users")
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users")
}
// AvatarPost response for change user's avatar request
@@ -538,7 +538,7 @@ func AvatarPost(ctx *context.Context) {
ctx.Flash.Success(ctx.Tr("settings.update_user_avatar_success"))
}
- ctx.Redirect(setting.AppSubURL + "/admin/users/" + strconv.FormatInt(u.ID, 10))
+ ctx.Redirect(setting.AppSubURL + "/-/admin/users/" + strconv.FormatInt(u.ID, 10))
}
// DeleteAvatar render delete avatar page
@@ -552,5 +552,5 @@ func DeleteAvatar(ctx *context.Context) {
ctx.Flash.Error(err.Error())
}
- ctx.JSONRedirect(setting.AppSubURL + "/admin/users/" + strconv.FormatInt(u.ID, 10))
+ ctx.JSONRedirect(setting.AppSubURL + "/-/admin/users/" + strconv.FormatInt(u.ID, 10))
}
diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go
index 5cbe2f5388..c9ef9193f1 100644
--- a/routers/web/auth/auth.go
+++ b/routers/web/auth/auth.go
@@ -98,7 +98,7 @@ func autoSignIn(ctx *context.Context) (bool, error) {
return false, err
}
- ctx.Csrf.DeleteCookie(ctx)
+ ctx.Csrf.PrepareForSessionUser(ctx)
return true, nil
}
@@ -359,8 +359,8 @@ func handleSignInFull(ctx *context.Context, u *user_model.User, remember, obeyRe
ctx.Locale = middleware.Locale(ctx.Resp, ctx.Req)
}
- // Clear whatever CSRF cookie has right now, force to generate a new one
- ctx.Csrf.DeleteCookie(ctx)
+ // force to generate a new CSRF token
+ ctx.Csrf.PrepareForSessionUser(ctx)
// Register last login
if err := user_service.UpdateUser(ctx, u, &user_service.UpdateOptions{SetLastLogin: true}); err != nil {
@@ -804,6 +804,8 @@ func handleAccountActivation(ctx *context.Context, user *user_model.User) {
return
}
+ ctx.Csrf.PrepareForSessionUser(ctx)
+
if err := resetLocale(ctx, user); err != nil {
ctx.ServerError("resetLocale", err)
return
diff --git a/routers/web/auth/oauth.go b/routers/web/auth/oauth.go
index ccbb3bebf1..730d68051b 100644
--- a/routers/web/auth/oauth.go
+++ b/routers/web/auth/oauth.go
@@ -358,8 +358,8 @@ func handleOAuth2SignIn(ctx *context.Context, source *auth.Source, u *user_model
return
}
- // Clear whatever CSRF cookie has right now, force to generate a new one
- ctx.Csrf.DeleteCookie(ctx)
+ // force to generate a new CSRF token
+ ctx.Csrf.PrepareForSessionUser(ctx)
if err := resetLocale(ctx, u); err != nil {
ctx.ServerError("resetLocale", err)
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/repo/pull.go b/routers/web/repo/pull.go
index ced0bbc15a..0efe1be76a 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -166,7 +166,7 @@ func setMergeTarget(ctx *context.Context, pull *issues_model.PullRequest) {
ctx.Data["BaseTarget"] = pull.BaseBranch
headBranchLink := ""
if pull.Flow == issues_model.PullRequestFlowGithub {
- b, err := git_model.GetBranch(ctx, ctx.Repo.Repository.ID, pull.HeadBranch)
+ b, err := git_model.GetBranch(ctx, pull.HeadRepoID, pull.HeadBranch)
switch {
case err == nil:
if !b.IsDeleted {
@@ -887,8 +887,6 @@ func viewPullFiles(ctx *context.Context, specifiedStartCommit, specifiedEndCommi
}
if pull.HeadRepo != nil {
- ctx.Data["SourcePath"] = pull.HeadRepo.Link() + "/src/commit/" + endCommitID
-
if !pull.HasMerged && ctx.Doer != nil {
perm, err := access_model.GetUserRepoPermission(ctx, pull.HeadRepo, ctx.Doer)
if err != nil {
diff --git a/routers/web/repo/setting/runners.go b/routers/web/repo/setting/runners.go
index 93e6f518b0..3141d8f42a 100644
--- a/routers/web/repo/setting/runners.go
+++ b/routers/web/repo/setting/runners.go
@@ -76,7 +76,7 @@ func getRunnersCtx(ctx *context.Context) (*runnersCtx, error) {
IsAdmin: true,
RunnersTemplate: tplAdminRunners,
RunnerEditTemplate: tplAdminRunnerEdit,
- RedirectLink: setting.AppSubURL + "/admin/actions/runners/",
+ RedirectLink: setting.AppSubURL + "/-/admin/actions/runners/",
}, nil
}
diff --git a/routers/web/repo/setting/variables.go b/routers/web/repo/setting/variables.go
index 45b6c0f39a..cc2e619f66 100644
--- a/routers/web/repo/setting/variables.go
+++ b/routers/web/repo/setting/variables.go
@@ -74,7 +74,7 @@ func getVariablesCtx(ctx *context.Context) (*variablesCtx, error) {
RepoID: 0,
IsGlobal: true,
VariablesTemplate: tplAdminVariables,
- RedirectLink: setting.AppSubURL + "/admin/actions/variables",
+ RedirectLink: setting.AppSubURL + "/-/admin/actions/variables",
}, nil
}
diff --git a/routers/web/repo/setting/webhook.go b/routers/web/repo/setting/webhook.go
index 7661599729..8d548c4e3d 100644
--- a/routers/web/repo/setting/webhook.go
+++ b/routers/web/repo/setting/webhook.go
@@ -100,8 +100,8 @@ func getOwnerRepoCtx(ctx *context.Context) (*ownerRepoCtx, error) {
return &ownerRepoCtx{
IsAdmin: true,
IsSystemWebhook: ctx.PathParam(":configType") == "system-hooks",
- Link: path.Join(setting.AppSubURL, "/admin/hooks"),
- LinkNew: path.Join(setting.AppSubURL, "/admin/", ctx.PathParam(":configType")),
+ Link: path.Join(setting.AppSubURL, "/-/admin/hooks"),
+ LinkNew: path.Join(setting.AppSubURL, "/-/admin/", ctx.PathParam(":configType")),
NewTemplate: tplAdminHookNew,
}, nil
}
diff --git a/routers/web/user/setting/profile.go b/routers/web/user/setting/profile.go
index 554f6cd6ce..3b051c9b5f 100644
--- a/routers/web/user/setting/profile.go
+++ b/routers/web/user/setting/profile.go
@@ -69,6 +69,11 @@ func ProfilePost(ctx *context.Context) {
form := web.GetForm(ctx).(*forms.UpdateProfileForm)
if form.Name != "" {
+ if user_model.IsFeatureDisabledWithLoginType(ctx.Doer, setting.UserFeatureChangeUsername) {
+ ctx.Flash.Error(ctx.Tr("user.form.change_username_disabled"))
+ ctx.Redirect(setting.AppSubURL + "/user/settings")
+ return
+ }
if err := user_service.RenameUser(ctx, ctx.Doer, form.Name); err != nil {
switch {
case user_model.IsErrUserIsNotLocal(err):
@@ -91,7 +96,6 @@ func ProfilePost(ctx *context.Context) {
}
opts := &user_service.UpdateOptions{
- FullName: optional.Some(form.FullName),
KeepEmailPrivate: optional.Some(form.KeepEmailPrivate),
Description: optional.Some(form.Description),
Website: optional.Some(form.Website),
@@ -99,6 +103,16 @@ func ProfilePost(ctx *context.Context) {
Visibility: optional.Some(form.Visibility),
KeepActivityPrivate: optional.Some(form.KeepActivityPrivate),
}
+
+ if form.FullName != "" {
+ if user_model.IsFeatureDisabledWithLoginType(ctx.Doer, setting.UserFeatureChangeFullName) {
+ ctx.Flash.Error(ctx.Tr("user.form.change_full_name_disabled"))
+ ctx.Redirect(setting.AppSubURL + "/user/settings")
+ return
+ }
+ opts.FullName = optional.Some(form.FullName)
+ }
+
if err := user_service.UpdateUser(ctx, ctx.Doer, opts); err != nil {
ctx.ServerError("UpdateUser", err)
return
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 4f9cf6089f..e14139796e 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() {
@@ -684,7 +683,7 @@ func registerRoutes(m *web.Router) {
adminReq := verifyAuthWithOptions(&common.VerifyOptions{SignInRequired: true, AdminRequired: true})
// ***** START: Admin *****
- m.Group("/admin", func() {
+ m.Group("/-/admin", func() {
m.Get("", admin.Dashboard)
m.Get("/system_status", admin.SystemStatus)
m.Post("", web.Bind(forms.AdminDashboardForm{}), admin.DashboardPost)
@@ -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/agit/agit.go b/services/agit/agit.go
index 52a70469e0..82aa2791aa 100644
--- a/services/agit/agit.go
+++ b/services/agit/agit.go
@@ -7,7 +7,6 @@ import (
"context"
"fmt"
"os"
- "strconv"
"strings"
issues_model "code.gitea.io/gitea/models/issues"
@@ -24,10 +23,10 @@ import (
// ProcReceive handle proc receive work
func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, opts *private.HookOptions) ([]private.HookProcReceiveRefResult, error) {
results := make([]private.HookProcReceiveRefResult, 0, len(opts.OldCommitIDs))
+ forcePush := opts.GitPushOptions.Bool(private.GitPushOptionForcePush)
topicBranch := opts.GitPushOptions["topic"]
- forcePush, _ := strconv.ParseBool(opts.GitPushOptions["force-push"])
title := strings.TrimSpace(opts.GitPushOptions["title"])
- description := strings.TrimSpace(opts.GitPushOptions["description"]) // TODO: Add more options?
+ description := strings.TrimSpace(opts.GitPushOptions["description"])
objectFormat := git.ObjectFormatFromName(repo.ObjectFormatName)
userName := strings.ToLower(opts.UserName)
@@ -56,19 +55,19 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
}
baseBranchName := opts.RefFullNames[i].ForBranchName()
- curentTopicBranch := ""
+ currentTopicBranch := ""
if !gitRepo.IsBranchExist(baseBranchName) {
// try match refs/for/