mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			v1.24.0-de
			...
			v1.23.0-rc
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c8ffe777cf | ||
| 
						 | 
					e98dd6ee5b | 
							
								
								
									
										348
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										348
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -4,6 +4,354 @@ This changelog goes through the changes that have been made in each release
 | 
			
		||||
without substantial changes to our git log; to see the highlights of what has
 | 
			
		||||
been added to each release, please refer to the [blog](https://blog.gitea.com).
 | 
			
		||||
 | 
			
		||||
## [1.23.0-rc0](https://github.com/go-gitea/gitea/releases/tag/v1.23.0-rc0) - 2024-12-16
 | 
			
		||||
 | 
			
		||||
* BREAKING
 | 
			
		||||
  * Rename config option `[camo].Allways` to `[camo].Always` (#32097)
 | 
			
		||||
  * Remove SHA1 for support for ssh rsa signing (#31857)
 | 
			
		||||
  * Use UTC as default timezone when schedule Actions cron tasks (#31742)
 | 
			
		||||
  * Delete Actions logs older than 1 year by default (#31735)
 | 
			
		||||
  * Make OIDC introspection authentication strictly require Client ID and secret (#31632)
 | 
			
		||||
 | 
			
		||||
* SECURITY
 | 
			
		||||
  * Include file extension checks in attachment API (#32151)
 | 
			
		||||
  * Include all security fixes which have been backported to v1.22
 | 
			
		||||
 | 
			
		||||
* FEATURES
 | 
			
		||||
  * Allow to fork repository into the same owner (#32819)
 | 
			
		||||
  * Support "merge upstream branch" (Sync fork) (#32741)
 | 
			
		||||
  * Add Arch package registry (#32692)
 | 
			
		||||
  * Allow to disable the password-based login (sign-in) form (#32687)
 | 
			
		||||
  * Allow cropping an avatar before setting it (#32565)
 | 
			
		||||
  * Support quote selected comments to reply (#32431)
 | 
			
		||||
  * Add reviewers selection to new pull request (#32403)
 | 
			
		||||
  * Suggestions for issues (#32327)
 | 
			
		||||
  * Add priority to protected branch (#32286)
 | 
			
		||||
  * Included tag search capabilities (#32045)
 | 
			
		||||
  * Add option to filter board cards by labels and assignees (#31999)
 | 
			
		||||
  * Add automatic light/dark option for the colorblind theme (#31997)
 | 
			
		||||
  * Support migration from AWS CodeCommit (#31981)
 | 
			
		||||
  * Introduce globallock as distributed locks (#31908 & #31813)
 | 
			
		||||
  * Support compression for Actions logs & enable by default (#31761 & #32013)
 | 
			
		||||
  * Add pure SSH LFS support (#31516)
 | 
			
		||||
  * Add Passkey login support (#31504)
 | 
			
		||||
  * Actions support workflow dispatch event (#28163)
 | 
			
		||||
  * Support repo license (#24872)
 | 
			
		||||
  * Issue time estimate, meaningful time tracking (#23113)
 | 
			
		||||
  * GitHub like repo home page (#32213 & #32847)
 | 
			
		||||
  * Rearrange Clone Panel (#31142)
 | 
			
		||||
  * Enhancing Gitea OAuth2 Provider with Granular Scopes for Resource Access (#32573)
 | 
			
		||||
 | 
			
		||||
* PERFORMANCE
 | 
			
		||||
  * Perf: add extra index to notification table (#32395)
 | 
			
		||||
  * Introduce OrgList and add LoadTeams, optimaze Load teams for orgs (#32543)
 | 
			
		||||
  * Improve performance of diffs (#32393)
 | 
			
		||||
  * Make LFS http_client parallel within a batch. (#32369)
 | 
			
		||||
  * Add new index for action to resolve the performance problem (#32333)
 | 
			
		||||
  * Improve get feed with pagination (#31821)
 | 
			
		||||
  * Performance improvements for pull request list API (#30490)
 | 
			
		||||
  * Use batch database operations instead of one by one to optimze api pulls (#32680)
 | 
			
		||||
 | 
			
		||||
* ENHANCEMENTS
 | 
			
		||||
  * Code
 | 
			
		||||
    * Remove unnecessary border in repo home page sidebar (#32767)
 | 
			
		||||
    * Add 'Copy path' button to file view (#32584)
 | 
			
		||||
    * Improve diff file tree (#32658)
 | 
			
		||||
    * Add new [lfs_client].BATCH_SIZE and [server].LFS_MAX_BATCH_SIZE config settings. (#32307)
 | 
			
		||||
    * Updated tokenizer to better matching when search for code snippets (#32261)
 | 
			
		||||
    * Change the code search to sort results by relevance (#32134)
 | 
			
		||||
    * Support migrating GitHub/GitLab PR draft status (#32242)
 | 
			
		||||
    * Move lock icon position and add additional tooltips to branch list page (#31839)
 | 
			
		||||
    * Add tag name in the commits list (#31082)
 | 
			
		||||
    * Add `MAX_ROWS` option for CSV rendering (#30268)
 | 
			
		||||
    * Allow code search by filename (#32210)
 | 
			
		||||
    * Make git push options accept short name (#32245)
 | 
			
		||||
    * Repo file list enhancements (#32835)
 | 
			
		||||
 | 
			
		||||
  * Markdown & Editor
 | 
			
		||||
    * Refactor markdown math render, add dollor-backquote syntax support (#32831)
 | 
			
		||||
    * Make Monaco theme follow browser, fully type codeeditor.ts (#32756)
 | 
			
		||||
    * Refactor markdown editor and use it for milestone description editor (#32688)
 | 
			
		||||
    * Add some handy markdown editor features (#32400)
 | 
			
		||||
    * Improve markdown textarea for indentation and lists (#31406)
 | 
			
		||||
 | 
			
		||||
  * Issue
 | 
			
		||||
    * Add label/author/assignee filters to the user/org home issue list (#32779)
 | 
			
		||||
    * Refactor issue filter (labels, poster, assignee) (#32771)
 | 
			
		||||
    * Style unification for the issue_management area (#32605)
 | 
			
		||||
    * Add "View all branches/tags" entry to Branch Selector (#32653)
 | 
			
		||||
    * Improve textarea paste (#31948)
 | 
			
		||||
    * Add avif image file support (#32508)
 | 
			
		||||
    * Prevent from submitting issue/comment on uploading (#32263)
 | 
			
		||||
    * Issue Templates: add option to have dropdown printed list (#31577)
 | 
			
		||||
    * Allow searching issues by ID (#31479)
 | 
			
		||||
    * Add `is_archived` option for issue indexer (#32735)
 | 
			
		||||
    * Improve attachment upload methods (#30513)
 | 
			
		||||
    * Support issue template assignees (#31083)
 | 
			
		||||
    * Prevent simultaneous editing of comments and issues (#31053)
 | 
			
		||||
    * Add issue comment when moving issues from one column to another of the project (#29311)
 | 
			
		||||
 | 
			
		||||
  * Pull Request
 | 
			
		||||
    * Display head branch more comfortable on pull request view (#32000)
 | 
			
		||||
    * Simplify review UI (#31062)
 | 
			
		||||
    * Allow force push to protected branches (#28086)
 | 
			
		||||
    * Add line-through for deleted branch on pull request view page (#32500)
 | 
			
		||||
    * Support requested_reviewers data in comment webhook events (#26178)
 | 
			
		||||
    * Allow maintainers to view and edit files of private repos when "Allow maintainers to edit" is enabled (#32215)
 | 
			
		||||
    * Allow including `Reviewed-on`/`Reviewed-by` lines for custom merge messages (#31211)
 | 
			
		||||
 | 
			
		||||
  * Actions
 | 
			
		||||
    * Render job title as commit message (#32748)
 | 
			
		||||
    * Refactor RepoActionView.vue, add `::group::` support (#32713)
 | 
			
		||||
    * Make RepoActionView.vue support `##[group]` (#32770)
 | 
			
		||||
    * Support `pull_request_target` event for commit status (#31703)
 | 
			
		||||
    * Detect whether action view branch was deleted (#32764)
 | 
			
		||||
    * Allow users with write permission to run actions (#32644)
 | 
			
		||||
    * Show latest run when visit /run/latest (#31808)
 | 
			
		||||
 | 
			
		||||
  * Packages
 | 
			
		||||
    * Improve rubygems package registry (#31357)
 | 
			
		||||
    * Add support for npm bundleDependencies (#30751)
 | 
			
		||||
    * Add signature support for the RPM module (#27069)
 | 
			
		||||
    * Extract and display readme and comments for Composer packages (#30927)
 | 
			
		||||
 | 
			
		||||
  * Project
 | 
			
		||||
    * Add title to project view page (#32747)
 | 
			
		||||
    * Set the columns height to hug all its contents (#31726)
 | 
			
		||||
    * Rename project `board` -> `column` to make the UI less confusing (#30170)
 | 
			
		||||
 | 
			
		||||
  * User & Organazition
 | 
			
		||||
    * Use better name for userinfo structure (#32544)
 | 
			
		||||
    * Use user.FullName in Oauth2 id_token response (#32542)
 | 
			
		||||
    * Limit org member view of restricted users (#32211)
 | 
			
		||||
    * Allow disabling authentication related user features (#31535)
 | 
			
		||||
    * Add option to change mail from user display name (#31528)
 | 
			
		||||
    * Use FullName in Emails to address the recipient if possible (#31527)
 | 
			
		||||
 | 
			
		||||
  * Administration
 | 
			
		||||
    * Add support for a credentials chain for minio access (#31051)
 | 
			
		||||
    * Move admin routers from /admin to /-/admin (#32189)
 | 
			
		||||
    * Add cache test for admins (#31265)
 | 
			
		||||
    * Add option for mailer to override mail headers (#27860)
 | 
			
		||||
    * Azure blob storage support (#30995)
 | 
			
		||||
    * Supports forced use of S3 virtual-hosted style (#30969)
 | 
			
		||||
    * Move repository visibility to danger zone in the settings area (#31126)
 | 
			
		||||
 | 
			
		||||
  * Others
 | 
			
		||||
    * Remove urls from translations (#31950)
 | 
			
		||||
    * Simplify 404/500 page (#31409)
 | 
			
		||||
    * Optimize installation-page experience (#32558)
 | 
			
		||||
    * Refactor login page (#31530)
 | 
			
		||||
    * Add new event commit status creation and webhook implementation (#27151)
 | 
			
		||||
    * Repo Activity: count new issues that were closed (#31776)
 | 
			
		||||
    * Set manual `tabindex`es on login page (#31689)
 | 
			
		||||
    * Add `YEAR`, `MONTH`, `MONTH_ENGLISH`, `DAY` variables for template repos (#31584)
 | 
			
		||||
    * Add typescript guideline and typescript-specific eslint plugins and fix issues (#31521)
 | 
			
		||||
    * Make toast support preventDuplicates (#31501)
 | 
			
		||||
    * Fix tautological conditions (#30735)
 | 
			
		||||
 | 
			
		||||
* API
 | 
			
		||||
  * Implement update branch API (#32433)
 | 
			
		||||
  * Fix missing outputs for jobs with matrix (#32823)
 | 
			
		||||
  * Make API "compare" accept commit IDs (#32801)
 | 
			
		||||
  * Add github compatible tarball download API endpoints (#32572)
 | 
			
		||||
  * Harden runner updateTask and updateLog api (#32462)
 | 
			
		||||
  * Add `DISABLE_ORGANIZATIONS_PAGE` and `DISABLE_CODE_PAGE` settings for explore pages and fix an issue related to user search (#32288)
 | 
			
		||||
  * Make admins adhere to branch protection rules (#32248)
 | 
			
		||||
  * Calculate `PublicOnly` for org membership only once (#32234)
 | 
			
		||||
  * Allow filtering PRs by poster in the ListPullRequests API (#32209)
 | 
			
		||||
  * Return 404 instead of error when commit not exist (#31977)
 | 
			
		||||
  * Save initial signup information for users to aid in spam prevention (#31852)
 | 
			
		||||
  * Fix upload maven pacakge parallelly (#31851)
 | 
			
		||||
  * Fix null requested_reviewer from API (#31773)
 | 
			
		||||
  * Add permission description for API to add repo collaborator (#31744)
 | 
			
		||||
  * Add return type to GetRawFileOrLFS and GetRawFile (#31680)
 | 
			
		||||
  * Add skip secondary authorization option for public oauth2 clients (#31454)
 | 
			
		||||
  * Add tag protection via rest api #17862 (#31295)
 | 
			
		||||
  * Document possible action types for the user activity feed API (#31196)
 | 
			
		||||
  * Add topics for repository API (#31127)
 | 
			
		||||
  * Add support for searching users by email (#30908)
 | 
			
		||||
  * Add API endpoints for getting action jobs status (#26673)
 | 
			
		||||
 | 
			
		||||
* REFACTOR
 | 
			
		||||
  * Update JS and PY dependencies (#31940)
 | 
			
		||||
  * Enable `no-jquery/no-parse-html-literal` and fix violation (#31684)
 | 
			
		||||
  * Refactor image diff (#31444)
 | 
			
		||||
  * Refactor CSRF token (#32216)
 | 
			
		||||
  * Fix some typescript issues (#32586)
 | 
			
		||||
  * Refactor names (#31405)
 | 
			
		||||
  * Use per package global lock for container uploads instead of memory lock (#31860)
 | 
			
		||||
  * Move team related functions to service layer (#32537)
 | 
			
		||||
  * Move GetFeeds to service layer (#32526)
 | 
			
		||||
  * Resolve lint for unused parameter and unnecessary type arguments (#30750)
 | 
			
		||||
  * Reimplement GetUserOrgsList to make it simple and clear (#32486)
 | 
			
		||||
  * Move some functions from issue.go to standalone files (#32468)
 | 
			
		||||
  * Refactor sidebar assignee&milestone&project selectors (#32465)
 | 
			
		||||
  * Refactor sidebar label selector (#32460)
 | 
			
		||||
  * Fix a number of typescript issues (#32459)
 | 
			
		||||
  * Refactor language menu and dom utils (#32450)
 | 
			
		||||
  * Refactor issue page info (#32445)
 | 
			
		||||
  * Split issue sidebar into small templates (#32444)
 | 
			
		||||
  * Refactor template ctx and render utils (#32422)
 | 
			
		||||
  * Refactor repo legacy (#32404)
 | 
			
		||||
  * Refactor markup package (#32399)
 | 
			
		||||
  * Refactor markup render system (#32533 & #32589 & #32612)
 | 
			
		||||
  * Refactor the DB migration system slightly (#32344)
 | 
			
		||||
  * Remove jQuery import from some files (#32512)
 | 
			
		||||
  * Strict pagination check (#32548)
 | 
			
		||||
  * Split mail sender sub package from mailer service package (#32618)
 | 
			
		||||
  * Remove outdated code about fixture generation (#32708)
 | 
			
		||||
  * Refactor RepoBranchTagSelector (#32681)
 | 
			
		||||
  * Refactor issue list (#32755)
 | 
			
		||||
  * Refactor LabelEdit (#32752)
 | 
			
		||||
  * Split issue/pull view router function as multiple smaller functions (#32749)
 | 
			
		||||
  * Refactor some LDAP code (#32849)
 | 
			
		||||
  * Unify repo search order by logic (#30876)
 | 
			
		||||
  * Remove duplicate empty repo check in delete branch API (#32569)
 | 
			
		||||
  * Replace deprecated `math/rand` functions (#30733)
 | 
			
		||||
  * Remove fomantic dimmer module (#30723)
 | 
			
		||||
  * Add types to fetch,toast,bootstrap,svg (#31627)
 | 
			
		||||
  * Refactor webhook (#31587)
 | 
			
		||||
  * Move AddCollabrator and CreateRepositoryByExample to service layer (#32419)
 | 
			
		||||
  * Refactor RepoRefByType (#32413)
 | 
			
		||||
  * Refactor: remove redundant err declarations (#32381)
 | 
			
		||||
  * Refactor markup code (#31399)
 | 
			
		||||
  * Refactor render system (orgmode) (#32671)
 | 
			
		||||
  * Refactor render system (#32492)
 | 
			
		||||
  * Refactor markdown render (#32736 & #32728)
 | 
			
		||||
  * Refactor repo unit "disabled" check (#31389)
 | 
			
		||||
  * Refactor route path normalization (#31381)
 | 
			
		||||
  * Refactor to use UnsafeStringToBytes (#31358)
 | 
			
		||||
  * Migrate vue components to setup (#32329)
 | 
			
		||||
  * Refactor globallock (#31933)
 | 
			
		||||
  * Use correct function name (#31887)
 | 
			
		||||
  * Use a common message template instead of a special one (#31878)
 | 
			
		||||
  * Fix a number of Typescript issues (#31877)
 | 
			
		||||
  * Refactor dropzone (#31482)
 | 
			
		||||
  * Move custom `tw-` helpers to tailwind plugin (#31184)
 | 
			
		||||
  * Replace `gt-word-break` with `tw-break-anywhere` (#31183)
 | 
			
		||||
  * Drop `IDOrderDesc` for listing Actions task and always order by `id DESC` (#31150)
 | 
			
		||||
  * Split common-global.js into separate files (#31438)
 | 
			
		||||
  * Improve detecting empty files (#31332)
 | 
			
		||||
  * Use `querySelector` over alternative DOM methods (#31280)
 | 
			
		||||
  * Remove jQuery `.text()` (#30506)
 | 
			
		||||
  * Use repo as of renderctx's member rather than a repoPath on metas (#29222)
 | 
			
		||||
  * Refactor some frontend problems (#32646)
 | 
			
		||||
  * Refactor DateUtils and merge TimeSince (#32409)
 | 
			
		||||
  * Replace DateTime with proper functions (#32402)
 | 
			
		||||
  * Replace DateTime with DateUtils (#32383)
 | 
			
		||||
  * Convert frontend code to typescript (#31559)
 | 
			
		||||
 | 
			
		||||
* BUGFIXES
 | 
			
		||||
  * Fix issues with inconsistent spacing in areas (#32607)
 | 
			
		||||
  * Fix incomplete Actions status aggregations (#32859)
 | 
			
		||||
  * In some lfs server implementations, they require the ref attribute. (#32838)
 | 
			
		||||
  * Update the list of watchers and stargazers when clicking watch/unwatch or star/unstar (#32570)
 | 
			
		||||
  * Fix `recentupdate` sorting bugs (#32505)
 | 
			
		||||
  * Fix incorrect "Target branch does not exist" in PR title (#32222)
 | 
			
		||||
  * Handle "close" actionable references for manual merges (#31879)
 | 
			
		||||
  * render plain text file if the LFS object doesn't exist (#31812)
 | 
			
		||||
  * Fix Null Pointer error for CommitStatusesHideActionsURL (#31731)
 | 
			
		||||
  * Fix loadRepository error when access user dashboard (#31719)
 | 
			
		||||
  * Hide the "Details" link of commit status when the user cannot access actions (#30156)
 | 
			
		||||
  * Fix duplicate dropdown dividers (#32760)
 | 
			
		||||
  * Fix SSPI button visibility when SSPI is the only enabled method (#32841)
 | 
			
		||||
  * Fix overflow on org header (#32837)
 | 
			
		||||
  * Exclude protected branches from recently pushed (#31748)
 | 
			
		||||
  * Fix large image overflow in comment page (#31740)
 | 
			
		||||
  * Fix milestone deadline and date related problems (#32339)
 | 
			
		||||
  * Fix markdown preview $$ support (#31514)
 | 
			
		||||
  * Fix a compilation error in the Gitpod environment (#32559)
 | 
			
		||||
  * Fix PR diff review form submit (#32596)
 | 
			
		||||
  * Fix a number of typescript issues (#32308)
 | 
			
		||||
  * Fix some function names in comment (#32300)
 | 
			
		||||
  * Fix absolute-date (#32375)
 | 
			
		||||
  * Clarify Actions resources ownership (#31724)
 | 
			
		||||
 | 
			
		||||
* MISC
 | 
			
		||||
  * Optimize branch protection rule loading (#32280)
 | 
			
		||||
  * Bump to go 1.23 (#31855)
 | 
			
		||||
  * Remove unused call to $.HeadRepo in view_title template (#32317)
 | 
			
		||||
  * Do not display `attestation-manifest` and use short sha256 instead of full sha256 (#32851)
 | 
			
		||||
  * Upgrade htmx to 2.0.4 (#32834)
 | 
			
		||||
  * Improve JSX/TSX support in code editor (#32833)
 | 
			
		||||
  * Add User-Agent for gitea's self-implemented lfs client. (#32832)
 | 
			
		||||
  * Use errors.New to replace fmt.Errorf with no parameters (#32800)
 | 
			
		||||
  * Add "n commits" link to contributors in contributors graph page (#32799)
 | 
			
		||||
  * Update dependencies, tweak eslint (#32719)
 | 
			
		||||
  * Remove all "floated" CSS styles (#32691)
 | 
			
		||||
  * Show tag name on branch/tag selector if repo shown from tag ref (#32689)
 | 
			
		||||
  * Use new mail package instead of an unmintained one (#32682)
 | 
			
		||||
  * Optimize the styling of icon buttons within file-header-right (#32675)
 | 
			
		||||
  * Validate OAuth Redirect URIs (#32643)
 | 
			
		||||
  * Support optional/configurable IAMEndpoint for Minio Client (#32581) (#32581)
 | 
			
		||||
  * Make search box in issue sidebar dropdown list always show when scrolling (#32576)
 | 
			
		||||
  * Bump CI,Flake and Snap to Node 22 (#32487)
 | 
			
		||||
  * Update `github.com/meilisearch/meilisearch-go` (#32484)
 | 
			
		||||
  * Add `DEFAULT_MIRROR_REPO_UNITS` and `DEFAULT_TEMPLATE_REPO_UNITS` options (#32416)
 | 
			
		||||
  * Update go dependencies (#32389)
 | 
			
		||||
  * Update JS and PY dependencies (#32388)
 | 
			
		||||
  * Upgrade rollup to 4.24.0 (#32312)
 | 
			
		||||
  * Upgrade vue to 3.5.12 (#32311)
 | 
			
		||||
  * Improve the maintainblity of the reserved username list (#32229)
 | 
			
		||||
  * Upgrade htmx to 2.0.3 (#32192)
 | 
			
		||||
  * Count typescript files as frontend for labeling (#32088)
 | 
			
		||||
  * Only use Host header from reverse proxy (#32060)
 | 
			
		||||
  * Failed authentications are logged to level Warning (#32016)
 | 
			
		||||
  * Enhance USER_DISABLED_FEATURES to allow disabling change username or full name (#31959)
 | 
			
		||||
  * Distinguish official vs non-official reviews, add tool tips, and upgr… (#31924)
 | 
			
		||||
  * Update mermaid to v11 (#31913)
 | 
			
		||||
  * Bump relative-time-element to v4.4.3 (#31910)
 | 
			
		||||
  * Upgrade `htmx` to `2.0.2` (#31847)
 | 
			
		||||
  * Add warning message in merge instructions when `AutodetectManualMerge` was not enabled (#31805)
 | 
			
		||||
  * Add types to various low-level functions (#31781)
 | 
			
		||||
  * Update JS dependencies (#31766)
 | 
			
		||||
  * Remove unused code from models/repos/release.go (#31756)
 | 
			
		||||
  * Support delete user email in admin panel (#31690)
 | 
			
		||||
  * Add `username` to OIDC introspection response (#31688)
 | 
			
		||||
  * Use GetDisplayName() instead of DisplayName() to generate rss feeds (#31687)
 | 
			
		||||
  * Code editor theme enhancements (#31629)
 | 
			
		||||
  * Update JS dependencies (#31616)
 | 
			
		||||
  * Add types for js globals (#31586)
 | 
			
		||||
  * Add back esbuild-loader for .js files (#31585)
 | 
			
		||||
  * Don't show hidden labels when filling out an issue template (#31576)
 | 
			
		||||
  * Allow synchronizing user status from OAuth2 login providers (#31572)
 | 
			
		||||
  * Display app name in the registration email title (#31562)
 | 
			
		||||
  * Use stable version of fabric (#31526)
 | 
			
		||||
  * Support legacy _links LFS batch responses (#31513)
 | 
			
		||||
  * Fix JS error with disabled attachment and easymde (#31511)
 | 
			
		||||
  * Always use HTML attributes for avatar size (#31509)
 | 
			
		||||
  * Use nolyfill to remove some polyfills (#31468)
 | 
			
		||||
  * Disable issue/PR comment button given empty input (#31463)
 | 
			
		||||
  * Add simple JS init performance trace (#31459)
 | 
			
		||||
  * Bump htmx to 2.0.0 (#31413)
 | 
			
		||||
  * Update JS dependencies, remove `eslint-plugin-jquery` (#31402)
 | 
			
		||||
  * Split org Propfile README to a new tab `overview` (#31373)
 | 
			
		||||
  * Update nix flake and add gofumpt (#31320)
 | 
			
		||||
  * Code optimization (#31315)
 | 
			
		||||
  * Enable poetry non-package mode (#31282)
 | 
			
		||||
  * Optimize profile layout to enhance visual experience (#31278)
 | 
			
		||||
  * Update `golang.org/x/net` (#31260)
 | 
			
		||||
  * Bump `@github/relative-time-element` to v4.4.1 (#31232)
 | 
			
		||||
  * Remove unnecessary inline style for tab-size (#31224)
 | 
			
		||||
  * Update golangci-lint to v1.59.0 (#31221)
 | 
			
		||||
  * Update chroma to v2.14.0 (#31177)
 | 
			
		||||
  * Update JS dependencies (#31120)
 | 
			
		||||
  * Improve the handling of `jobs.<job_id>.if` (#31070)
 | 
			
		||||
  * Clean up revive linter config, tweak golangci output (#30980)
 | 
			
		||||
  * Use CSS `inset` shorthand (#30939)
 | 
			
		||||
  * Forbid deprecated `break-word` in CSS (#30934)
 | 
			
		||||
  * Remove obsolete monaco workaround (#30893)
 | 
			
		||||
  * Update JS dependencies, add new eslint rules (#30840)
 | 
			
		||||
  * Fix body margin shifting with modals, fix error on project column edit (#30831)
 | 
			
		||||
  * Remove disk-clean workflow (#30741)
 | 
			
		||||
  * Bump `github.com/google/go-github` to v61 (#30738)
 | 
			
		||||
  * Add built js files to eslint ignore (#30737)
 | 
			
		||||
  * Use `ProtonMail/go-crypto` for `opengpg` in tests (#30736)
 | 
			
		||||
  * Upgrade xorm to v1.3.9 and improve some migrations Sync (#29899)
 | 
			
		||||
  * Added default sorting milestones by name (#27084)
 | 
			
		||||
  * Enable `unparam` linter (#31277)
 | 
			
		||||
 | 
			
		||||
## [1.22.4](https://github.com/go-gitea/gitea/releases/tag/v1.22.4) - 2024-11-14
 | 
			
		||||
 | 
			
		||||
* SECURITY
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ func TestAggregateJobStatus(t *testing.T) {
 | 
			
		||||
		{[]Status{StatusFailure, StatusBlocked}, StatusFailure},
 | 
			
		||||
 | 
			
		||||
		// skipped with other status
 | 
			
		||||
		// TODO: need to clarify whether a PR with "skipped" job status is considered as "mergeable" or not.
 | 
			
		||||
		// "all skipped" is also considered as "mergeable" by "services/actions.toCommitStatus", the same as GitHub
 | 
			
		||||
		{[]Status{StatusSkipped}, StatusSkipped},
 | 
			
		||||
		{[]Status{StatusSkipped, StatusSuccess}, StatusSuccess},
 | 
			
		||||
		{[]Status{StatusSkipped, StatusFailure}, StatusFailure},
 | 
			
		||||
 
 | 
			
		||||
@@ -129,7 +129,8 @@ func SpecializedMarkdown(ctx *markup.RenderContext) *GlodmarkRender {
 | 
			
		||||
				Enabled:           setting.Markdown.EnableMath,
 | 
			
		||||
				ParseDollarInline: true,
 | 
			
		||||
				ParseDollarBlock:  true,
 | 
			
		||||
				ParseSquareBlock:  true, // TODO: this is a bad syntax, it should be deprecated in the future (by some config options)
 | 
			
		||||
				ParseSquareBlock:  true, // TODO: this is a bad syntax "\[ ... \]", it conflicts with normal markdown escaping, it should be deprecated in the future (by some config options)
 | 
			
		||||
				// ParseBracketInline: true, // TODO: this is also a bad syntax "\( ... \)", it also conflicts, it should be deprecated in the future
 | 
			
		||||
			}),
 | 
			
		||||
			meta.Meta,
 | 
			
		||||
		),
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,9 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CanUserForkBetweenOwners returns true if user can fork between owners.
 | 
			
		||||
// By default, a user can fork a repository from another owner, but not from themselves.
 | 
			
		||||
// Many users really like to fork their own repositories, so add an experimental setting to allow this.
 | 
			
		||||
func CanUserForkBetweenOwners(id1, id2 int64) bool {
 | 
			
		||||
	if id1 != id2 {
 | 
			
		||||
		return true
 | 
			
		||||
 
 | 
			
		||||
@@ -1676,7 +1676,6 @@ issues.timetracker_timer_stop=Arrêter le minuteur
 | 
			
		||||
issues.timetracker_timer_discard=Annuler le minuteur
 | 
			
		||||
issues.timetracker_timer_manually_add=Pointer du temps
 | 
			
		||||
 | 
			
		||||
issues.time_estimate_placeholder=1h 2m
 | 
			
		||||
issues.time_estimate_set=Définir le temps estimé
 | 
			
		||||
issues.time_estimate_display=Estimation : %s
 | 
			
		||||
issues.change_time_estimate_at=a changé le temps estimé à <b>%s</b> %s
 | 
			
		||||
 
 | 
			
		||||
@@ -1676,7 +1676,6 @@ issues.timetracker_timer_stop=Stop an t-amadóir
 | 
			
		||||
issues.timetracker_timer_discard=Déan an t-amadóir a scriosadh
 | 
			
		||||
issues.timetracker_timer_manually_add=Cuir Am leis
 | 
			
		||||
 | 
			
		||||
issues.time_estimate_placeholder=1u 2n
 | 
			
		||||
issues.time_estimate_set=Socraigh am measta
 | 
			
		||||
issues.time_estimate_display=Meastachán: %s
 | 
			
		||||
issues.change_time_estimate_at=d'athraigh an meastachán ama go <b>%s</b> %s
 | 
			
		||||
 
 | 
			
		||||
@@ -1679,7 +1679,6 @@ issues.timetracker_timer_stop=Parar cronómetro
 | 
			
		||||
issues.timetracker_timer_discard=Descartar cronómetro
 | 
			
		||||
issues.timetracker_timer_manually_add=Adicionar tempo
 | 
			
		||||
 | 
			
		||||
issues.time_estimate_placeholder=1h 2m
 | 
			
		||||
issues.time_estimate_set=Definir tempo estimado
 | 
			
		||||
issues.time_estimate_display=Estimativa: %s
 | 
			
		||||
issues.change_time_estimate_at=alterou a estimativa de tempo para <b>%s</b> %s
 | 
			
		||||
@@ -2632,6 +2631,7 @@ release.new_release=Novo lançamento
 | 
			
		||||
release.draft=Rascunho
 | 
			
		||||
release.prerelease=Pré-lançamento
 | 
			
		||||
release.stable=Estável
 | 
			
		||||
release.latest=Mais recente
 | 
			
		||||
release.compare=Comparar
 | 
			
		||||
release.edit=editar
 | 
			
		||||
release.ahead.commits=<strong>%d</strong> cometimentos
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +93,7 @@ remove_all=移除所有
 | 
			
		||||
remove_label_str=`删除标签 "%s"`
 | 
			
		||||
edit=编辑
 | 
			
		||||
view=查看
 | 
			
		||||
test=测试
 | 
			
		||||
 | 
			
		||||
enabled=启用
 | 
			
		||||
disabled=禁用
 | 
			
		||||
@@ -103,6 +104,7 @@ copy_url=复制网址
 | 
			
		||||
copy_hash=复制哈希值
 | 
			
		||||
copy_content=复制内容
 | 
			
		||||
copy_branch=复制分支名
 | 
			
		||||
copy_path=复制路径
 | 
			
		||||
copy_success=复制成功!
 | 
			
		||||
copy_error=复制失败
 | 
			
		||||
copy_type_unsupported=无法复制此类型的文件内容
 | 
			
		||||
@@ -143,6 +145,7 @@ confirm_delete_selected=确认删除所有选中项目?
 | 
			
		||||
 | 
			
		||||
name=名称
 | 
			
		||||
value=值
 | 
			
		||||
readme=自述文档
 | 
			
		||||
 | 
			
		||||
filter=过滤
 | 
			
		||||
filter.clear=清除筛选器
 | 
			
		||||
@@ -178,6 +181,7 @@ package_kind=搜索软件包...
 | 
			
		||||
project_kind=搜索项目...
 | 
			
		||||
branch_kind=搜索分支...
 | 
			
		||||
tag_kind=搜索标签...
 | 
			
		||||
tag_tooltip=搜索匹配的标签。使用“%”来匹配任何序列的数字
 | 
			
		||||
commit_kind=搜索提交记录...
 | 
			
		||||
runner_kind=搜索runners...
 | 
			
		||||
no_results=未找到匹配结果
 | 
			
		||||
@@ -223,16 +227,20 @@ string.desc=Z - A
 | 
			
		||||
 | 
			
		||||
[error]
 | 
			
		||||
occurred=发生了一个错误
 | 
			
		||||
report_message=如果您确定这是一个 Gitea bug,请在 <a href="%s" target="_blank">这里</a> 搜索问题,或在必要时创建一个新工单。
 | 
			
		||||
not_found=找不到目标。
 | 
			
		||||
network_error=网络错误
 | 
			
		||||
 | 
			
		||||
[startpage]
 | 
			
		||||
app_desc=一款极易搭建的自助 Git 服务
 | 
			
		||||
install=易安装
 | 
			
		||||
install_desc=通过 <a target="_blank" rel="noopener noreferrer" href="%[1]s">二进制</a> 来运行;或者通过 <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a> 来运行;或者通过 <a target="_blank" rel="noopener noreferrer" href="%[3]s">安装包</a> 来运行。
 | 
			
		||||
platform=跨平台
 | 
			
		||||
platform_desc=任何 <a target="_blank" rel="noopener noreferrer" href="%s">Go 语言</a> 支持的平台都可以运行 Gitea,包括 Windows、Mac、Linux 以及 ARM。挑一个您喜欢的就行!
 | 
			
		||||
lightweight=轻量级
 | 
			
		||||
lightweight_desc=一个廉价的树莓派的配置足以满足 Gitea 的最低系统硬件要求。最大程度上节省您的服务器资源!
 | 
			
		||||
license=开源化
 | 
			
		||||
license_desc=所有的代码都开源在 <a target="_blank" rel="noopener noreferrer" href="%[1]s">%[2]s</a> 上,赶快加入我们来<a target="_blank" rel="noopener noreferrer" href="%[3]s">共同发展</a>这个伟大的项目!还等什么?成为贡献者吧!
 | 
			
		||||
 | 
			
		||||
[install]
 | 
			
		||||
install=安装页面
 | 
			
		||||
@@ -346,6 +354,7 @@ enable_update_checker=启用更新检查
 | 
			
		||||
enable_update_checker_helper=通过连接到 gitea.io 定期检查新版本发布。
 | 
			
		||||
env_config_keys=环境配置
 | 
			
		||||
env_config_keys_prompt=以下环境变量也将应用于您的配置文件:
 | 
			
		||||
config_write_file_prompt=这些配置选项将写入以下位置: %s
 | 
			
		||||
 | 
			
		||||
[home]
 | 
			
		||||
nav_menu=导航菜单
 | 
			
		||||
@@ -386,6 +395,7 @@ relevant_repositories=只显示相关的仓库, <a href="%s">显示未过滤
 | 
			
		||||
 | 
			
		||||
[auth]
 | 
			
		||||
create_new_account=注册帐号
 | 
			
		||||
already_have_account=已有账号?
 | 
			
		||||
sign_in_now=立即登录
 | 
			
		||||
disable_register_prompt=对不起,注册功能已被关闭。请联系网站管理员。
 | 
			
		||||
disable_register_mail=已禁用注册的电子邮件确认。
 | 
			
		||||
@@ -394,6 +404,7 @@ remember_me=记住此设备
 | 
			
		||||
remember_me.compromised=登录令牌不再有效,因为它可能表明帐户已被破坏。请检查您的帐户是否有异常活动。
 | 
			
		||||
forgot_password_title=忘记密码
 | 
			
		||||
forgot_password=忘记密码?
 | 
			
		||||
need_account=需要一个帐户?
 | 
			
		||||
sign_up_now=还没账号?马上注册。
 | 
			
		||||
sign_up_successful=帐户创建成功。欢迎!
 | 
			
		||||
confirmation_mail_sent_prompt_ex=一封新的确认邮件已经发送到 <b>%s</b>请在下一个 %s 中检查您的收件箱以完成注册过程。 如果您的注册电子邮件地址不正确,您可以重新登录并更改它。
 | 
			
		||||
@@ -449,12 +460,15 @@ authorize_application=应用授权
 | 
			
		||||
authorize_redirect_notice=如果您授权此应用,您将会被重定向到 %s。
 | 
			
		||||
authorize_application_created_by=此应用由%s创建。
 | 
			
		||||
authorize_application_description=如果您允许,它将能够读取和修改您的所有帐户信息,包括私人仓库和组织。
 | 
			
		||||
authorize_application_with_scopes=范围: %s
 | 
			
		||||
authorize_title=授权 %s 访问您的帐户?
 | 
			
		||||
authorization_failed=授权失败
 | 
			
		||||
authorization_failed_desc=因为检测到无效请求,授权失败。请尝试联系您授权应用的管理员。
 | 
			
		||||
sspi_auth_failed=SSPI 认证失败
 | 
			
		||||
password_pwned=此密码出现在 <a target="_blank" rel="noopener noreferrer" href="%s">被盗密码</a> 列表上并且曾经被公开。 请使用另一个密码再试一次。
 | 
			
		||||
password_pwned_err=无法完成对 HaveIBeenPwned 的请求
 | 
			
		||||
last_admin=您不能删除最后一个管理员。必须至少保留一个管理员。
 | 
			
		||||
signin_passkey=使用密钥登录
 | 
			
		||||
back_to_sign_in=返回登录页面
 | 
			
		||||
 | 
			
		||||
[mail]
 | 
			
		||||
@@ -574,6 +588,8 @@ lang_select_error=从列表中选出语言
 | 
			
		||||
 | 
			
		||||
username_been_taken=用户名已被使用。
 | 
			
		||||
username_change_not_local_user=非本地用户不允许更改用户名。
 | 
			
		||||
change_username_disabled=更改用户名已被禁用。
 | 
			
		||||
change_full_name_disabled=更改用户全名已禁用
 | 
			
		||||
username_has_not_been_changed=用户名未更改
 | 
			
		||||
repo_name_been_taken=仓库名称已被使用。
 | 
			
		||||
repository_force_private=“强制私有”已启用:私有仓库不能被公开。
 | 
			
		||||
@@ -623,6 +639,7 @@ org_still_own_repo=该组织仍然是某些仓库的拥有者,请先删除或
 | 
			
		||||
org_still_own_packages=该组织仍然是一个或多个软件包的拥有者,请先删除它们。
 | 
			
		||||
 | 
			
		||||
target_branch_not_exist=目标分支不存在。
 | 
			
		||||
target_ref_not_exist=目标引用 %s 不存在
 | 
			
		||||
 | 
			
		||||
admin_cannot_delete_self=当您是管理员时,您不能删除自己。请先移除您的管理员权限
 | 
			
		||||
 | 
			
		||||
@@ -688,14 +705,18 @@ applications=应用
 | 
			
		||||
orgs=管理组织
 | 
			
		||||
repos=仓库列表
 | 
			
		||||
delete=删除帐户
 | 
			
		||||
twofa=两步验证(TOTP)
 | 
			
		||||
account_link=已绑定帐户
 | 
			
		||||
organization=组织
 | 
			
		||||
uid=UID
 | 
			
		||||
webauthn=两步验证(安全密钥)
 | 
			
		||||
 | 
			
		||||
public_profile=公开信息
 | 
			
		||||
biography_placeholder=告诉我们一点您自己! (您可以使用Markdown)
 | 
			
		||||
location_placeholder=与他人分享你的大概位置
 | 
			
		||||
profile_desc=控制您的个人资料对其他用户的显示方式。您的主要电子邮件地址将用于通知、密码恢复和基于网页界面的 Git 操作
 | 
			
		||||
password_username_disabled=不允许非本地用户更改他们的用户名。更多详情请联系您的系统管理员。
 | 
			
		||||
password_full_name_disabled=您无权更改他们的全名。请联系您的站点管理员了解更多详情。
 | 
			
		||||
full_name=自定义名称
 | 
			
		||||
website=个人网站
 | 
			
		||||
location=所在地区
 | 
			
		||||
@@ -745,6 +766,7 @@ uploaded_avatar_not_a_image=上传的文件不是一张图片。
 | 
			
		||||
uploaded_avatar_is_too_big=上传的文件大小(%d KiB) 超过最大限制(%d KiB)。
 | 
			
		||||
update_avatar_success=您的头像已更新。
 | 
			
		||||
update_user_avatar_success=用户头像已更新。
 | 
			
		||||
cropper_prompt=您可以在保存前编辑图像。编辑的图像将被保存为 PNG 格式。
 | 
			
		||||
 | 
			
		||||
change_password=更新密码
 | 
			
		||||
old_password=当前密码
 | 
			
		||||
@@ -787,6 +809,7 @@ add_email_success=新的电子邮件地址已添加。
 | 
			
		||||
email_preference_set_success=电子邮件首选项已成功设置。
 | 
			
		||||
add_openid_success=新的 OpenID 地址已添加。
 | 
			
		||||
keep_email_private=隐藏电子邮件地址
 | 
			
		||||
keep_email_private_popup=这将会隐藏您的电子邮件地址,不仅在您的个人资料中,还在您使用Web界面创建合并请求或编辑文件时。已推送的提交将不会被修改。在提交中使用 %s 以和您的账号关联。
 | 
			
		||||
openid_desc=OpenID 让你可以将认证转发到外部服务。
 | 
			
		||||
 | 
			
		||||
manage_ssh_keys=管理 SSH 密钥
 | 
			
		||||
@@ -905,6 +928,7 @@ create_oauth2_application_success=您已成功创建了一个新的 OAuth2 应
 | 
			
		||||
update_oauth2_application_success=您已成功更新了此 OAuth2 应用。
 | 
			
		||||
oauth2_application_name=应用名称
 | 
			
		||||
oauth2_confidential_client=机密客户端。是否是能够维持凭据机密性的应用,比如网页应用程序。如果是本地应用程序请不要勾选,包括桌面和移动端应用。
 | 
			
		||||
oauth2_skip_secondary_authorization=首次授权后允许公共客户端跳过授权步骤。 <strong>可能会带来安全风险。</strong>
 | 
			
		||||
oauth2_redirect_uris=重定向 URI。每行一个 URI。
 | 
			
		||||
save_application=保存
 | 
			
		||||
oauth2_client_id=客户端ID
 | 
			
		||||
@@ -915,6 +939,7 @@ oauth2_client_secret_hint=您离开或刷新此页面后将不会再显示此密
 | 
			
		||||
oauth2_application_edit=编辑
 | 
			
		||||
oauth2_application_create_description=OAuth2 应用允许您的第三方应用程序访问此实例的用户帐户。
 | 
			
		||||
oauth2_application_remove_description=移除一个OAuth2应用将会阻止它访问此实例上的已授权用户账户。是否继续?
 | 
			
		||||
oauth2_application_locked=如果配置启用,Gitea预注册一些OAuth2应用程序。 为了防止意外的行为, 这些应用既不能编辑也不能删除。请参阅OAuth2文档以获取更多信息。
 | 
			
		||||
 | 
			
		||||
authorized_oauth2_applications=已授权的 OAuth2 应用
 | 
			
		||||
authorized_oauth2_applications_description=您已授予这些第三方应用程序访问您的个人 Gitea 账户的权限。请撤销那些您不再需要的应用程序的访问权限。
 | 
			
		||||
@@ -923,20 +948,26 @@ revoke_oauth2_grant=撤回权限
 | 
			
		||||
revoke_oauth2_grant_description=确定撤销此三方应用程序的授权,并阻止此应用程序访问您的数据?
 | 
			
		||||
revoke_oauth2_grant_success=成功撤销了访问权限。
 | 
			
		||||
 | 
			
		||||
twofa_desc=为保护你的账号密码安全,你可以使用智能手机或其它设备来接收时间强相关的一次性密码(TOTP)。
 | 
			
		||||
twofa_recovery_tip=如果您丢失了您的设备,您将能够使用一次性恢复密钥来重新获得对您账户的访问。
 | 
			
		||||
twofa_is_enrolled=你的账号<strong>已启用</strong>了两步验证。
 | 
			
		||||
twofa_not_enrolled=你的账号未开启两步验证。
 | 
			
		||||
twofa_disable=禁用两步认证
 | 
			
		||||
twofa_scratch_token_regenerate=重新生成初始令牌
 | 
			
		||||
twofa_scratch_token_regenerated=您的初始令牌现在是 %s。将其存放在安全的地方,它将不会再次显示。
 | 
			
		||||
twofa_enroll=启用两步验证
 | 
			
		||||
twofa_disable_note=如果需要, 可以禁用双因素身份验证。
 | 
			
		||||
twofa_disable_desc=关掉两步验证会使得您的账号不安全,继续执行?
 | 
			
		||||
regenerate_scratch_token_desc=如果您丢失了您的恢复密钥或已经使用它登录, 您可以在这里重置它。
 | 
			
		||||
twofa_disabled=两步验证已被禁用。
 | 
			
		||||
scan_this_image=使用您的授权应用扫描这张图片:
 | 
			
		||||
or_enter_secret=或者输入密钥:%s
 | 
			
		||||
then_enter_passcode=并输入应用程序中显示的密码:
 | 
			
		||||
passcode_invalid=密码不正确。再试一次。
 | 
			
		||||
twofa_enrolled=你的账号已经启用了两步验证。请保存初始令牌(%s)到一个安全的地方,此令牌仅显示一次。
 | 
			
		||||
twofa_failed_get_secret=获取 secret 失败。
 | 
			
		||||
 | 
			
		||||
webauthn_desc=安全密钥是包含加密密钥的硬件设备。它们可以用于双因素身份验证。安全密钥必须支持 <a rel="noreferrer" target="_blank" href="%s">WebAuthn 身份验证器</a> 标准。
 | 
			
		||||
webauthn_register_key=添加安全密钥
 | 
			
		||||
webauthn_nickname=昵称
 | 
			
		||||
webauthn_delete_key=移除安全密钥
 | 
			
		||||
@@ -1002,6 +1033,8 @@ fork_to_different_account=派生到其他账号
 | 
			
		||||
fork_visibility_helper=无法更改派生仓库的可见性。
 | 
			
		||||
fork_branch=要克隆到 Fork 的分支
 | 
			
		||||
all_branches=所有分支
 | 
			
		||||
view_all_branches=查看所有分支
 | 
			
		||||
view_all_tags=查看所有标签
 | 
			
		||||
fork_no_valid_owners=这个代码仓库无法被派生,因为没有有效的所有者。
 | 
			
		||||
fork.blocked_user=无法克隆仓库,因为您被仓库所有者屏蔽。
 | 
			
		||||
use_template=使用此模板
 | 
			
		||||
@@ -1013,6 +1046,8 @@ generate_repo=生成仓库
 | 
			
		||||
generate_from=生成自
 | 
			
		||||
repo_desc=仓库描述
 | 
			
		||||
repo_desc_helper=输入简要描述 (可选)
 | 
			
		||||
repo_no_desc=无详细信息
 | 
			
		||||
repo_lang=编程语言
 | 
			
		||||
repo_gitignore_helper=选择 .gitignore 模板。
 | 
			
		||||
repo_gitignore_helper_desc=从常见语言的模板列表中选择忽略跟踪的文件。默认情况下,由开发或构建工具生成的特殊文件都包含在 .gitignore 中。
 | 
			
		||||
issue_labels=工单标签
 | 
			
		||||
@@ -1074,6 +1109,7 @@ delete_preexisting_success=删除 %s 中未收录的文件
 | 
			
		||||
blame_prior=查看此更改前的 blame
 | 
			
		||||
blame.ignore_revs=忽略 <a href="%s">.git-blame-ignore-revs</a> 的修订。点击 <a href="%s">绕过</a> 并查看正常的 Blame 视图。
 | 
			
		||||
blame.ignore_revs.failed=忽略 <a href="%s">.git-blame-ignore-revs</a> 版本失败。
 | 
			
		||||
user_search_tooltip=最多显示30名用户
 | 
			
		||||
 | 
			
		||||
tree_path_not_found_commit=路径%[1]s 在提交 %[2]s 中不存在
 | 
			
		||||
tree_path_not_found_branch=路径 %[1]s 不存在于分支 %[2]s 中。
 | 
			
		||||
@@ -1222,6 +1258,7 @@ releases=版本发布
 | 
			
		||||
tag=Git标签
 | 
			
		||||
released_this=发布
 | 
			
		||||
tagged_this=已标记
 | 
			
		||||
file.title=%s 位于 %s
 | 
			
		||||
file_raw=原始文件
 | 
			
		||||
file_history=文件历史
 | 
			
		||||
file_view_source=源码模式
 | 
			
		||||
@@ -1238,6 +1275,7 @@ ambiguous_runes_header=`此文件含有模棱两可的 Unicode 字符`
 | 
			
		||||
ambiguous_runes_description=`此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。`
 | 
			
		||||
invisible_runes_line=`此行含有不可见的 unicode 字符`
 | 
			
		||||
ambiguous_runes_line=`此行有模棱两可的 unicode 字符`
 | 
			
		||||
ambiguous_character=`%[1]c [U+%04[1]X] 容易和 %[2]c [U+%04[2]X] 混淆`
 | 
			
		||||
 | 
			
		||||
escape_control_characters=Escape
 | 
			
		||||
unescape_control_characters=Unescape
 | 
			
		||||
@@ -1429,6 +1467,7 @@ issues.new.clear_milestone=取消选中里程碑
 | 
			
		||||
issues.new.assignees=指派成员
 | 
			
		||||
issues.new.clear_assignees=取消指派成员
 | 
			
		||||
issues.new.no_assignees=未指派成员
 | 
			
		||||
issues.new.no_reviewers=无审核者
 | 
			
		||||
issues.new.blocked_user=无法创建工单,因为您已被仓库所有者屏蔽。
 | 
			
		||||
issues.edit.already_changed=无法保存对工单的更改。其内容似乎已被其他用户更改。 请刷新页面并重新编辑以避免覆盖他们的更改
 | 
			
		||||
issues.edit.blocked_user=无法编辑内容,因为您已被仓库所有者或工单创建者屏蔽。
 | 
			
		||||
@@ -1457,6 +1496,7 @@ issues.remove_labels=于 %[2]s 删除了标签 %[1]s
 | 
			
		||||
issues.add_remove_labels=于 %[3]s 添加了标签 %[1]s ,删除了标签 %[2]s
 | 
			
		||||
issues.add_milestone_at=`于 %[2]s 添加了里程碑 <b>%[1]s</b>`
 | 
			
		||||
issues.add_project_at=`于 %[2]s 将此添加到 <b>%[1]s</b> 项目`
 | 
			
		||||
issues.move_to_column_of_project=`将此对象移至 %s 的 %s 中在 %s 上`
 | 
			
		||||
issues.change_milestone_at=`%[3]s 修改了里程碑从 <b>%[1]s</b> 到 <b>%[2]s</b>`
 | 
			
		||||
issues.change_project_at=于 %[3]s 将此从项目 <b>%[1]s</b> 移到 <b>%[2]s</b>
 | 
			
		||||
issues.remove_milestone_at=`%[2]s 删除了里程碑 <b>%[1]s</b>`
 | 
			
		||||
@@ -1488,6 +1528,8 @@ issues.filter_assignee=指派人筛选
 | 
			
		||||
issues.filter_assginee_no_select=所有指派成员
 | 
			
		||||
issues.filter_assginee_no_assignee=未指派
 | 
			
		||||
issues.filter_poster=作者
 | 
			
		||||
issues.filter_user_placeholder=搜索用户
 | 
			
		||||
issues.filter_user_no_select=所有用户
 | 
			
		||||
issues.filter_type=类型筛选
 | 
			
		||||
issues.filter_type.all_issues=所有工单
 | 
			
		||||
issues.filter_type.assigned_to_you=指派给您的
 | 
			
		||||
@@ -1541,7 +1583,9 @@ issues.no_content=没有提供说明。
 | 
			
		||||
issues.close=关闭工单
 | 
			
		||||
issues.comment_pull_merged_at=已合并提交 %[1]s 到 %[2]s %[3]s
 | 
			
		||||
issues.comment_manually_pull_merged_at=手动合并提交 %[1]s 到 %[2]s %[3]s
 | 
			
		||||
issues.close_comment_issue=评论并关闭
 | 
			
		||||
issues.reopen_issue=重新开启
 | 
			
		||||
issues.reopen_comment_issue=评论并重新开启
 | 
			
		||||
issues.create_comment=评论
 | 
			
		||||
issues.comment.blocked_user=无法创建或编辑评论,因为您已被仓库所有者或工单创建者屏蔽。
 | 
			
		||||
issues.closed_at=`于 <a id="%[1]s" href="#%[1]s">%[2]s</a> 关闭此工单`
 | 
			
		||||
@@ -1630,12 +1674,25 @@ issues.delete.title=是否删除工单?
 | 
			
		||||
issues.delete.text=您真的要删除这个工单吗?(该操作将会永久删除所有内容。如果您需要保留,请关闭它)
 | 
			
		||||
 | 
			
		||||
issues.tracker=时间跟踪
 | 
			
		||||
issues.timetracker_timer_start=启动计时器
 | 
			
		||||
issues.timetracker_timer_stop=停止计时器
 | 
			
		||||
issues.timetracker_timer_discard=删除计时器
 | 
			
		||||
issues.timetracker_timer_manually_add=添加时间
 | 
			
		||||
 | 
			
		||||
issues.time_estimate_set=设置预计时间
 | 
			
		||||
issues.time_estimate_display=预计: %s
 | 
			
		||||
issues.change_time_estimate_at=将预计时间修改为 <b>%s</b> %s
 | 
			
		||||
issues.remove_time_estimate_at=删除预计时间 %s
 | 
			
		||||
issues.time_estimate_invalid=预计时间格式无效
 | 
			
		||||
issues.start_tracking_history=`开始工作 %s`
 | 
			
		||||
issues.tracker_auto_close=当此工单关闭时,自动停止计时器
 | 
			
		||||
issues.tracking_already_started=`你已经开始对 <a href="%s">另一个工单</a> 进行时间跟踪!`
 | 
			
		||||
issues.stop_tracking_history=`停止工作 %s`
 | 
			
		||||
issues.cancel_tracking_history=`取消时间跟踪 %s`
 | 
			
		||||
issues.del_time=删除此时间跟踪日志
 | 
			
		||||
issues.add_time_history=`添加计时 %s`
 | 
			
		||||
issues.del_time_history=`已删除时间 %s`
 | 
			
		||||
issues.add_time_manually=手动添加时间
 | 
			
		||||
issues.add_time_hours=小时
 | 
			
		||||
issues.add_time_minutes=分钟
 | 
			
		||||
issues.add_time_sum_to_small=没有输入时间。
 | 
			
		||||
@@ -1695,6 +1752,7 @@ issues.dependency.add_error_dep_not_same_repo=这两个工单必须在同一仓
 | 
			
		||||
issues.review.self.approval=您不能批准您自己的合并请求。
 | 
			
		||||
issues.review.self.rejection=您不能请求对您自己的合并请求进行更改。
 | 
			
		||||
issues.review.approve=于 %s 批准此合并请求
 | 
			
		||||
issues.review.comment=评审于 %s
 | 
			
		||||
issues.review.dismissed=于 %[2]s 取消了 %[1]s 的评审
 | 
			
		||||
issues.review.dismissed_label=已取消
 | 
			
		||||
issues.review.left_comment=留下了一条评论
 | 
			
		||||
@@ -1720,6 +1778,10 @@ issues.review.resolve_conversation=已解决问题
 | 
			
		||||
issues.review.un_resolve_conversation=未解决问题
 | 
			
		||||
issues.review.resolved_by=标记问题为已解决
 | 
			
		||||
issues.review.commented=评论
 | 
			
		||||
issues.review.official=已批准
 | 
			
		||||
issues.review.requested=等待审核
 | 
			
		||||
issues.review.rejected=请求变更
 | 
			
		||||
issues.review.stale=批准后已更新
 | 
			
		||||
issues.review.unofficial=非官方审批数
 | 
			
		||||
issues.assignee.error=因为未知原因,并非所有的指派都成功。
 | 
			
		||||
issues.reference_issue.body=内容
 | 
			
		||||
@@ -1837,7 +1899,9 @@ pulls.unrelated_histories=合并失败:两个分支没有共同历史。提示
 | 
			
		||||
pulls.merge_out_of_date=合并失败:在生成合并时,主分支已更新。提示:再试一次。
 | 
			
		||||
pulls.head_out_of_date=合并失败:在生成合并时,head 已更新。提示:再试一次。
 | 
			
		||||
pulls.has_merged=失败:合并请求已经被合并,您不能再次合并或更改目标分支。
 | 
			
		||||
pulls.push_rejected=推送失败:推送被拒绝。审查此仓库的 Git 钩子。
 | 
			
		||||
pulls.push_rejected_summary=详细拒绝信息
 | 
			
		||||
pulls.push_rejected_no_message=推送失败:此推送被拒绝但未提供其他信息。请检查此仓库的 Git 钩子。
 | 
			
		||||
pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经存在相同的合并请求 (#%d)。`
 | 
			
		||||
pulls.status_checking=一些检测仍在等待运行
 | 
			
		||||
pulls.status_checks_success=所有检测均成功
 | 
			
		||||
@@ -1881,6 +1945,10 @@ pulls.delete.title=删除此合并请求?
 | 
			
		||||
pulls.delete.text=你真的要删除这个合并请求吗? (这将永久删除所有内容。如果你打算将内容存档,请考虑关闭它)
 | 
			
		||||
 | 
			
		||||
pulls.recently_pushed_new_branches=您已经于%[2]s推送了分支 <strong>%[1]s</strong>
 | 
			
		||||
pulls.upstream_diverging_prompt_behind_1=该分支落后于 %s %d 个提交
 | 
			
		||||
pulls.upstream_diverging_prompt_behind_n=该分支落后于 %s %d 个提交
 | 
			
		||||
pulls.upstream_diverging_prompt_base_newer=基础分支 %s 有新的更改
 | 
			
		||||
pulls.upstream_diverging_merge=同步派生
 | 
			
		||||
 | 
			
		||||
pull.deleted_branch=(已删除): %s
 | 
			
		||||
pull.agit_documentation=查看有关 AGit 的文档
 | 
			
		||||
@@ -1894,6 +1962,7 @@ milestones.no_due_date=暂无截止日期
 | 
			
		||||
milestones.open=开启
 | 
			
		||||
milestones.close=关闭
 | 
			
		||||
milestones.new_subheader=里程碑可以帮助您组织工单并跟踪其进度。
 | 
			
		||||
milestones.completeness=<strong>%d%%</strong> 已完成
 | 
			
		||||
milestones.create=创建里程碑
 | 
			
		||||
milestones.title=标题
 | 
			
		||||
milestones.desc=描述
 | 
			
		||||
@@ -2116,6 +2185,7 @@ settings.pulls.default_delete_branch_after_merge=默认合并后删除合并请
 | 
			
		||||
settings.pulls.default_allow_edits_from_maintainers=默认开启允许维护者编辑
 | 
			
		||||
settings.releases_desc=启用发布
 | 
			
		||||
settings.packages_desc=启用仓库软件包注册中心
 | 
			
		||||
settings.projects_desc=启用项目
 | 
			
		||||
settings.projects_mode_desc=项目模式 (要显示的项目类型)
 | 
			
		||||
settings.projects_mode_repo=仅仓库项目
 | 
			
		||||
settings.projects_mode_owner=仅限用户或组织项目
 | 
			
		||||
@@ -2155,6 +2225,7 @@ settings.transfer_in_progress=当前正在进行转让。 如果你想将此代
 | 
			
		||||
settings.transfer_notices_1=- 如果将此仓库转移给其他用户, 您将失去对此仓库的访问权限。
 | 
			
		||||
settings.transfer_notices_2=-如果将其转移到您 (共同) 拥有的组织,您可以继续访问该仓库。
 | 
			
		||||
settings.transfer_notices_3=- 如果仓库是私有的并且被转移给某个用户,那么此操作可以确保该用户至少具有读权限(以及必要时的更改权限)。
 | 
			
		||||
settings.transfer_notices_4=- 如果存储库属于某个组织,而您将其转移给另一个组织或个人,那么您将失去存储库工单与其组织项目系统之间的链接。
 | 
			
		||||
settings.transfer_owner=新拥有者
 | 
			
		||||
settings.transfer_perform=执行转让
 | 
			
		||||
settings.transfer_started=该代码库已被标记为转让并等待来自 %s 的确认
 | 
			
		||||
@@ -2291,6 +2362,7 @@ settings.event_pull_request_merge=合并请求合并
 | 
			
		||||
settings.event_package=软件包
 | 
			
		||||
settings.event_package_desc=软件包已在仓库中被创建或删除。
 | 
			
		||||
settings.branch_filter=分支过滤
 | 
			
		||||
settings.branch_filter_desc=推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 <code>*</code>,则将报告所有分支的事件。语法文档见 <a href="%[1]s">%[2]s</a>。示例:<code>master</code>,<code>{master,release*}</code>。
 | 
			
		||||
settings.authorization_header=授权标头
 | 
			
		||||
settings.authorization_header_desc=当存在时将被作为授权标头包含在内。例如: %s。
 | 
			
		||||
settings.active=激活
 | 
			
		||||
@@ -2336,25 +2408,53 @@ settings.deploy_key_deletion=删除部署密钥
 | 
			
		||||
settings.deploy_key_deletion_desc=删除部署密钥将取消此密钥对此仓库的访问权限。继续?
 | 
			
		||||
settings.deploy_key_deletion_success=部署密钥已删除。
 | 
			
		||||
settings.branches=分支
 | 
			
		||||
settings.protected_branch=分支保护
 | 
			
		||||
settings.protected_branch.save_rule=保存规则
 | 
			
		||||
settings.protected_branch.delete_rule=删除规则
 | 
			
		||||
settings.protected_branch_can_push=是否允许推送?
 | 
			
		||||
settings.protected_branch_can_push_yes=你可以推
 | 
			
		||||
settings.protected_branch_can_push_no=你不能推送
 | 
			
		||||
settings.branch_protection=分支 '<b>%s</b>' 的保护规则
 | 
			
		||||
settings.protect_this_branch=启用分支保护
 | 
			
		||||
settings.protect_this_branch_desc=阻止删除并限制Git推送和合并到分支。
 | 
			
		||||
settings.protect_disable_push=禁用推送
 | 
			
		||||
settings.protect_disable_push_desc=此分支不允许推送。
 | 
			
		||||
settings.protect_disable_force_push=禁用强制推送
 | 
			
		||||
settings.protect_disable_force_push_desc=此分支禁止强制推送。
 | 
			
		||||
settings.protect_enable_push=启用推送
 | 
			
		||||
settings.protect_enable_push_desc=任何拥有写访问权限的人将被允许推送到此分支(但不能强行推送)。
 | 
			
		||||
settings.protect_enable_force_push_all=启用强制推送
 | 
			
		||||
settings.protect_enable_force_push_all_desc=任何拥有推送权限的人都可以对这个分支进行强制推送。
 | 
			
		||||
settings.protect_enable_force_push_allowlist=强制推送白名单
 | 
			
		||||
settings.protect_enable_force_push_allowlist_desc=只有白名单中的用户或团队才能强制推送到这个分支。
 | 
			
		||||
settings.protect_enable_merge=启用合并
 | 
			
		||||
settings.protect_enable_merge_desc=任何具有写入权限的人都可以将合并请求合并到此分支中。
 | 
			
		||||
settings.protect_whitelist_committers=受白名单限制的推送
 | 
			
		||||
settings.protect_whitelist_committers_desc=只有列入白名单的用户或团队才能被允许推送到此分支(但不能强行推送)。
 | 
			
		||||
settings.protect_whitelist_deploy_keys=具有推送权限的部署密钥白名单。
 | 
			
		||||
settings.protect_whitelist_users=推送白名单用户:
 | 
			
		||||
settings.protect_whitelist_teams=推送白名单团队:
 | 
			
		||||
settings.protect_force_push_allowlist_users=允许强制推送的白名单用户:
 | 
			
		||||
settings.protect_force_push_allowlist_teams=允许强制推送的白名单团队:
 | 
			
		||||
settings.protect_force_push_allowlist_deploy_keys=允许白名单中的部署密钥进行强制推送。
 | 
			
		||||
settings.protect_merge_whitelist_committers=启用合并白名单
 | 
			
		||||
settings.protect_merge_whitelist_committers_desc=仅允许白名单用户或团队合并合并请求到此分支。
 | 
			
		||||
settings.protect_merge_whitelist_users=合并白名单用户:
 | 
			
		||||
settings.protect_merge_whitelist_teams=合并白名单团队:
 | 
			
		||||
settings.protect_check_status_contexts=启用状态检查
 | 
			
		||||
settings.protect_status_check_patterns=状态检查模式:
 | 
			
		||||
settings.protect_status_check_patterns_desc=输入模式,指定哪些状态检查必须通过,才能将分支合并到符合此规则的分支中去。每一行指定一个模式,模式不能为空。
 | 
			
		||||
settings.protect_check_status_contexts_desc=要求状态检查通过才能合并。如果启用,提交必须先推送到另一个分支,然后再合并或推送到匹配这些保护规则的分支。如果没有选择具体的状态检查上下文,则所有的状态检查都通过才能合并。
 | 
			
		||||
settings.protect_check_status_contexts_list=此仓库上周进行过的状态检查
 | 
			
		||||
settings.protect_status_check_matched=匹配
 | 
			
		||||
settings.protect_invalid_status_check_pattern=无效的状态检查规则:“%s”。
 | 
			
		||||
settings.protect_no_valid_status_check_patterns=没有有效的状态检查规则。
 | 
			
		||||
settings.protect_required_approvals=所需的批准:
 | 
			
		||||
settings.protect_required_approvals_desc=只允许合并有足够审核的合并请求。要求的审核必须来自白名单或者有权限的用户或团队。
 | 
			
		||||
settings.protect_approvals_whitelist_enabled=仅列入白名单的用户或团队才可批准
 | 
			
		||||
settings.protect_approvals_whitelist_enabled_desc=只有白名单用户或团队的审核才能计数。 如果规则没有批准白名单,来自任何有写访问权限的人的审核都将计数。
 | 
			
		||||
settings.protect_approvals_whitelist_users=审查者白名单:
 | 
			
		||||
settings.protect_approvals_whitelist_teams=审查团队白名单:
 | 
			
		||||
settings.dismiss_stale_approvals=取消过时的批准
 | 
			
		||||
settings.dismiss_stale_approvals_desc=当新的提交更改合并请求内容被推送到分支时,旧的批准将被撤销。
 | 
			
		||||
settings.ignore_stale_approvals=忽略过期批准
 | 
			
		||||
@@ -2362,12 +2462,18 @@ settings.ignore_stale_approvals_desc=对旧提交(过期审核)的批准将
 | 
			
		||||
settings.require_signed_commits=需要签名提交
 | 
			
		||||
settings.require_signed_commits_desc=拒绝推送未签名或无法验证的提交到分支
 | 
			
		||||
settings.protect_branch_name_pattern=受保护的分支名称模式
 | 
			
		||||
settings.protect_branch_name_pattern_desc=分支保护的名称匹配规则。语法请参阅 <a href="%s">文档</a> 。如:main, release/**
 | 
			
		||||
settings.protect_patterns=规则
 | 
			
		||||
settings.protect_protected_file_patterns=受保护的文件模式(使用分号 ';' 分隔):
 | 
			
		||||
settings.protect_protected_file_patterns_desc=即使用户有权添加、编辑或删除此分支中的文件,也不允许直接更改受保护的文件。 可以使用分号 (';') 分隔多个模式。 见<a href='%[1]s'>%[2]s</a>文档了解模式语法。例如: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
 | 
			
		||||
settings.protect_unprotected_file_patterns=不受保护的文件模式(使用分号 ';' 分隔):
 | 
			
		||||
settings.protect_unprotected_file_patterns_desc=如果用户有写权限,则允许直接更改的不受保护的文件,以绕过推送限制。可以使用分号分隔多个模式 (';')。 见 <a href='%[1]s'>%[2]s</a> 文档了解模式语法。例如: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
 | 
			
		||||
settings.add_protected_branch=启用保护
 | 
			
		||||
settings.delete_protected_branch=禁用保护
 | 
			
		||||
settings.update_protect_branch_success=分支保护规则 %s 更新成功。
 | 
			
		||||
settings.remove_protected_branch_success=移除分支保护规则"%s"成功。
 | 
			
		||||
settings.remove_protected_branch_failed=移除分支保护规则"%s"失败。
 | 
			
		||||
settings.protected_branch_deletion=删除分支保护
 | 
			
		||||
settings.protected_branch_deletion_desc=禁用分支保护允许具有写入权限的用户推送提交到此分支。继续?
 | 
			
		||||
settings.block_rejected_reviews=拒绝审核阻止了此合并
 | 
			
		||||
settings.block_rejected_reviews_desc=如果官方审查人员要求作出改动,即使有足够的批准,合并也不允许。
 | 
			
		||||
@@ -2375,8 +2481,11 @@ settings.block_on_official_review_requests=有官方审核阻止了代码合并
 | 
			
		||||
settings.block_on_official_review_requests_desc=处于评审状态时,即使有足够的批准,也不能合并。
 | 
			
		||||
settings.block_outdated_branch=如果合并请求已经过时,阻止合并
 | 
			
		||||
settings.block_outdated_branch_desc=当头部分支落后基础分支时,不能合并。
 | 
			
		||||
settings.block_admin_merge_override=管理员须遵守分支保护规则
 | 
			
		||||
settings.block_admin_merge_override_desc=管理员须遵守分支保护规则,不能规避该规则。
 | 
			
		||||
settings.default_branch_desc=请选择一个默认的分支用于合并请求和提交:
 | 
			
		||||
settings.merge_style_desc=合并方式
 | 
			
		||||
settings.default_merge_style_desc=默认合并风格
 | 
			
		||||
settings.choose_branch=选择一个分支...
 | 
			
		||||
settings.no_protected_branch=没有受保护的分支
 | 
			
		||||
settings.edit_protected_branch=编辑
 | 
			
		||||
@@ -2392,12 +2501,25 @@ settings.tags.protection.allowed.teams=允许的团队
 | 
			
		||||
settings.tags.protection.allowed.noone=无
 | 
			
		||||
settings.tags.protection.create=保护Git标签
 | 
			
		||||
settings.tags.protection.none=没有受保护的Git标签
 | 
			
		||||
settings.tags.protection.pattern.description=你可以使用单个名称或 glob 模式匹配或正则表达式来匹配多个标签。了解详情请访问 <a target="_blank" rel="noopener" href="%s">保护Git标签指南</a>。
 | 
			
		||||
settings.bot_token=Bot 令牌
 | 
			
		||||
settings.chat_id=聊天 ID
 | 
			
		||||
settings.thread_id=线程 ID
 | 
			
		||||
settings.matrix.homeserver_url=主服务器网址
 | 
			
		||||
settings.matrix.room_id=房间ID
 | 
			
		||||
settings.matrix.message_type=消息类型
 | 
			
		||||
settings.visibility.private.button=设为私有
 | 
			
		||||
settings.visibility.private.text=将可见性更改为私有不仅会使仓库仅对允许的成员可见,而且可能会消除它与派生仓库、关注者和点赞之间的关系。
 | 
			
		||||
settings.visibility.private.bullet_title=<strong>将可见性改为私有将会:</strong>
 | 
			
		||||
settings.visibility.private.bullet_one=使仓库只对允许的成员可见。
 | 
			
		||||
settings.visibility.private.bullet_two=可能会删除它与 <strong>派生仓库</strong>、 <strong>关注者</strong>和 <strong>点赞</strong> 之间的关系。
 | 
			
		||||
settings.visibility.public.button=设为公开
 | 
			
		||||
settings.visibility.public.text=将可见性更改为公开会使任何人都可见。
 | 
			
		||||
settings.visibility.public.bullet_title=<strong>将可见性改为公开将会:</strong>
 | 
			
		||||
settings.visibility.public.bullet_one=使仓库让任何人都可见。
 | 
			
		||||
settings.visibility.success=仓库可见性已更改。
 | 
			
		||||
settings.visibility.error=试图更改仓库可见性时出错。
 | 
			
		||||
settings.visibility.fork_error=无法更改派生仓库的可见性。
 | 
			
		||||
settings.archive.button=归档仓库
 | 
			
		||||
settings.archive.header=归档此仓库
 | 
			
		||||
settings.archive.text=归档仓库将使其完全只读。它将在首页隐藏。没有人(甚至你!)能够进行新的提交,或打开工单及合并请求。
 | 
			
		||||
@@ -2509,6 +2631,7 @@ release.new_release=发布新版
 | 
			
		||||
release.draft=草稿
 | 
			
		||||
release.prerelease=预发行
 | 
			
		||||
release.stable=稳定
 | 
			
		||||
release.latest=最新版本
 | 
			
		||||
release.compare=比较
 | 
			
		||||
release.edit=编辑
 | 
			
		||||
release.ahead.commits=<strong>%d</strong> 次提交
 | 
			
		||||
@@ -2593,6 +2716,7 @@ tag.create_success=标签"%s"已存在
 | 
			
		||||
 | 
			
		||||
topic.manage_topics=管理主题
 | 
			
		||||
topic.done=保存
 | 
			
		||||
topic.count_prompt=您最多选择25个主题
 | 
			
		||||
topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 ('-') 和句点 ('.'),长度不得超过35个字符。字符必须为小写。
 | 
			
		||||
 | 
			
		||||
find_file.go_to_file=转到文件
 | 
			
		||||
@@ -2665,6 +2789,7 @@ settings.delete_prompt=删除操作会永久清除该组织的信息,并且 <s
 | 
			
		||||
settings.confirm_delete_account=确认删除组织
 | 
			
		||||
settings.delete_org_title=删除组织
 | 
			
		||||
settings.delete_org_desc=此组织将会被永久删除,确认继续吗?
 | 
			
		||||
settings.hooks_desc=在此处添加的 Web 钩子将会应用到该组织下的 <strong>所有仓库</strong>。
 | 
			
		||||
 | 
			
		||||
settings.labels_desc=添加能够被该组织下的 <strong>所有仓库</strong> 的工单使用的标签。
 | 
			
		||||
 | 
			
		||||
@@ -2689,6 +2814,7 @@ teams.leave.detail=离开 %s?
 | 
			
		||||
teams.can_create_org_repo=创建仓库
 | 
			
		||||
teams.can_create_org_repo_helper=成员可以在组织中创建仓库。创建者将自动获得创建的仓库的管理员权限。
 | 
			
		||||
teams.none_access=无访问权限
 | 
			
		||||
teams.none_access_helper=成员无法查看此单元或对其执行任何其他操作。对公开仓库无此影响。
 | 
			
		||||
teams.general_access=常规访问
 | 
			
		||||
teams.general_access_helper=成员权限将由以下权限表决定。
 | 
			
		||||
teams.read_access=可读
 | 
			
		||||
@@ -2757,6 +2883,7 @@ last_page=末页
 | 
			
		||||
total=总计:%d
 | 
			
		||||
settings=管理设置
 | 
			
		||||
 | 
			
		||||
dashboard.new_version_hint=Gitea %s 现已可用,您正在运行 %s。查看 <a target="_blank" rel="noreferrer" href="%s">博客</a> 了解详情。
 | 
			
		||||
dashboard.statistic=摘要
 | 
			
		||||
dashboard.maintenance_operations=运维
 | 
			
		||||
dashboard.system_status=系统状态
 | 
			
		||||
@@ -2799,6 +2926,7 @@ dashboard.reinit_missing_repos=重新初始化所有丢失的 Git 仓库存在
 | 
			
		||||
dashboard.sync_external_users=同步外部用户数据
 | 
			
		||||
dashboard.cleanup_hook_task_table=清理 hook_task 表
 | 
			
		||||
dashboard.cleanup_packages=清理过期的软件包
 | 
			
		||||
dashboard.cleanup_actions=清理过期的 Actions 资源
 | 
			
		||||
dashboard.server_uptime=服务运行时间
 | 
			
		||||
dashboard.current_goroutine=当前 Goroutines 数量
 | 
			
		||||
dashboard.current_memory_usage=当前内存使用量
 | 
			
		||||
@@ -2828,12 +2956,19 @@ dashboard.total_gc_time=GC 暂停时间总量
 | 
			
		||||
dashboard.total_gc_pause=GC 暂停时间总量
 | 
			
		||||
dashboard.last_gc_pause=上次 GC 暂停时间
 | 
			
		||||
dashboard.gc_times=GC 执行次数
 | 
			
		||||
dashboard.delete_old_actions=从数据库中删除所有旧操作记录
 | 
			
		||||
dashboard.delete_old_actions.started=已开始从数据库中删除所有旧操作记录。
 | 
			
		||||
dashboard.update_checker=更新检查器
 | 
			
		||||
dashboard.delete_old_system_notices=从数据库中删除所有旧系统通知
 | 
			
		||||
dashboard.gc_lfs=垃圾回收 LFS 元数据
 | 
			
		||||
dashboard.stop_zombie_tasks=停止僵尸任务
 | 
			
		||||
dashboard.stop_endless_tasks=停止无法停止的任务
 | 
			
		||||
dashboard.cancel_abandoned_jobs=取消丢弃的任务
 | 
			
		||||
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=创建新帐户
 | 
			
		||||
@@ -2905,6 +3040,10 @@ emails.not_updated=无法更新请求的电子邮件地址: %v
 | 
			
		||||
emails.duplicate_active=此电子邮件地址已被另一个用户激活使用。
 | 
			
		||||
emails.change_email_header=更新电子邮件属性
 | 
			
		||||
emails.change_email_text=您确定要更新该电子邮件地址吗?
 | 
			
		||||
emails.delete=删除电子邮件
 | 
			
		||||
emails.delete_desc=您确定要删除该电子邮件地址?
 | 
			
		||||
emails.deletion_success=电子邮件地址已被删除。
 | 
			
		||||
emails.delete_primary_email_error=您不能删除主电子邮件。
 | 
			
		||||
 | 
			
		||||
orgs.org_manage_panel=组织管理
 | 
			
		||||
orgs.name=名称
 | 
			
		||||
@@ -2937,10 +3076,12 @@ packages.size=大小
 | 
			
		||||
packages.published=已发布
 | 
			
		||||
 | 
			
		||||
defaulthooks=默认Web钩子
 | 
			
		||||
defaulthooks.desc=当某些 Gitea 事件触发时,Web 钩子自动向服务器发出 HTTP POST 请求。这里定义的 Web 钩子是默认配置,将被复制到所有新的仓库中。详情请访问 <a target="_blank" rel="noopener" href="%s">Web 钩子指南</a>。
 | 
			
		||||
defaulthooks.add_webhook=添加默认Web 钩子
 | 
			
		||||
defaulthooks.update_webhook=更新默认 Web 钩子
 | 
			
		||||
 | 
			
		||||
systemhooks=系统 Web 钩子
 | 
			
		||||
systemhooks.desc=当某些 Gitea 事件触发时,Web 钩子自动向服务器发出HTTP POST请求。这里定义的 Web 钩子将作用于系统上的所有仓库,所以请考虑这可能带来的任何性能影响。了解详情请访问 <a target="_blank" rel="noopener" href="%s">Web 钩子指南</a>。
 | 
			
		||||
systemhooks.add_webhook=添加系统 Web 钩子
 | 
			
		||||
systemhooks.update_webhook=更新系统 Web 钩子
 | 
			
		||||
 | 
			
		||||
@@ -3035,8 +3176,18 @@ auths.tips=帮助提示
 | 
			
		||||
auths.tips.oauth2.general=OAuth2 认证
 | 
			
		||||
auths.tips.oauth2.general.tip=当注册新的 OAuth2 身份验证时,回调/重定向 URL 应该是:
 | 
			
		||||
auths.tip.oauth2_provider=OAuth2 提供程序
 | 
			
		||||
auths.tip.bitbucket=在 %s 注册新的 OAuth 使用者同时添加权限“账号”-“读取”
 | 
			
		||||
auths.tip.nextcloud=使用下面的菜单“设置(Settings) -> 安全(Security) -> OAuth 2.0 client”在您的实例上注册一个新的 OAuth 客户端。
 | 
			
		||||
auths.tip.dropbox=在 %s 上创建一个新的应用程序
 | 
			
		||||
auths.tip.facebook=`在 %s 注册一个新的应用,并添加产品"Facebook 登录"`
 | 
			
		||||
auths.tip.github=在 %s 注册一个 OAuth 应用程序
 | 
			
		||||
auths.tip.gitlab_new=在 %s 注册一个新的应用
 | 
			
		||||
auths.tip.google_plus=从谷歌 API 控制台 %s 获得 OAuth2 客户端凭据
 | 
			
		||||
auths.tip.openid_connect=使用 OpenID 连接发现 URL ({server}/.well-known/openid-configuration) 来指定终点
 | 
			
		||||
auths.tip.twitter=访问 %s,创建应用并确保启用了"允许此应用程序用于登录 Twitter"的选项。
 | 
			
		||||
auths.tip.discord=在 %s 上注册新应用程序
 | 
			
		||||
auths.tip.gitea=注册一个新的 OAuth2 应用程序。可以访问 %s 查看帮助
 | 
			
		||||
auths.tip.yandex=在 %s 上创建一个新的应用程序。在“ Yandex.Passport API”这部分中选择以下权限:“访问电子邮件地址(Access to email address)”,“访问用户头像(Access to user avatar)”和“访问用户名,名字和姓氏,性别(Access to username, first name and surname, genderAccess to username, first name and surname, gender)”
 | 
			
		||||
auths.tip.mastodon=输入您想要认证的 mastodon 实例的自定义 URL (或使用默认值)
 | 
			
		||||
auths.edit=修改认证源
 | 
			
		||||
auths.activated=该认证源已经启用
 | 
			
		||||
@@ -3153,6 +3304,9 @@ config.cache_interval=Cache 周期
 | 
			
		||||
config.cache_conn=Cache 连接字符串
 | 
			
		||||
config.cache_item_ttl=缓存项目 TTL
 | 
			
		||||
config.cache_test=测试缓存
 | 
			
		||||
config.cache_test_failed=缓存测试失败: %v。
 | 
			
		||||
config.cache_test_slow=缓存测试成功,但响应缓慢: %s。
 | 
			
		||||
config.cache_test_succeeded=缓存测试成功,在 %s 时间内得到响应。
 | 
			
		||||
 | 
			
		||||
config.session_config=Session 配置
 | 
			
		||||
config.session_provider=Session 提供者
 | 
			
		||||
@@ -3199,6 +3353,7 @@ monitor.next=下次执行时间
 | 
			
		||||
monitor.previous=上次执行时间
 | 
			
		||||
monitor.execute_times=执行次数
 | 
			
		||||
monitor.process=运行中进程
 | 
			
		||||
monitor.stacktrace=调用栈踪迹
 | 
			
		||||
monitor.processes_count=%d 个进程
 | 
			
		||||
monitor.download_diagnosis_report=下载诊断报告
 | 
			
		||||
monitor.desc=进程描述
 | 
			
		||||
@@ -3206,6 +3361,8 @@ monitor.start=开始时间
 | 
			
		||||
monitor.execute_time=执行时长
 | 
			
		||||
monitor.last_execution_result=结果
 | 
			
		||||
monitor.process.cancel=中止进程
 | 
			
		||||
monitor.process.cancel_desc=中止一个进程可能导致数据丢失
 | 
			
		||||
monitor.process.cancel_notices=中止:<strong>%s</strong> ?
 | 
			
		||||
monitor.process.children=子进程
 | 
			
		||||
 | 
			
		||||
monitor.queues=队列
 | 
			
		||||
@@ -3307,6 +3464,8 @@ raw_minutes=分钟
 | 
			
		||||
 | 
			
		||||
[dropzone]
 | 
			
		||||
default_message=拖动文件或者点击此处上传。
 | 
			
		||||
invalid_input_type=您不能上传该类型的文件
 | 
			
		||||
file_too_big=文件体积({{filesize}} MB)超过了最大允许体积({{maxFilesize}} MB)
 | 
			
		||||
remove_file=移除文件
 | 
			
		||||
 | 
			
		||||
[notification]
 | 
			
		||||
@@ -3378,6 +3537,8 @@ alpine.repository=仓库信息
 | 
			
		||||
alpine.repository.branches=分支
 | 
			
		||||
alpine.repository.repositories=仓库管理
 | 
			
		||||
alpine.repository.architectures=架构
 | 
			
		||||
arch.registry=添加具有相关仓库和架构的服务器到 <code>/etc/pacman.conf</code> 中:
 | 
			
		||||
arch.install=使用 pacman 同步软件包:
 | 
			
		||||
arch.repository=仓库信息
 | 
			
		||||
arch.repository.repositories=仓库管理
 | 
			
		||||
arch.repository.architectures=架构
 | 
			
		||||
@@ -3456,6 +3617,7 @@ settings.link=将此软件包链接到仓库
 | 
			
		||||
settings.link.description=如果您将一个软件包与一个代码库链接起来,软件包将显示在代码库的软件包列表中。
 | 
			
		||||
settings.link.select=选择仓库
 | 
			
		||||
settings.link.button=更新仓库链接
 | 
			
		||||
settings.link.success=仓库链接已成功更新。
 | 
			
		||||
settings.link.error=更新仓库链接失败。
 | 
			
		||||
settings.delete=删除软件包
 | 
			
		||||
settings.delete.description=删除软件包是永久性的,无法撤消。
 | 
			
		||||
@@ -3579,12 +3741,18 @@ runs.no_workflows.quick_start=不知道如何使用 Gitea Actions吗?请查看
 | 
			
		||||
runs.no_workflows.documentation=关于Gitea Actions的更多信息,请参阅 <a target="_blank" rel="noopener noreferrer" href="%s">文档</a>。
 | 
			
		||||
runs.no_runs=工作流尚未运行过。
 | 
			
		||||
runs.empty_commit_message=(空白的提交消息)
 | 
			
		||||
runs.expire_log_message=旧的日志已被清除
 | 
			
		||||
 | 
			
		||||
workflow.disable=禁用工作流
 | 
			
		||||
workflow.disable_success=工作流 '%s' 已成功禁用。
 | 
			
		||||
workflow.enable=启用工作流
 | 
			
		||||
workflow.enable_success=工作流 '%s' 已成功启用。
 | 
			
		||||
workflow.disabled=工作流已禁用。
 | 
			
		||||
workflow.run=运行工作流
 | 
			
		||||
workflow.not_found=工作流 %s 未找到。
 | 
			
		||||
workflow.run_success=工作流 %s 已成功运行。
 | 
			
		||||
workflow.from_ref=使用工作流从
 | 
			
		||||
workflow.has_workflow_dispatch=此 Workflow 有一个 Workflow_dispatch 事件触发器。
 | 
			
		||||
 | 
			
		||||
need_approval_desc=该工作流由派生仓库的合并请求所触发,需要批准方可运行。
 | 
			
		||||
 | 
			
		||||
@@ -3605,6 +3773,7 @@ variables.update.failed=编辑变量失败。
 | 
			
		||||
variables.update.success=该变量已被编辑。
 | 
			
		||||
 | 
			
		||||
[projects]
 | 
			
		||||
deleted.display_name=已删除项目
 | 
			
		||||
type-1.display_name=个人项目
 | 
			
		||||
type-2.display_name=仓库项目
 | 
			
		||||
type-3.display_name=组织项目
 | 
			
		||||
 
 | 
			
		||||
@@ -205,8 +205,11 @@ func ViewPost(ctx *context_module.Context) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// TODO: "ComposeMetas" (usually for comment) is not quite right, but it is still the same as what template "RenderCommitMessage" does.
 | 
			
		||||
	// need to be refactored together in the future
 | 
			
		||||
	metas := ctx.Repo.Repository.ComposeMetas(ctx)
 | 
			
		||||
 | 
			
		||||
	// the title for the "run" is from the commit message
 | 
			
		||||
	resp.State.Run.Title = run.Title
 | 
			
		||||
	resp.State.Run.TitleHTML = templates.NewRenderUtils(ctx).RenderCommitMessage(run.Title, metas)
 | 
			
		||||
	resp.State.Run.Link = run.Link()
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/models/auth"
 | 
			
		||||
	user_model "code.gitea.io/gitea/models/user"
 | 
			
		||||
	auth_module "code.gitea.io/gitea/modules/auth"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/optional"
 | 
			
		||||
	asymkey_service "code.gitea.io/gitea/services/asymkey"
 | 
			
		||||
	source_service "code.gitea.io/gitea/services/auth/source"
 | 
			
		||||
@@ -31,7 +32,12 @@ func (source *Source) Authenticate(ctx context.Context, user *user_model.User, u
 | 
			
		||||
		return nil, user_model.ErrUserNotExist{Name: loginName}
 | 
			
		||||
	}
 | 
			
		||||
	// Fallback.
 | 
			
		||||
	// FIXME: this fallback would cause problems when the "Username" attribute is not set and a user inputs their email.
 | 
			
		||||
	// In this case, the email would be used as the username, and will cause the "CreateUser" failure for the first login.
 | 
			
		||||
	if sr.Username == "" {
 | 
			
		||||
		if strings.Contains(userName, "@") {
 | 
			
		||||
			log.Error("No username in search result (Username Attribute is not set properly?), using email as username might cause problems")
 | 
			
		||||
		}
 | 
			
		||||
		sr.Username = userName
 | 
			
		||||
	}
 | 
			
		||||
	if sr.Mail == "" {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,9 +36,10 @@
 | 
			
		||||
				</thead>
 | 
			
		||||
				<tbody>
 | 
			
		||||
					{{range .PackageDescriptor.Metadata.Manifests}}
 | 
			
		||||
						{{/* "unknown/unknown" is attestation-manifest, so we should skip it */}}
 | 
			
		||||
						{{if ne .Platform "unknown/unknown"}}
 | 
			
		||||
						<tr>
 | 
			
		||||
							<td><a href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
 | 
			
		||||
							<td><a class="tw-font-mono" href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
 | 
			
		||||
							<td>{{.Platform}}</td>
 | 
			
		||||
							<td>{{FileSize .Size}}</td>
 | 
			
		||||
						</tr>
 | 
			
		||||
 
 | 
			
		||||
@@ -68,11 +68,13 @@
 | 
			
		||||
											<p id="cherry-pick-content" class="branch-dropdown"></p>
 | 
			
		||||
 | 
			
		||||
											<form method="get">
 | 
			
		||||
												{{/*FIXME: CurrentRefShortName seems not making sense here (old code),
 | 
			
		||||
												because the "commit page" has no "$.BranchName" info, so only using DefaultBranch should be enough */}}
 | 
			
		||||
												{{template "repo/branch_dropdown" dict
 | 
			
		||||
													"Repository" .Repository
 | 
			
		||||
													"ShowTabBranches" true
 | 
			
		||||
													"CurrentRefType" "branch"
 | 
			
		||||
													"CurrentRefShortName" (Iif $.BranchName $.Repository.DefaultBranch)
 | 
			
		||||
													"CurrentRefShortName" (or $.BranchName $.Repository.DefaultBranch)
 | 
			
		||||
													"RefFormActionTemplate" (print "{RepoLink}/_cherrypick/" .CommitID "/{RefShortName}")
 | 
			
		||||
												}}
 | 
			
		||||
												<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br>
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,9 @@
 | 
			
		||||
		<div class="divider"></div>
 | 
			
		||||
		<a class="item label-filter-query-default" href="{{QueryBuild $queryLink "labels" NIL}}">{{ctx.Locale.Tr "repo.issues.filter_label_no_select"}}</a>
 | 
			
		||||
		<a class="item label-filter-query-not-set" href="{{QueryBuild $queryLink "labels" 0}}">{{ctx.Locale.Tr "repo.issues.filter_label_select_no_label"}}</a>
 | 
			
		||||
		{{/* The logic here is not the same as the label selector in the issue sidebar.
 | 
			
		||||
		The one in the issue sidebar renders "repo labels | divider | org labels".
 | 
			
		||||
		Maybe the logic should be updated to be consistent.*/}}
 | 
			
		||||
		{{$previousExclusiveScope := "_no_scope"}}
 | 
			
		||||
		{{range .Labels}}
 | 
			
		||||
			{{$exclusiveScope := .ExclusiveScope}}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@
 | 
			
		||||
			</div>
 | 
			
		||||
		</form>
 | 
			
		||||
		{{end}}{{/*if .EnablePasswordSignInForm*/}}
 | 
			
		||||
		{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
 | 
			
		||||
		{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
 | 
			
		||||
		{{if and $showOAuth2Methods .EnablePasswordSignInForm}}
 | 
			
		||||
			<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,8 @@
 | 
			
		||||
					</button>
 | 
			
		||||
				</div>
 | 
			
		||||
			{{end}}
 | 
			
		||||
			{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
 | 
			
		||||
			{{/* TODO: it seems that "EnableSSPI" is only set in "sign-in" handlers, but it should use the same logic to control its display */}}
 | 
			
		||||
			{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
 | 
			
		||||
			{{if $showOAuth2Methods}}
 | 
			
		||||
				<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,7 @@
 | 
			
		||||
							{{template "repo/issue/filter_item_label" dict "Labels" .Labels "QueryLink" $queryLinkWithFilter "SupportArchivedLabel" true}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
 | 
			
		||||
						{{/* at the moment there is no easy way to get poster candidates on this page, so only show a username input, search for what the end user enters */}}
 | 
			
		||||
						{{if ne $.ViewType "created_by"}}
 | 
			
		||||
							{{template "repo/issue/filter_item_user_fetch" dict
 | 
			
		||||
								"QueryParamKey" "poster"
 | 
			
		||||
@@ -70,6 +71,7 @@
 | 
			
		||||
							}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
 | 
			
		||||
						{{/* at the moment there is no easy way to get assignee candidates on this page, so only show a username input, search for what the end user enters */}}
 | 
			
		||||
						{{if ne $.ViewType "assigned"}}
 | 
			
		||||
							{{template "repo/issue/filter_item_user_fetch" dict
 | 
			
		||||
								"QueryParamKey" "assignee"
 | 
			
		||||
 
 | 
			
		||||
@@ -113,6 +113,16 @@ const sfc = {
 | 
			
		||||
      if (this.menuVisible) this.menuVisible = false;
 | 
			
		||||
    });
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  mounted() {
 | 
			
		||||
    if (this.refFormActionTemplate) {
 | 
			
		||||
      // if the selector is used in a form and needs to change the form action,
 | 
			
		||||
      // make a mock item and select it to update the form action
 | 
			
		||||
      const item: ListItem = {selected: true, refType: this.currentRefType, refShortName: this.currentRefShortName, rssFeedLink: ''};
 | 
			
		||||
      this.selectItem(item);
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    selectItem(item: ListItem) {
 | 
			
		||||
      this.menuVisible = false;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user