2014-07-26 12:24:27 +08:00
home = Home
dashboard = Dashboard
explore = Explore
help = Help
2022-06-05 17:41:51 +08:00
logo = Logo
2014-07-26 12:24:27 +08:00
sign_in = Sign In
2023-06-09 00:35:29 +08:00
sign_in_with_provider = Sign in with %s
sign_in_or = or
2014-07-26 12:24:27 +08:00
sign_out = Sign Out
2018-04-19 22:24:31 +08:00
sign_up = Register
2017-02-22 15:14:37 +08:00
link_account = Link Account
2014-07-26 12:24:27 +08:00
register = Register
version = Version
2020-01-05 04:27:19 +08:00
powered_by = Powered by %s
2014-07-26 12:24:27 +08:00
page = Page
template = Template
language = Language
2016-12-31 02:49:54 +08:00
notifications = Notifications
2021-01-21 22:51:52 +08:00
active_stopwatch = Active Time Tracker
2023-10-19 22:08:31 +08:00
tracked_time_summary = Summary of tracked time based on filters of issue list
2018-02-16 22:02:40 +08:00
create_new = Create…
2018-04-19 22:24:31 +08:00
user_profile_and_more = Profile and Settings…
2015-08-10 22:59:12 +08:00
signed_in_as = Signed in as
2023-03-24 18:35:52 +08:00
enable_javascript = This website requires JavaScript.
2020-04-24 21:22:36 +08:00
toc = Table of Contents
2020-06-12 19:26:37 +08:00
licenses = Licenses
2020-08-27 00:39:45 +08:00
return_to_gitea = Return to Gitea
2024-03-15 10:05:31 +08:00
more_items = More items
2014-07-26 12:24:27 +08:00
username = Username
2018-04-19 22:24:31 +08:00
email = Email Address
2014-07-26 12:24:27 +08:00
password = Password
2020-08-28 09:36:37 +08:00
access_token = Access Token
2023-08-08 23:25:05 +08:00
re_type = Confirm Password
2018-04-19 22:24:31 +08:00
captcha = CAPTCHA
twofa = Two-Factor Authentication
twofa_scratch = Two-Factor Scratch Code
2017-01-16 10:14:29 +08:00
passcode = Passcode
2014-07-26 12:24:27 +08:00
2022-01-14 23:03:31 +08:00
webauthn_insert_key = Insert your security key
webauthn_sign_in = Press the button on your security key. If your security key has no button, re-insert it.
webauthn_press_button = Please press the button on your security key…
webauthn_use_twofa = Use a two-factor code from your phone
webauthn_error = Could not read your security key.
webauthn_unsupported_browser = Your browser does not currently support WebAuthn.
webauthn_error_unknown = An unknown error occurred. Please retry.
webauthn_error_insecure = WebAuthn only supports secure connections. For testing over HTTP, you can use the origin "localhost" or "127.0.0.1"
webauthn_error_unable_to_process = The server could not process your request.
webauthn_error_duplicated = The security key is not permitted for this request. Please make sure that the key is not already registered.
webauthn_error_empty = You must set a name for this key.
webauthn_error_timeout = Timeout reached before your key could be read. Please reload this page and retry.
webauthn_reload = Reload
2018-05-19 22:12:37 +08:00
2014-07-26 12:24:27 +08:00
repository = Repository
organization = Organization
mirror = Mirror
new_repo = New Repository
new_migrate = New Migration
2015-12-10 00:24:56 +08:00
new_mirror = New Mirror
2017-03-09 21:24:57 +08:00
new_fork = New Repository Fork
2014-07-26 12:24:27 +08:00
new_org = New Organization
2020-08-17 11:07:38 +08:00
new_project = New Project
2023-02-25 07:10:50 +08:00
new_project_column = New Column
2014-07-26 12:24:27 +08:00
manage_org = Manage Organizations
2018-04-19 22:24:31 +08:00
admin_panel = Site Administration
2014-07-26 12:24:27 +08:00
account_settings = Account Settings
settings = Settings
2018-04-19 22:24:31 +08:00
your_profile = Profile
your_starred = Starred
your_settings = Settings
2014-07-26 12:24:27 +08:00
2017-08-17 09:31:34 +08:00
all = All
sources = Sources
mirrors = Mirrors
collaborative = Collaborative
2017-08-18 14:56:04 +08:00
forks = Forks
2017-08-17 09:31:34 +08:00
2016-02-15 09:26:49 +08:00
activities = Activities
2014-07-26 12:24:27 +08:00
pull_requests = Pull Requests
issues = Issues
2019-12-15 22:20:08 +08:00
milestones = Milestones
2014-07-26 12:24:27 +08:00
2021-02-12 01:32:25 +08:00
ok = OK
2014-07-26 12:24:27 +08:00
cancel = Cancel
2023-08-04 10:21:32 +08:00
retry = Retry
2023-05-09 07:59:59 +08:00
rerun = Re-run
2023-05-22 12:17:24 +08:00
rerun_all = Re-run all jobs
2020-06-12 05:06:20 +08:00
save = Save
2019-11-09 08:39:37 +08:00
add = Add
add_all = Add All
remove = Remove
remove_all = Remove All
Use a general approch to improve a11y for all checkboxes and dropdowns. (#23542)
This PR follows #22599 and #23450
The major improvements:
1. The `aria-*.js` are totally transparent now, no need to call
`attachDropdownAria` explicitly anymore.
* It hooks the `$.fn.checkbox` and `$.fn.dropdown`, then our patch
works.
* It makes all dynamically generated checkbox/dropdown work with a11y
without any change
* eg: the `conversation.find('.dropdown').dropdown();` in `repo-diff.js`
2. Since it's totally transparent now, it could be easier to modify or
remove in the future.
3. It handles all selection labels as well (by onLabelCreate), so it
supports "multiple selection dropdown" now.
* It partially completes one of my TODOs: `TODO: multiple selection is
not supported yet.`
4. The code structure is clearer, code blocks are splitted into
different functions.
* The old `attachOneDropdownAria` was splitted into separate functions.
* It makes it easier to add more fine tunes in the future, and co-work
with contributors.
6. The code logic is similar as before, only two new parts:
1. the `ariaCheckboxFn` and `ariaDropdownFn` functions
2. the `onLabelCreate` and `updateSelectionLabel` functions
In `aria-dropdown.js` I had to mix jQuery and Vanilla JS somewhat, I
think the code is still understandable, otherwise the code would be much
more complex to read.
Thanks to fsologureng for the idea about "improving the 'delete icon'
with aria attributes".
If there is anything unclear or incorrect, feel free to ask and discuss,
or propose new PRs for it.
2023-03-22 10:52:01 +08:00
remove_label_str = Remove item "%s"
2021-06-25 22:28:55 +08:00
edit = Edit
2023-10-22 20:34:16 +08:00
view = View
2024-06-18 03:22:39 +08:00
test = Test
2014-07-26 12:24:27 +08:00
2022-11-20 22:08:38 +08:00
enabled = Enabled
disabled = Disabled
2023-08-09 20:24:07 +08:00
locked = Locked
2022-11-20 22:08:38 +08:00
2021-11-16 16:16:05 +08:00
copy = Copy
copy_url = Copy URL
2023-10-02 12:04:32 +08:00
copy_hash = Copy hash
2022-11-05 03:33:50 +08:00
copy_content = Copy content
2021-11-16 16:16:05 +08:00
copy_branch = Copy branch name
2024-11-21 12:03:17 +08:00
copy_path = Copy path
2021-11-16 16:16:05 +08:00
copy_success = Copied!
copy_error = Copy failed
2023-01-09 02:25:28 +08:00
copy_type_unsupported = This file type cannot be copied
2021-11-16 16:16:05 +08:00
2018-08-06 12:43:22 +08:00
write = Write
preview = Preview
loading = Loading…
2021-06-15 01:20:43 +08:00
error = Error
2020-02-11 03:23:35 +08:00
error404 = The page you are trying to reach either <strong>does not exist</strong> or <strong>you are not authorized</strong> to view it.
2023-09-29 15:42:39 +08:00
go_back = Go Back
2024-03-21 23:07:35 +08:00
invalid_data = Invalid data: %v
2020-02-11 03:23:35 +08:00
2021-06-15 01:20:43 +08:00
never = Never
2023-04-27 16:44:38 +08:00
unknown = Unknown
2021-06-15 01:20:43 +08:00
2022-04-25 04:03:39 +08:00
rss_feed = RSS Feed
2023-05-25 21:17:19 +08:00
pin = Pin
unpin = Unpin
2023-05-19 21:37:57 +08:00
artifacts = Artifacts
2024-02-18 18:33:50 +08:00
confirm_delete_artifact = Are you sure you want to delete the artifact '%s' ?
2023-05-19 21:37:57 +08:00
2023-09-18 12:54:05 +08:00
archived = Archived
2023-05-12 16:43:27 +08:00
concept_system_global = Global
concept_user_individual = Individual
concept_code_repository = Repository
concept_user_organization = Organization
2023-05-31 04:38:55 +08:00
show_timestamps = Show timestamps
show_log_seconds = Show seconds
show_full_screen = Show full screen
2023-06-29 10:58:56 +08:00
download_logs = Download logs
2023-05-31 04:38:55 +08:00
2023-06-19 15:46:50 +08:00
confirm_delete_selected = Confirm to delete all selected items?
2023-06-21 06:54:15 +08:00
name = Name
value = Value
2024-12-06 22:29:04 +08:00
readme = Readme
2023-06-21 06:54:15 +08:00
2024-03-03 18:18:34 +08:00
filter = Filter
filter.clear = Clear Filter
filter.is_archived = Archived
filter.not_archived = Not Archived
filter.is_fork = Forked
filter.not_fork = Not Forked
filter.is_mirror = Mirrored
filter.not_mirror = Not Mirrored
filter.is_template = Template
filter.not_template = Not Template
filter.public = Public
filter.private = Private
2024-03-15 11:43:10 +08:00
no_results_found = No results found.
2024-09-15 01:17:49 +08:00
internal_error_skipped = Internal error occurred but is skipped: %s
2024-03-15 11:43:10 +08:00
2024-03-15 07:24:59 +08:00
[search]
search = Search...
type_tooltip = Search type
fuzzy = Fuzzy
fuzzy_tooltip = Include results that also match the search term closely
2024-04-18 08:16:52 +08:00
exact = Exact
exact_tooltip = Include only results that match the exact search term
2024-03-15 07:24:59 +08:00
repo_kind = Search repos...
user_kind = Search users...
org_kind = Search orgs...
team_kind = Search teams...
code_kind = Search code...
code_search_unavailable = Code search is currently not available. Please contact the site administrator.
2024-03-25 00:05:00 +08:00
code_search_by_git_grep = Current code search results are provided by "git grep". There might be better results if site administrator enables Repository Indexer.
2024-03-15 07:24:59 +08:00
package_kind = Search packages...
project_kind = Search projects...
branch_kind = Search branches...
2024-09-18 02:33:11 +08:00
tag_kind = Search tags...
tag_tooltip = Search for matching tags. Use '%' to match any sequence of numbers.
2024-03-15 07:24:59 +08:00
commit_kind = Search commits...
runner_kind = Search runners...
no_results = No matching results found.
2024-04-18 08:16:52 +08:00
issue_kind = Search issues...
pull_kind = Search pulls...
2024-03-15 07:24:59 +08:00
keyword_search_unavailable = Searching by keyword is currently not available. Please contact the site administrator.
2023-01-29 09:29:10 +08:00
[aria]
navbar = Navigation Bar
footer = Footer
footer.software = About Software
footer.links = Links
2023-04-18 02:26:01 +08:00
[heatmap]
number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
no_contributions = No contributions
less = Less
more = More
2023-04-11 15:26:18 +08:00
[editor]
buttons.heading.tooltip = Add heading
buttons.bold.tooltip = Add bold text
buttons.italic.tooltip = Add italic text
buttons.quote.tooltip = Quote text
buttons.code.tooltip = Add code
buttons.link.tooltip = Add a link
buttons.list.unordered.tooltip = Add a bullet list
buttons.list.ordered.tooltip = Add a numbered list
buttons.list.task.tooltip = Add a list of tasks
2024-11-04 18:14:36 +08:00
buttons.table.add.tooltip = Add a table
buttons.table.add.insert = Add
buttons.table.rows = Rows
buttons.table.cols = Columns
2023-04-11 15:26:18 +08:00
buttons.mention.tooltip = Mention a user or team
buttons.ref.tooltip = Reference an issue or pull request
buttons.switch_to_legacy.tooltip = Use the legacy editor instead
2023-04-14 03:05:06 +08:00
buttons.enable_monospace_font = Enable monospace font
buttons.disable_monospace_font = Disable monospace font
2023-04-11 15:26:18 +08:00
2022-10-23 09:18:15 +08:00
[filter]
string.asc = A - Z
string.desc = Z - A
2020-04-28 07:03:15 +08:00
[error]
2021-12-28 21:28:27 +08:00
occurred = An error occurred
2024-09-03 02:36:24 +08:00
report_message = If you believe that this is a Gitea bug, please search for issues on <a href="%s" target="_blank">GitHub</a> or open a new issue if necessary.
2021-12-28 21:28:27 +08:00
not_found = The target couldn't be found.
network_error = Network error
2020-04-28 07:03:15 +08:00
2019-10-20 17:06:53 +08:00
[startpage]
app_desc = A painless, self-hosted Git service
install = Easy to install
2024-09-03 02:36:24 +08:00
install_desc = Simply <a target="_blank" rel="noopener noreferrer" href="%[1]s">run the binary</a> for your platform, ship it with <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a>, or get it <a target="_blank" rel="noopener noreferrer" href="%[3]s">packaged</a>.
2019-10-20 17:06:53 +08:00
platform = Cross-platform
2024-09-03 02:36:24 +08:00
platform_desc = Gitea runs anywhere <a target="_blank" rel="noopener noreferrer" href="%s">Go</a> can compile for: Windows, macOS, Linux, ARM, etc. Choose the one you love!
2019-10-20 17:06:53 +08:00
lightweight = Lightweight
lightweight_desc = Gitea has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!
license = Open Source
2024-09-03 02:36:24 +08:00
license_desc = Go get <a target="_blank" rel="noopener noreferrer" href="%[1]s">%[2]s</a>! Join us by <a target="_blank" rel="noopener noreferrer" href="%[3]s">contributing</a> to make this project even better. Don't be shy to be a contributor!
2019-10-20 17:06:53 +08:00
2014-09-08 07:02:58 +08:00
[install]
install = Installation
2018-04-19 22:24:31 +08:00
title = Initial Configuration
2018-07-04 07:52:36 +08:00
docker_helper = If you run Gitea inside Docker, please read the <a target="_blank" rel="noopener noreferrer" href="%s">documentation</a> before changing any settings.
2021-12-07 13:44:08 +08:00
require_db_desc = Gitea requires MySQL, PostgreSQL, MSSQL, SQLite3 or TiDB (MySQL protocol).
2015-07-08 01:09:03 +08:00
db_title = Database Settings
2014-09-08 07:02:58 +08:00
db_type = Database Type
host = Host
2018-04-19 22:24:31 +08:00
user = Username
2014-09-08 07:02:58 +08:00
password = Password
db_name = Database Name
2020-01-20 23:45:14 +08:00
db_schema = Schema
db_schema_helper = Leave blank for database default ("public").
2018-04-19 22:24:31 +08:00
ssl_mode = SSL
2014-09-08 07:02:58 +08:00
path = Path
2018-09-11 22:42:40 +08:00
sqlite_helper = File path for the SQLite3 database.<br>Enter an absolute path if you run Gitea as a service.
2021-12-01 15:50:01 +08:00
reinstall_error = You are trying to install into an existing Gitea database
reinstall_confirm_message = Re-installing with an existing Gitea database can cause multiple problems. In most cases, you should use your existing "app.ini" to run Gitea. If you know what you are doing, confirm the following:
reinstall_confirm_check_1 = The data encrypted by the SECRET_KEY in app.ini may be lost: users may not be able to log in with 2FA/OTP & mirrors may not function correctly. By checking this box you confirm that the current app.ini file contains the correct the SECRET_KEY.
reinstall_confirm_check_2 = The repositories and settings may need to be re-synchronized. By checking this box you confirm that you will resynchronize the hooks for the repositories and authorized_keys file manually. You confirm that you will ensure that repository and mirror settings are correct.
2021-12-04 23:24:10 +08:00
reinstall_confirm_check_3 = You confirm that you are absolutely sure that this Gitea is running with the correct app.ini location and that you are sure that you have to re-install. You confirm that you acknowledge the above risks.
2018-09-11 22:42:40 +08:00
err_empty_db_path = The SQLite3 database path cannot be empty.
2018-04-19 22:24:31 +08:00
no_admin_and_disable_registration = You cannot disable user self-registration without creating an administrator account.
err_empty_admin_password = The administrator password cannot be empty.
2019-05-28 14:18:40 +08:00
err_empty_admin_email = The administrator email cannot be empty.
err_admin_name_is_reserved = Administrator Username is invalid, username is reserved
2020-01-15 17:53:30 +08:00
err_admin_name_pattern_not_allowed = Administrator username is invalid, the username matches a reserved pattern
2019-05-28 14:18:40 +08:00
err_admin_name_is_invalid = Administrator Username is invalid
2018-04-19 22:24:31 +08:00
general_title = General Settings
app_name = Site Title
2018-05-10 14:58:49 +08:00
app_name_helper = You can enter your company name here.
2014-09-08 07:02:58 +08:00
repo_path = Repository Root Path
2018-04-19 22:24:31 +08:00
repo_path_helper = Remote Git repositories will be saved to this directory.
lfs_path = Git LFS Root Path
lfs_path_helper = Files tracked by Git LFS will be stored in this directory. Leave empty to disable.
run_user = Run As Username
2023-07-06 10:14:51 +08:00
run_user_helper = The operating system username that Gitea runs as. Note that this user must have access to the repository root path.
2021-11-06 03:23:55 +08:00
domain = Server Domain
domain_helper = Domain or host address for the server.
2018-04-19 22:24:31 +08:00
ssh_port = SSH Server Port
ssh_port_helper = Port number your SSH server listens on. Leave empty to disable.
http_port = Gitea HTTP Listen Port
http_port_helper = Port number the Giteas web server will listen on.
app_url = Gitea Base URL
app_url_helper = Base address for HTTP(S) clone URLs and email notifications.
2016-02-12 22:19:45 +08:00
log_root_path = Log Path
2018-04-19 22:24:31 +08:00
log_root_path_helper = Log files will be written to this directory.
2015-07-08 19:47:56 +08:00
optional_title = Optional Settings
2018-04-19 22:24:31 +08:00
email_title = Email Settings
Rework mailer settings (#18982)
* `PROTOCOL`: can be smtp, smtps, smtp+startls, smtp+unix, sendmail, dummy
* `SMTP_ADDR`: domain for SMTP, or path to unix socket
* `SMTP_PORT`: port for SMTP; defaults to 25 for `smtp`, 465 for `smtps`, and 587 for `smtp+startls`
* `ENABLE_HELO`, `HELO_HOSTNAME`: reverse `DISABLE_HELO` to `ENABLE_HELO`; default to false + system hostname
* `FORCE_TRUST_SERVER_CERT`: replace the unclear `SKIP_VERIFY`
* `CLIENT_CERT_FILE`, `CLIENT_KEY_FILE`, `USE_CLIENT_CERT`: clarify client certificates here
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2022-08-02 13:24:18 +08:00
smtp_addr = SMTP Host
smtp_port = SMTP Port
2018-04-19 22:24:31 +08:00
smtp_from = Send Email As
2024-02-24 07:02:14 +08:00
smtp_from_invalid = The "Send Email As" address is invalid
2018-04-19 22:24:31 +08:00
smtp_from_helper = Email address Gitea will use. Enter a plain email address or use the "Name" <email@example.com> format.
mailer_user = SMTP Username
mailer_password = SMTP Password
register_confirm = Require Email Confirmation to Register
mail_notify = Enable Email Notifications
server_service_title = Server and Third-Party Service Settings
offline_mode = Enable Local Mode
offline_mode_popup = Disable third-party content delivery networks and serve all resources locally.
disable_gravatar = Disable Gravatar
disable_gravatar_popup = Disable Gravatar and third-party avatar sources. A default avatar will be used unless a user locally uploads an avatar.
federated_avatar_lookup = Enable Federated Avatars
2017-02-06 23:17:18 +08:00
federated_avatar_lookup_popup = Enable federated avatar lookup using Libravatar.
2018-04-19 22:24:31 +08:00
disable_registration = Disable Self-Registration
disable_registration_popup = Disable user self-registration. Only administrators will be able to create new user accounts.
2018-07-21 00:40:08 +08:00
allow_only_external_registration_popup = Allow Registration Only Through External Services
2017-08-19 23:34:49 +08:00
openid_signin = Enable OpenID Sign-In
2018-04-19 22:24:31 +08:00
openid_signin_popup = Enable user sign-in via OpenID.
openid_signup = Enable OpenID Self-Registration
openid_signup_popup = Enable OpenID-based user self-registration.
2020-05-29 16:36:51 +08:00
enable_captcha = Enable registration CAPTCHA
2017-02-06 23:17:18 +08:00
enable_captcha_popup = Require a CAPTCHA for user self-registration.
2018-04-19 22:24:31 +08:00
require_sign_in_view = Require Sign-In to View Pages
2023-03-24 01:27:03 +08:00
require_sign_in_view_popup = Limit page access to signed-in users. Visitors will only see the sign-in and registration pages.
2018-04-19 22:24:31 +08:00
admin_setting_desc = Creating an administrator account is optional. The first registered user will automatically become an administrator.
admin_title = Administrator Account Settings
admin_name = Administrator Username
2014-09-08 07:02:58 +08:00
admin_password = Password
confirm_password = Confirm Password
2018-04-19 22:24:31 +08:00
admin_email = Email Address
2016-12-21 20:13:17 +08:00
install_btn_confirm = Install Gitea
2017-02-06 23:17:18 +08:00
test_git_failed = Could not test 'git' command: %v
2018-04-19 22:24:31 +08:00
sqlite3_not_available = This Gitea version does not support SQLite3. Please download the official binary version from %s (not the 'gobuild' version).
invalid_db_setting = The database settings are invalid: %v
2023-04-18 06:04:26 +08:00
invalid_db_table = The database table "%s" is invalid: %v
2018-04-19 22:24:31 +08:00
invalid_repo_path = The repository root path is invalid: %v
2021-12-01 15:50:01 +08:00
invalid_app_data_path = The app data path is invalid: %v
2018-04-19 22:24:31 +08:00
run_user_not_match = The 'run as' username is not the current username: %s -> %s
2021-12-01 15:50:01 +08:00
internal_token_failed = Failed to generate internal token: %v
secret_key_failed = Failed to generate secret key: %v
2017-05-18 09:03:43 +08:00
save_config_failed = Failed to save configuration: %v
2018-04-19 22:24:31 +08:00
invalid_admin_setting = Administrator account setting is invalid: %v
invalid_log_root_path = The log path is invalid: %v
default_keep_email_private = Hide Email Addresses by Default
default_keep_email_private_popup = Hide email addresses of new user accounts by default.
default_allow_create_organization = Allow Creation of Organizations by Default
default_allow_create_organization_popup = Allow new user accounts to create organizations by default.
default_enable_timetracking = Enable Time Tracking by Default
default_enable_timetracking_popup = Enable time tracking for new repositories by default.
no_reply_address = Hidden Email Domain
no_reply_address_helper = Domain name for users with a hidden email address. For example, the username 'joe' will be logged in Git as 'joe@noreply.example.org' if the hidden email domain is set to 'noreply.example.org'.
2021-02-17 06:37:20 +08:00
password_algorithm = Password Hash Algorithm
2023-03-04 10:12:02 +08:00
invalid_password_algorithm = Invalid password hash algorithm
2023-03-24 01:27:03 +08:00
password_algorithm_helper = Set the password hashing algorithm. Algorithms have differing requirements and strength. The argon2 algorithm is rather secure but uses a lot of memory and may be inappropriate for small systems.
2022-11-02 03:23:56 +08:00
enable_update_checker = Enable Update Checker
enable_update_checker_helper = Checks for new version releases periodically by connecting to gitea.io.
2023-07-10 06:43:37 +08:00
env_config_keys = Environment Configuration
env_config_keys_prompt = The following environment variables will also be applied to your configuration file:
2024-11-21 10:42:37 +08:00
config_write_file_prompt = These configuration options will be written into: %s
2014-09-08 07:02:58 +08:00
2014-07-26 12:24:27 +08:00
[home]
2024-03-04 22:31:59 +08:00
nav_menu = Navigation Menu
2018-04-19 22:24:31 +08:00
uname_holder = Username or Email Address
2014-07-26 12:24:27 +08:00
password_holder = Password
switch_dashboard_context = Switch Dashboard Context
2018-05-22 04:07:34 +08:00
my_repos = Repositories
2018-02-16 22:02:40 +08:00
show_more_repos = Show more repositories…
2014-07-26 12:24:27 +08:00
collaborative_repos = Collaborative Repositories
my_orgs = My Organizations
my_mirrors = My Mirrors
2015-08-26 00:01:06 +08:00
view_home = View %s
2020-05-17 04:07:01 +08:00
filter = Other Filters
2020-12-28 03:58:03 +08:00
filter_by_team_repositories = Filter by team repositories
2021-10-16 22:21:16 +08:00
feed_of = Feed of "%s"
2020-05-17 04:07:01 +08:00
show_archived = Archived
show_both_archived_unarchived = Showing both archived and unarchived
show_only_archived = Showing only archived
show_only_unarchived = Showing only unarchived
show_private = Private
show_both_private_public = Showing both public and private
show_only_private = Showing only private
show_only_public = Showing only public
2014-07-26 12:24:27 +08:00
2015-08-25 22:58:34 +08:00
issues.in_your_repos = In your repositories
2014-09-06 05:28:09 +08:00
[explore]
repos = Repositories
2016-03-12 04:33:12 +08:00
users = Users
2016-09-01 21:08:05 +08:00
organizations = Organizations
2023-05-07 23:44:16 +08:00
go_to = Go to
2018-03-16 22:04:33 +08:00
code = Code
2020-02-21 03:53:55 +08:00
code_last_indexed_at = Last indexed %s
2022-08-26 02:38:41 +08:00
relevant_repositories_tooltip = Repositories that are forks or that have no topic, no icon, and no description are hidden.
relevant_repositories = Only relevant repositories are being shown, <a href="%s">show unfiltered results</a>.
2014-07-26 12:24:27 +08:00
[auth]
2018-04-19 22:24:31 +08:00
create_new_account = Register Account
2024-07-06 01:10:09 +08:00
already_have_account = Already have an account?
sign_in_now = Sign in now!
2018-04-19 22:24:31 +08:00
disable_register_prompt = Registration is disabled. Please contact your site administrator.
disable_register_mail = Email confirmation for registration is disabled.
2022-03-18 17:57:07 +08:00
manual_activation_only = Contact your site administrator to complete activation.
2023-01-10 17:43:54 +08:00
remember_me = Remember This Device
2023-10-14 08:56:41 +08:00
remember_me.compromised = The login token is not valid anymore which may indicate a compromised account. Please check your account for unusual activities.
2017-02-21 02:27:20 +08:00
forgot_password_title = Forgot Password
forgot_password = Forgot password?
2024-07-06 01:10:09 +08:00
need_account = Need an account?
sign_up_now = Register now.
2023-08-08 23:25:05 +08:00
sign_up_successful = Account was successfully created. Welcome!
2024-02-27 18:55:13 +08:00
confirmation_mail_sent_prompt_ex = A new confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the registration process. If your registration email address is incorrect, you can sign in again and change it.
2018-09-13 20:04:25 +08:00
must_change_password = Update your password
2018-09-14 00:34:36 +08:00
allow_password_change = Require user to change password (recommended)
2019-04-18 15:23:59 +08:00
reset_password_mail_sent_prompt = A confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the account recovery process.
2014-08-10 12:02:00 +08:00
active_your_account = Activate Your Account
2018-07-26 01:54:56 +08:00
account_activated = Account has been activated
2018-04-19 22:24:31 +08:00
prohibit_login = Sign In Prohibited
2023-08-08 23:25:05 +08:00
prohibit_login_desc = Your account is prohibited from signing in, please contact your site administrator.
2018-04-19 22:24:31 +08:00
resent_limit_prompt = You have already requested an activation email recently. Please wait 3 minutes and try again.
2015-12-02 12:21:24 +08:00
has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (<b>%s</b>). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
2024-02-27 18:55:13 +08:00
change_unconfirmed_mail_address = If your registration email address is incorrect, you can change it here and resend a new confirmation email.
2015-12-02 12:21:24 +08:00
resend_mail = Click here to resend your activation email
2017-05-18 09:03:43 +08:00
email_not_associate = The email address is not associated with any account.
2019-04-18 15:23:59 +08:00
send_reset_mail = Send Account Recovery Email
reset_password = Account Recovery
2018-04-19 22:24:31 +08:00
invalid_code = Your confirmation code is invalid or has expired.
2023-09-02 00:15:39 +08:00
invalid_code_forgot_password = Your confirmation code is invalid or has expired. Click <a href="%s">here</a> to start a new session.
2023-01-28 15:59:46 +08:00
invalid_password = Your password does not match the password that was used to create the account.
2019-04-18 15:23:59 +08:00
reset_password_helper = Recover Account
2023-08-08 23:25:05 +08:00
reset_password_wrong_user = You are signed in as %s, but the account recovery link is meant for %s
2018-06-11 15:12:38 +08:00
password_too_short = Password length cannot be less than %d characters.
2023-01-09 02:25:28 +08:00
non_local_account = Non-local users cannot update their password through the Gitea web interface.
2017-01-16 10:14:29 +08:00
verify = Verify
scratch_code = Scratch code
use_scratch_code = Use a scratch code
twofa_scratch_used = You have used your scratch code. You have been redirected to the two-factor settings page so you may remove your device enrollment or generate a new scratch code.
2018-04-19 22:24:31 +08:00
twofa_passcode_incorrect = Your passcode is incorrect. If you misplaced your device, use your scratch code to sign in.
2017-06-02 08:41:52 +08:00
twofa_scratch_token_incorrect = Your scratch code is incorrect.
2018-04-19 22:24:31 +08:00
login_userpass = Sign In
2017-03-17 22:16:08 +08:00
login_openid = OpenID
2018-10-29 06:46:16 +08:00
oauth_signup_tab = Register New Account
2020-11-21 11:32:27 +08:00
oauth_signup_title = Complete New Account
2018-10-29 06:46:16 +08:00
oauth_signup_submit = Complete Account
oauth_signin_tab = Link to Existing Account
oauth_signin_title = Sign In to Authorize Linked Account
oauth_signin_submit = Link Account
2022-01-08 05:02:09 +08:00
oauth.signin.error = There was an error processing the authorization request. If this error persists, please contact the site administrator.
oauth.signin.error.access_denied = The authorization request was denied.
oauth.signin.error.temporarily_unavailable = Authorization failed because the authentication server is temporarily unavailable. Please try again later.
2024-04-25 19:22:32 +08:00
oauth_callback_unable_auto_reg = Auto Registration is enabled, but OAuth2 Provider %[1]s returned missing fields: %[2]s, unable to create an account automatically, please create or link to an account, or contact the site administrator.
2017-03-17 22:16:08 +08:00
openid_connect_submit = Connect
openid_connect_title = Connect to an existing account
2018-04-19 22:24:31 +08:00
openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2017-03-17 22:16:08 +08:00
openid_register_title = Create new account
2018-04-19 22:24:31 +08:00
openid_register_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2023-08-08 23:25:05 +08:00
openid_signin_desc = Enter your OpenID URI. For example: alice.openid.example.org or https://openid.example.org/alice.
2021-06-26 12:16:36 +08:00
disable_forgot_password_mail = Account recovery is disabled because no email is set up. Please contact your site administrator.
disable_forgot_password_mail_admin = Account recovery is only available when email is set up. Please set up email to enable account recovery.
2018-11-15 09:00:04 +08:00
email_domain_blacklisted = You cannot register with your email address.
2019-03-09 00:42:50 +08:00
authorize_application = Authorize Application
2019-10-24 05:04:22 +08:00
authorize_redirect_notice = You will be redirected to %s if you authorize this application.
2019-03-09 00:42:50 +08:00
authorize_application_created_by = This application was created by %s.
authorize_application_description = If you grant the access, it will be able to access and write to all your account information, including private repos and organisations.
Enhancing Gitea OAuth2 Provider with Granular Scopes for Resource Access (#32573)
Resolve #31609
This PR was initiated following my personal research to find the
lightest possible Single Sign-On solution for self-hosted setups. The
existing solutions often seemed too enterprise-oriented, involving many
moving parts and services, demanding significant resources while
promising planetary-scale capabilities. Others were adequate in
supporting basic OAuth2 flows but lacked proper user management
features, such as a change password UI.
Gitea hits the sweet spot for me, provided it supports more granular
access permissions for resources under users who accept the OAuth2
application.
This PR aims to introduce granularity in handling user resources as
nonintrusively and simply as possible. It allows third parties to inform
users about their intent to not ask for the full access and instead
request a specific, reduced scope. If the provided scopes are **only**
the typical ones for OIDC/OAuth2—`openid`, `profile`, `email`, and
`groups`—everything remains unchanged (currently full access to user's
resources). Additionally, this PR supports processing scopes already
introduced with [personal
tokens](https://docs.gitea.com/development/oauth2-provider#scopes) (e.g.
`read:user`, `write:issue`, `read:group`, `write:repository`...)
Personal tokens define scopes around specific resources: user info,
repositories, issues, packages, organizations, notifications,
miscellaneous, admin, and activitypub, with access delineated by read
and/or write permissions.
The initial case I wanted to address was to have Gitea act as an OAuth2
Identity Provider. To achieve that, with this PR, I would only add
`openid public-only` to provide access token to the third party to
authenticate the Gitea's user but no further access to the API and users
resources.
Another example: if a third party wanted to interact solely with Issues,
it would need to add `read:user` (for authorization) and
`read:issue`/`write:issue` to manage Issues.
My approach is based on my understanding of how scopes can be utilized,
supported by examples like [Sample Use Cases: Scopes and
Claims](https://auth0.com/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims)
on auth0.com.
I renamed `CheckOAuthAccessToken` to `GetOAuthAccessTokenScopeAndUserID`
so now it returns AccessTokenScope and user's ID. In the case of
additional scopes in `userIDFromToken` the default `all` would be
reduced to whatever was asked via those scopes. The main difference is
the opportunity to reduce the permissions from `all`, as is currently
the case, to what is provided by the additional scopes described above.
Screenshots:
![Screenshot_20241121_121405](https://github.com/user-attachments/assets/29deaed7-4333-4b02-8898-b822e6f2463e)
![Screenshot_20241121_120211](https://github.com/user-attachments/assets/7a4a4ef7-409c-4116-9d5f-2fe00eb37167)
![Screenshot_20241121_120119](https://github.com/user-attachments/assets/aa52c1a2-212d-4e64-bcdf-7122cee49eb6)
![Screenshot_20241121_120018](https://github.com/user-attachments/assets/9eac318c-e381-4ea9-9e2c-3a3f60319e47)
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2024-11-22 12:06:41 +08:00
authorize_application_with_scopes = With scopes: %s
2019-03-09 00:42:50 +08:00
authorize_title = Authorize "%s" to access your account?
authorization_failed = Authorization failed
2023-08-08 23:25:05 +08:00
authorization_failed_desc = The authorization failed because we detected an invalid request. Please contact the maintainer of the app you have tried to authorize.
2019-11-23 07:33:31 +08:00
sspi_auth_failed = SSPI authentication failed
2024-09-03 02:36:24 +08:00
password_pwned = The password you chose is on a <a target="_blank" rel="noopener noreferrer" href="%s">list of stolen passwords</a> previously exposed in public data breaches. Please try again with a different password and consider changing this password elsewhere too.
2020-09-09 06:06:39 +08:00
password_pwned_err = Could not complete request to HaveIBeenPwned
2024-01-15 14:51:43 +08:00
last_admin = You cannot remove the last admin. There must be at least one admin.
2024-06-30 06:50:03 +08:00
signin_passkey = Sign in with a passkey
2024-07-06 01:10:09 +08:00
back_to_sign_in = Back to Sign In
2014-07-26 12:24:27 +08:00
2015-09-17 13:54:12 +08:00
[mail]
2021-06-23 20:33:21 +08:00
view_it_on = View it on %s
2023-01-17 04:58:01 +08:00
reply = or reply to this email directly
2021-06-23 20:33:21 +08:00
link_not_working_do_paste = Not working? Try copying and pasting it to your browser.
hi_user_x = Hi <b>%s</b>,
2015-09-17 13:54:12 +08:00
activate_account = Please activate your account
2021-06-23 20:33:21 +08:00
activate_account.title = %s, please activate your account
2021-07-11 01:40:14 +08:00
activate_account.text_1 = Hi <b>%[1]s</b>, thanks for registering at %[2]s!
activate_account.text_2 = Please click the following link to activate your account within <b>%s</b>:
2021-06-23 20:33:21 +08:00
2015-12-02 12:21:24 +08:00
activate_email = Verify your email address
2023-08-08 23:25:05 +08:00
activate_email.title = %s, please verify your email address
2021-06-23 20:33:21 +08:00
activate_email.text = Please click the following link to verify your email address within <b>%s</b>:
2024-07-12 07:23:31 +08:00
register_notify = Welcome to %s
2021-06-23 20:33:21 +08:00
register_notify.title = %[1]s, welcome to %[2]s
register_notify.text_1 = this is your registration confirmation email for %s!
register_notify.text_2 = You can now login via username: %s.
register_notify.text_3 = If this account has been created for you, please <a href="%s">set your password</a> first.
2019-04-18 15:23:59 +08:00
reset_password = Recover your account
2021-06-23 20:33:21 +08:00
reset_password.title = %s, you have requested to recover your account
reset_password.text = Please click the following link to recover your account within <b>%s</b>:
2017-03-09 21:24:57 +08:00
register_success = Registration successful
2021-06-23 20:33:21 +08:00
2021-09-30 07:20:18 +08:00
issue_assigned.pull = @%[1]s assigned you to pull request %[2]s in repository %[3]s.
issue_assigned.issue = @%[1]s assigned you to issue %[2]s in repository %[3]s.
2021-06-23 20:33:21 +08:00
issue.x_mentioned_you = <b>@%s</b> mentioned you:
issue.action.force_push = <b>%[1]s</b> force-pushed the <b>%[2]s</b> from %[3]s to %[4]s.
2021-07-14 21:06:09 +08:00
issue.action.push_1 = <b>@%[1]s</b> pushed %[3]d commit to %[2]s
2021-06-24 01:43:33 +08:00
issue.action.push_n = <b>@%[1]s</b> pushed %[3]d commits to %[2]s
2021-06-23 20:33:21 +08:00
issue.action.close = <b>@%[1]s</b> closed #%[2]d.
issue.action.reopen = <b>@%[1]s</b> reopened #%[2]d.
2021-06-24 01:43:33 +08:00
issue.action.merge = <b>@%[1]s</b> merged #%[2]d into %[3]s.
2021-06-23 20:33:21 +08:00
issue.action.approve = <b>@%[1]s</b> approved this pull request.
issue.action.reject = <b>@%[1]s</b> requested changes on this pull request.
issue.action.review = <b>@%[1]s</b> commented on this pull request.
issue.action.review_dismissed = <b>@%[1]s</b> dismissed last review from %[2]s for this pull request.
issue.action.ready_for_review = <b>@%[1]s</b> marked this pull request ready for review.
2021-06-24 01:43:33 +08:00
issue.action.new = <b>@%[1]s</b> created #%[2]d.
2021-06-23 20:33:21 +08:00
issue.in_tree_path = In %s:
2015-09-17 13:54:12 +08:00
2021-04-02 18:25:13 +08:00
release.new.subject = %s in %s released
2021-06-23 20:33:21 +08:00
release.new.text = <b>@%[1]s</b> released %[2]s in %[3]s
release.title = Title: %s
release.note = Note:
release.downloads = Downloads:
release.download.zip = Source Code (ZIP)
release.download.targz = Source Code (TAR.GZ)
2021-04-02 18:25:13 +08:00
repo.transfer.subject_to = %s would like to transfer "%s" to %s
repo.transfer.subject_to_you = %s would like to transfer "%s" to you
repo.transfer.to_you = you
2021-06-23 20:33:21 +08:00
repo.transfer.body = To accept or reject it visit %s or just ignore it.
2021-04-02 18:25:13 +08:00
repo.collaborator.added.subject = %s added you to %s
2021-06-23 20:33:21 +08:00
repo.collaborator.added.text = You have been added as a collaborator of repository:
2021-04-02 18:25:13 +08:00
2022-10-19 20:40:28 +08:00
team_invite.subject = %[1]s has invited you to join the %[2]s organization
team_invite.text_1 = %[1]s has invited you to join team %[2]s in organization %[3]s.
team_invite.text_2 = Please click the following link to join the team:
team_invite.text_3 = Note: This invitation was intended for %[1]s. If you were not expecting this invitation, you can ignore this email.
2015-07-24 23:13:42 +08:00
[modal]
yes = Yes
no = No
2023-04-23 17:24:19 +08:00
confirm = Confirm
cancel = Cancel
2018-04-19 22:24:31 +08:00
modify = Update
2015-07-24 23:13:42 +08:00
2014-07-26 12:24:27 +08:00
[form]
UserName = Username
2014-08-03 01:47:33 +08:00
RepoName = Repository name
2015-12-02 12:21:24 +08:00
Email = Email address
2014-07-26 12:24:27 +08:00
Password = Password
2023-08-08 23:25:05 +08:00
Retype = Confirm Password
2014-07-26 12:24:27 +08:00
SSHTitle = SSH key name
2014-08-01 12:06:19 +08:00
HttpsUrl = HTTPS URL
2014-08-10 06:40:10 +08:00
PayloadUrl = Payload URL
2014-08-16 16:21:17 +08:00
TeamName = Team name
2014-08-29 20:50:43 +08:00
AuthName = Authorization name
2015-12-02 12:21:24 +08:00
AdminEmail = Admin email
2014-07-26 12:24:27 +08:00
2016-08-11 20:48:08 +08:00
NewBranchName = New branch name
CommitSummary = Commit summary
CommitMessage = Commit message
CommitChoice = Commit choice
TreeName = File path
Content = Content
2019-11-23 07:33:31 +08:00
SSPISeparatorReplacement = Separator
SSPIDefaultLanguage = Default Language
2014-07-26 12:24:27 +08:00
require_error = ` cannot be empty.`
2018-04-19 22:24:31 +08:00
alpha_dash_error = ` should contain only alphanumeric, dash ('-') and underscore ('_') characters.`
alpha_dash_dot_error = ` should contain only alphanumeric, dash ('-'), underscore ('_') and dot ('.') characters.`
git_ref_name_error = ` must be a well-formed Git reference name.`
2017-05-11 09:03:34 +08:00
size_error = ` must be size %s.`
2014-07-26 12:24:27 +08:00
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
2015-12-02 12:21:24 +08:00
email_error = ` is not a valid email address.`
2023-04-18 06:04:26 +08:00
url_error = `"%s" is not a valid URL.`
include_error = ` must contain substring "%s".`
2019-09-09 13:48:21 +08:00
glob_pattern_error = ` glob pattern is invalid: %s.`
2021-06-25 22:28:55 +08:00
regex_pattern_error = ` regex pattern is invalid: %s.`
2022-11-04 17:04:08 +08:00
username_error = ` can only contain alphanumeric chars ('0-9','a-z','A-Z'), dash ('-'), underscore ('_') and dot ('.'). It cannot begin or end with non-alphanumeric chars, and consecutive non-alphanumeric chars are also forbidden.`
2023-02-08 14:44:42 +08:00
invalid_group_team_map_error = ` mapping is invalid: %s`
2014-07-26 12:24:27 +08:00
unknown_error = Unknown error:
2018-04-19 22:24:31 +08:00
captcha_incorrect = The CAPTCHA code is incorrect.
password_not_match = The passwords do not match.
2019-11-23 07:33:31 +08:00
lang_select_error = Select a language from the list.
2018-04-19 22:24:31 +08:00
username_been_taken = The username is already taken.
2021-01-10 20:14:02 +08:00
username_change_not_local_user = Non-local users are not allowed to change their username.
2024-10-06 04:41:38 +08:00
change_username_disabled = Changing username is disabled.
change_full_name_disabled = Changing full name is disabled.
2023-05-21 23:13:47 +08:00
username_has_not_been_changed = Username has not been changed
2018-04-19 22:24:31 +08:00
repo_name_been_taken = The repository name is already used.
2021-12-14 13:08:09 +08:00
repository_force_private = Force Private is enabled: private repositories cannot be made public.
2020-09-25 12:09:23 +08:00
repository_files_already_exist = Files already exist for this repository. Contact the system administrator.
repository_files_already_exist.adopt = Files already exist for this repository and can only be Adopted.
repository_files_already_exist.delete = Files already exist for this repository. You must delete them.
repository_files_already_exist.adopt_or_delete = Files already exist for this repository. Either adopt them or delete them.
2019-05-07 09:12:51 +08:00
visit_rate_limit = Remote visit addressed rate limitation.
2fa_auth_required = Remote visit required two factors authentication.
2018-04-19 22:24:31 +08:00
org_name_been_taken = The organization name is already taken.
team_name_been_taken = The team name is already taken.
team_no_units_error = Allow access to at least one repository section.
email_been_used = The email address is already used.
2020-11-15 00:53:43 +08:00
email_invalid = The email address is invalid.
2024-03-11 14:07:36 +08:00
email_domain_is_not_allowed = The domain of user email <b>%s</b> conflicts with EMAIL_DOMAIN_ALLOWLIST or EMAIL_DOMAIN_BLOCKLIST. Please ensure your operation is expected.
2023-04-18 06:04:26 +08:00
openid_been_used = The OpenID address "%s" is already used.
2018-04-19 22:24:31 +08:00
username_password_incorrect = Username or password is incorrect.
2019-11-20 06:44:58 +08:00
password_complexity = Password does not pass complexity requirements:
password_lowercase_one = At least one lowercase character
password_uppercase_one = At least one uppercase character
password_digit_one = At least one digit
password_special_one = At least one special character (punctuation, brackets, quotes, etc.)
2018-04-19 22:24:31 +08:00
enterred_invalid_repo_name = The repository name you entered is incorrect.
2021-03-01 22:33:05 +08:00
enterred_invalid_org_name = The organization name you entered is incorrect.
2018-04-19 22:24:31 +08:00
enterred_invalid_owner_name = The new owner name is not valid.
enterred_invalid_password = The password you entered is incorrect.
2024-03-08 12:28:21 +08:00
unset_password = The login user has not set the password.
unsupported_login_type = The login type is not supported to delete account.
2017-05-18 09:03:43 +08:00
user_not_exist = The user does not exist.
2019-09-24 04:08:03 +08:00
team_not_exist = The team does not exist.
2020-08-28 22:39:50 +08:00
last_org_owner = You cannot remove the last user from the 'owners' team. There must be at least one owner for an organization.
2018-04-19 22:24:31 +08:00
cannot_add_org_to_team = An organization cannot be added as a team member.
2022-10-19 20:40:28 +08:00
duplicate_invite_to_team = The user was already invited as a team member.
2022-11-30 17:00:00 +08:00
organization_leave_success = You have successfully left the organization %s.
2017-05-18 09:03:43 +08:00
2023-01-09 02:25:28 +08:00
invalid_ssh_key = Cannot verify your SSH key: %s
invalid_gpg_key = Cannot verify your GPG key: %s
2020-10-11 08:38:09 +08:00
invalid_ssh_principal = Invalid principal: %s
2023-02-03 02:25:54 +08:00
must_use_public_key = The key you provided is a private key. Please do not upload your private key anywhere. Use your public key instead.
2023-03-24 01:27:03 +08:00
unable_verify_ssh_key = "Cannot verify the SSH key, double-check it for mistakes."
2014-08-01 12:06:19 +08:00
auth_failed = Authentication failed: %v
2014-07-26 12:24:27 +08:00
2023-03-24 01:27:03 +08:00
still_own_repo = "Your account owns one or more repositories, delete or transfer them first."
still_has_org = "Your account is a member of one or more organizations, leave them first."
still_own_packages = "Your account owns one or more packages, delete them first."
org_still_own_repo = "This organization still owns one or more repositories, delete or transfer them first."
org_still_own_packages = "This organization still owns one or more packages, delete them first."
2014-07-26 12:24:27 +08:00
2015-03-20 03:26:04 +08:00
target_branch_not_exist = Target branch does not exist.
Actions support workflow dispatch event (#28163)
fix #23668
My plan:
* In the `actions.list` method, if workflow is selected and IsAdmin,
check whether the on event contains `workflow_dispatch`. If so, display
a `Run workflow` button to allow the user to manually trigger the run.
* Providing a form that allows users to select target brach or tag, and
these parameters can be configured in yaml
* Simple form validation, `required` input cannot be empty
* Add a route `/actions/run`, and an `actions.Run` method to handle
* Add `WorkflowDispatchPayload` struct to pass the Webhook event payload
to the runner when triggered, this payload carries the `inputs` values
and other fields, doc: [workflow_dispatch
payload](https://docs.github.com/en/webhooks/webhook-events-and-payloads#workflow_dispatch)
Other PRs
* the `Workflow.WorkflowDispatchConfig()` method still return non-nil
when workflow_dispatch is not defined. I submitted a PR
https://gitea.com/gitea/act/pulls/85 to fix it. Still waiting for them
to process.
Behavior should be same with github, but may cause confusion. Here's a
quick reminder.
*
[Doc](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch)
Said: This event will `only` trigger a workflow run if the workflow file
is `on the default branch`.
* If the workflow yaml file only exists in a non-default branch, it
cannot be triggered. (It will not even show up in the workflow list)
* If the same workflow yaml file exists in each branch at the same time,
the version of the default branch is used. Even if `Use workflow from`
selects another branch
![image](https://github.com/go-gitea/gitea/assets/3114995/4bf596f3-426b-48e8-9b8f-0f6d18defd79)
```yaml
name: Docker Image CI
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
boolean_default_true:
description: 'Test scenario tags'
required: true
type: boolean
default: true
boolean_default_false:
description: 'Test scenario tags'
required: false
type: boolean
default: false
environment:
description: 'Environment to run tests against'
type: environment
required: true
default: 'environment values'
number_required_1:
description: 'number '
type: number
required: true
default: '100'
number_required_2:
description: 'number'
type: number
required: true
default: '100'
number_required_3:
description: 'number'
type: number
required: true
default: '100'
number_1:
description: 'number'
type: number
required: false
number_2:
description: 'number'
type: number
required: false
number_3:
description: 'number'
type: number
required: false
env:
inputs_logLevel: ${{ inputs.logLevel }}
inputs_tags: ${{ inputs.tags }}
inputs_boolean_default_true: ${{ inputs.boolean_default_true }}
inputs_boolean_default_false: ${{ inputs.boolean_default_false }}
inputs_environment: ${{ inputs.environment }}
inputs_number_1: ${{ inputs.number_1 }}
inputs_number_2: ${{ inputs.number_2 }}
inputs_number_3: ${{ inputs.number_3 }}
inputs_number_required_1: ${{ inputs.number_required_1 }}
inputs_number_required_2: ${{ inputs.number_required_2 }}
inputs_number_required_3: ${{ inputs.number_required_3 }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ls -la
- run: env | grep inputs
- run: echo ${{ inputs.logLevel }}
- run: echo ${{ inputs.boolean_default_false }}
```
![image](https://github.com/go-gitea/gitea/assets/3114995/a58a842d-a0ff-4618-bc6d-83a9596d07c8)
![image](https://github.com/go-gitea/gitea/assets/3114995/44a7cca5-7bd4-42a9-8723-91751a501c88)
---------
Co-authored-by: TKaxv_7S <954067342@qq.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Denys Konovalov <kontakt@denyskon.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2024-08-19 10:38:40 +08:00
target_ref_not_exist = Target ref does not exist %s
2014-11-07 11:06:41 +08:00
2024-01-15 14:51:43 +08:00
admin_cannot_delete_self = You cannot delete yourself when you are an admin. Please remove your admin privileges first.
2014-09-26 07:33:39 +08:00
[user]
2018-04-19 22:24:31 +08:00
change_avatar = Change your avatar…
2023-05-06 18:10:30 +08:00
joined_on = Joined on %s
2014-09-26 07:33:39 +08:00
repositories = Repositories
activity = Public Activity
followers = Followers
2018-04-19 22:24:31 +08:00
starred = Starred Repositories
2021-04-16 00:53:57 +08:00
watched = Watched Repositories
2022-10-11 07:12:03 +08:00
code = Code
2020-08-17 11:07:38 +08:00
projects = Projects
2023-05-09 13:57:24 +08:00
overview = Overview
2014-09-26 07:33:39 +08:00
following = Following
2015-12-21 20:24:11 +08:00
follow = Follow
unfollow = Unfollow
2019-03-19 10:28:10 +08:00
user_bio = Biography
2020-06-06 04:01:53 +08:00
disabled_public_activity = This user has disabled the public visibility of the activity.
2023-04-08 18:05:21 +08:00
email_visibility.limited = Your email address is visible to all authenticated users
email_visibility.private = Your email address is only visible to you and administrators
2023-07-31 16:44:45 +08:00
show_on_map = Show this place on a map
2023-08-16 18:12:03 +08:00
settings = User Settings
2014-09-26 07:33:39 +08:00
2023-04-18 06:04:26 +08:00
form.name_reserved = The username "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a username.
form.name_chars_not_allowed = User name "%s" contains invalid characters.
2015-03-27 05:11:47 +08:00
2024-03-04 16:16:03 +08:00
block.block = Block
block.block.user = Block user
block.block.org = Block user for organization
block.block.failure = Failed to block user: %s
block.unblock = Unblock
block.unblock.failure = Failed to unblock user: %s
block.blocked = You have blocked this user.
block.title = Block a user
block.info = Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
block.info_1 = Blocking a user prevents the following actions on your account and your repositories:
block.info_2 = following your account
block.info_3 = send you notifications by @mentioning your username
block.info_4 = inviting you as a collaborator to their repositories
block.info_5 = starring, forking or watching on repositories
block.info_6 = opening and commenting on issues or pull requests
block.info_7 = reacting on your comments in issues or pull requests
block.user_to_block = User to block
block.note = Note
block.note.title = Optional note:
block.note.info = The note is not visible to the blocked user.
block.note.edit = Edit note
block.list = Blocked users
2024-03-04 22:31:59 +08:00
block.list.none = You have not blocked any users.
2024-03-04 16:16:03 +08:00
2014-07-26 12:24:27 +08:00
[settings]
profile = Profile
2018-05-15 18:07:32 +08:00
account = Account
2021-10-27 23:40:08 +08:00
appearance = Appearance
2014-07-26 12:24:27 +08:00
password = Password
2017-10-16 17:14:12 +08:00
security = Security
2016-08-08 01:27:38 +08:00
avatar = Avatar
2017-04-26 21:10:43 +08:00
ssh_gpg_keys = SSH / GPG Keys
2014-07-26 12:24:27 +08:00
social = Social Accounts
2018-05-15 18:07:32 +08:00
applications = Applications
2018-04-19 22:24:31 +08:00
orgs = Manage Organizations
2017-09-14 19:46:14 +08:00
repos = Repositories
2014-08-14 16:51:55 +08:00
delete = Delete Account
2023-12-08 06:38:55 +08:00
twofa = Two-Factor Authentication (TOTP)
2018-04-19 22:24:31 +08:00
account_link = Linked Accounts
organization = Organizations
2023-08-08 23:25:05 +08:00
uid = UID
2023-12-08 06:38:55 +08:00
webauthn = Two-Factor Authentication (Security Keys)
2014-07-26 12:24:27 +08:00
public_profile = Public Profile
2023-08-08 23:25:05 +08:00
biography_placeholder = Tell us a little bit about yourself! (You can use Markdown)
2023-07-31 16:44:45 +08:00
location_placeholder = Share your approximate location with others
2023-08-08 23:25:05 +08:00
profile_desc = Control how your profile is show to other users. Your primary email address will be used for notifications, password recovery and web-based Git operations.
2024-10-06 04:41:38 +08:00
password_username_disabled = You are not allowed to change their username. Please contact your site administrator for more details.
password_full_name_disabled = You are not allowed to change their full name. Please contact your site administrator for more details.
2014-07-26 12:24:27 +08:00
full_name = Full Name
website = Website
location = Location
2019-01-10 01:22:57 +08:00
update_theme = Update Theme
2014-07-26 12:24:27 +08:00
update_profile = Update Profile
2021-10-27 23:40:08 +08:00
update_language = Update Language
2023-04-18 06:04:26 +08:00
update_language_not_found = Language "%s" is not available.
2021-10-27 23:40:08 +08:00
update_language_success = Language has been updated.
2017-05-18 09:03:43 +08:00
update_profile_success = Your profile has been updated.
2018-04-19 22:24:31 +08:00
change_username = Your username has been changed.
2023-07-25 19:00:32 +08:00
change_username_prompt = Note: Changing your username also changes your account URL.
2023-07-24 12:17:32 +08:00
change_username_redirect_prompt = The old username will redirect until someone claims it.
2014-09-27 10:33:30 +08:00
continue = Continue
cancel = Cancel
2018-05-05 08:28:30 +08:00
language = Language
2019-01-10 01:22:57 +08:00
ui = Theme
2022-01-22 01:59:26 +08:00
hidden_comment_types = Hidden comment types
2024-04-17 18:24:08 +08:00
hidden_comment_types_description = Comment types checked here will not be shown inside issue pages. Checking "Label" for example removes all "{user} added/removed {label}" comments.
2023-04-12 19:59:17 +08:00
hidden_comment_types.ref_tooltip = Comments where this issue was referenced from another issue/commit/…
hidden_comment_types.issue_ref_tooltip = Comments where the user changes the branch/tag associated with the issue
2022-01-22 01:59:26 +08:00
comment_type_group_reference = Reference
comment_type_group_label = Label
comment_type_group_milestone = Milestone
comment_type_group_assignee = Assignee
comment_type_group_title = Title
comment_type_group_branch = Branch
comment_type_group_time_tracking = Time Tracking
comment_type_group_deadline = Deadline
comment_type_group_dependency = Dependency
comment_type_group_lock = Lock Status
comment_type_group_review_request = Review request
comment_type_group_pull_request_push = Added commits
comment_type_group_project = Project
comment_type_group_issue_ref = Issue reference
saved_successfully = Your settings were saved successfully.
2020-06-06 04:01:53 +08:00
privacy = Privacy
2023-06-22 16:58:16 +08:00
keep_activity_private = Hide Activity from profile page
2020-06-06 04:01:53 +08:00
keep_activity_private_popup = Makes the activity visible only for you and the admins
2014-11-22 01:51:36 +08:00
2018-04-19 22:24:31 +08:00
lookup_avatar_by_mail = Look Up Avatar by Email Address
2016-08-08 01:27:38 +08:00
federated_avatar_lookup = Federated Avatar Lookup
enable_custom_avatar = Use Custom Avatar
2014-11-21 23:58:08 +08:00
choose_new_avatar = Choose new avatar
2018-04-19 22:24:31 +08:00
update_avatar = Update Avatar
2016-03-05 13:51:51 +08:00
delete_current_avatar = Delete Current Avatar
2018-04-19 22:24:31 +08:00
uploaded_avatar_not_a_image = The uploaded file is not an image.
2023-09-07 21:35:45 +08:00
uploaded_avatar_is_too_big = The uploaded file size (%d KiB) exceeds the maximum size (%d KiB).
2018-04-19 22:24:31 +08:00
update_avatar_success = Your avatar has been updated.
2021-11-17 03:13:13 +08:00
update_user_avatar_success = The user's avatar has been updated.
2024-11-28 10:15:59 +08:00
cropper_prompt = You can edit the image before saving. The edited image will be saved as PNG.
2014-07-26 12:24:27 +08:00
2018-04-19 22:24:31 +08:00
change_password = Update Password
2014-07-26 12:24:27 +08:00
old_password = Current Password
new_password = New Password
2023-08-08 23:25:05 +08:00
retype_new_password = Confirm New Password
2018-04-19 22:24:31 +08:00
password_incorrect = The current password is incorrect.
change_password_success = Your password has been updated. Sign in using your new password from now on.
2023-01-09 02:25:28 +08:00
password_change_disabled = Non-local users cannot update their password through the Gitea web interface.
2014-07-26 12:24:27 +08:00
2015-12-02 12:21:24 +08:00
emails = Email Addresses
2018-04-19 22:24:31 +08:00
manage_emails = Manage Email Addresses
2019-01-10 01:22:57 +08:00
manage_themes = Select default theme
2018-04-19 22:24:31 +08:00
manage_openid = Manage OpenID Addresses
2023-08-08 23:25:05 +08:00
email_desc = Your primary email address will be used for notifications, password recovery and, provided that it is not hidden, web-based Git operations.
2019-01-10 01:22:57 +08:00
theme_desc = This will be your default theme across the site.
2024-04-24 00:18:41 +08:00
theme_colorblindness_help = Colorblindness Theme Support
theme_colorblindness_prompt = Gitea just gets some themes with basic colorblindness support, which only have a few colors defined. The work is still in progress. More improvements could be done by defining more colors in the theme CSS files.
2014-12-22 15:41:29 +08:00
primary = Primary
2020-03-03 02:25:36 +08:00
activated = Activated
requires_activation = Requires activation
2018-04-19 22:24:31 +08:00
primary_email = Make Primary
2020-03-03 02:25:36 +08:00
activate_email = Send Activation
activations_pending = Activations Pending
2023-06-26 12:52:49 +08:00
can_not_add_email_activations_pending = There is a pending activation, try again in a few minutes if you want to add a new email.
2018-04-19 22:24:31 +08:00
delete_email = Remove
email_deletion = Remove Email Address
email_deletion_desc = The email address and related information will be removed from your account. Git commits by this email address will remain unchanged. Continue?
email_deletion_success = The email address has been removed.
2019-01-10 01:22:57 +08:00
theme_update_success = Your theme was updated.
theme_update_error = The selected theme does not exist.
2018-04-19 22:24:31 +08:00
openid_deletion = Remove OpenID Address
openid_deletion_desc = Removing this OpenID address from your account will prevent you from signing in with it. Continue?
openid_deletion_success = The OpenID address has been removed.
add_new_email = Add New Email Address
add_new_openid = Add New OpenID URI
add_email = Add Email Address
2017-03-17 22:16:08 +08:00
add_openid = Add OpenID URI
2023-04-18 06:04:26 +08:00
add_email_confirmation_sent = A confirmation email has been sent to "%s". Please check your inbox within the next %s to confirm your email address.
2018-04-19 22:24:31 +08:00
add_email_success = The new email address has been added.
2020-04-10 01:22:17 +08:00
email_preference_set_success = Email preference has been set successfully.
2018-04-19 22:24:31 +08:00
add_openid_success = The new OpenID address has been added.
keep_email_private = Hide Email Address
2023-10-25 19:12:36 +08:00
keep_email_private_popup = This will hide your email address from your profile, as well as when you make a pull request or edit a file using the web interface. Pushed commits will not be modified. Use %s in commits to associate them with your account.
2018-04-19 22:24:31 +08:00
openid_desc = OpenID lets you delegate authentication to an external provider.
2014-12-22 15:11:30 +08:00
2014-07-26 12:24:27 +08:00
manage_ssh_keys = Manage SSH Keys
2020-10-11 08:38:09 +08:00
manage_ssh_principals = Manage SSH Certificate Principals
2017-04-26 21:10:43 +08:00
manage_gpg_keys = Manage GPG Keys
2014-07-26 12:24:27 +08:00
add_key = Add Key
2018-04-19 22:24:31 +08:00
ssh_desc = These public SSH keys are associated with your account. The corresponding private keys allow full access to your repositories.
2020-10-11 08:38:09 +08:00
principal_desc = These SSH certificate principals are associated with your account and allow full access to your repositories.
2018-04-19 22:24:31 +08:00
gpg_desc = These public GPG keys are associated with your account. Keep your private keys safe as they allow commits to be verified.
2017-11-02 00:03:10 +08:00
ssh_helper = <strong>Need help?</strong> Have a look at GitHub's guide to <a href="%s">create your own SSH keys</a> or solve <a href="%s">common problems</a> you may encounter using SSH.
gpg_helper = <strong>Need help?</strong> Have a look at GitHub's guide <a href="%s">about GPG</a>.
2014-07-26 12:24:27 +08:00
add_new_key = Add SSH Key
2017-04-26 21:10:43 +08:00
add_new_gpg_key = Add GPG Key
2021-01-21 04:36:55 +08:00
key_content_ssh_placeholder = Begins with 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'
2020-08-20 23:51:34 +08:00
key_content_gpg_placeholder = Begins with '-----BEGIN PGP PUBLIC KEY BLOCK-----'
2020-10-11 08:38:09 +08:00
add_new_principal = Add Principal
2019-02-04 07:56:53 +08:00
ssh_key_been_used = This SSH key has already been added to the server.
2020-10-11 08:38:09 +08:00
ssh_key_name_used = An SSH key with same name already exists on your account.
ssh_principal_been_used = This principal has already been added to the server.
2018-04-19 22:24:31 +08:00
gpg_key_id_used = A public GPG key with same ID already exists.
2021-07-13 21:28:07 +08:00
gpg_no_key_email_found = This GPG key does not match any activated email address associated with your account. It may still be added if you sign the provided token.
gpg_key_matched_identities = Matched Identities:
2021-07-14 18:50:39 +08:00
gpg_key_matched_identities_long = The embedded identities in this key match the following activated email addresses for this user. Commits matching these email addresses can be verified with this key.
2021-07-13 21:28:07 +08:00
gpg_key_verified = Verified Key
gpg_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user in addition to any matched identities for this key.
gpg_key_verify = Verify
gpg_invalid_token_signature = The provided GPG key, signature and token do not match or token is out-of-date.
gpg_token_required = You must provide a signature for the below token
gpg_token = Token
gpg_token_help = You can generate a signature using:
gpg_token_signature = Armored GPG signature
key_signature_gpg_placeholder = Begins with '-----BEGIN PGP SIGNATURE-----'
2023-04-18 06:04:26 +08:00
verify_gpg_key_success = GPG key "%s" has been verified.
2021-12-19 13:37:18 +08:00
ssh_key_verified = Verified Key
ssh_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user.
ssh_key_verify = Verify
ssh_invalid_token_signature = The provided SSH key, signature or token do not match or token is out-of-date.
ssh_token_required = You must provide a signature for the below token
ssh_token = Token
ssh_token_help = You can generate a signature using:
ssh_token_signature = Armored SSH signature
key_signature_ssh_placeholder = Begins with '-----BEGIN SSH SIGNATURE-----'
2023-04-18 06:04:26 +08:00
verify_ssh_key_success = SSH key "%s" has been verified.
2017-04-26 21:10:43 +08:00
subkeys = Subkeys
key_id = Key ID
2014-07-26 12:24:27 +08:00
key_name = Key Name
key_content = Content
2020-10-11 08:38:09 +08:00
principal_content = Content
2023-04-18 06:04:26 +08:00
add_key_success = The SSH key "%s" has been added.
add_gpg_key_success = The GPG key "%s" has been added.
add_principal_success = The SSH certificate principal "%s" has been added.
2018-04-19 22:24:31 +08:00
delete_key = Remove
ssh_key_deletion = Remove SSH Key
gpg_key_deletion = Remove GPG Key
2020-10-11 08:38:09 +08:00
ssh_principal_deletion = Remove SSH Certificate Principal
2018-04-19 22:24:31 +08:00
ssh_key_deletion_desc = Removing an SSH key revokes its access to your account. Continue?
gpg_key_deletion_desc = Removing a GPG key un-verifies commits signed by it. Continue?
2020-10-11 08:38:09 +08:00
ssh_principal_deletion_desc = Removing a SSH Certificate Principal revokes its access to your account. Continue?
2018-04-19 22:24:31 +08:00
ssh_key_deletion_success = The SSH key has been removed.
gpg_key_deletion_success = The GPG key has been removed.
2020-10-11 08:38:09 +08:00
ssh_principal_deletion_success = The principal has been removed.
2023-05-06 21:11:27 +08:00
added_on = Added on %s
2023-05-06 20:37:02 +08:00
valid_until_date = Valid until %s
2017-06-24 14:37:03 +08:00
valid_forever = Valid forever
2014-07-26 12:24:27 +08:00
last_used = Last used on
no_activity = No recent activity
2018-01-07 06:55:53 +08:00
can_read_info = Read
can_write_info = Write
2017-05-18 09:03:43 +08:00
key_state_desc = This key has been used in the last 7 days
token_state_desc = This token has been used in the last 7 days
2020-10-11 08:38:09 +08:00
principal_state_desc = This principal has been used in the last 7 days
2017-03-20 16:31:08 +08:00
show_openid = Show on profile
hide_openid = Hide from profile
2018-04-19 22:24:31 +08:00
ssh_disabled = SSH Disabled
2023-04-11 01:22:51 +08:00
ssh_signonly = SSH is currently disabled so these keys are only used for commit signature verification.
2020-12-26 12:24:47 +08:00
ssh_externally_managed = This SSH key is externally managed for this user
2014-07-26 12:24:27 +08:00
manage_social = Manage Associated Social Accounts
2023-08-08 23:25:05 +08:00
social_desc = These social accounts can be used to sign in to your account. Make sure you recognize all of them.
2018-04-19 22:24:31 +08:00
unbind = Unlink
2023-08-08 23:25:05 +08:00
unbind_success = The social account has been removed successfully.
2014-08-10 08:25:02 +08:00
2018-04-19 22:24:31 +08:00
manage_access_token = Manage Access Tokens
2014-11-12 19:48:50 +08:00
generate_new_token = Generate New Token
2018-04-19 22:24:31 +08:00
tokens_desc = These tokens grant access to your account using the Gitea API.
2014-11-12 19:48:50 +08:00
token_name = Token Name
generate_token = Generate Token
2018-04-19 22:24:31 +08:00
generate_token_success = Your new token has been generated. Copy it now as it will not be shown again.
2020-04-14 03:02:48 +08:00
generate_token_name_duplicate = <strong>%s</strong> has been used as an application name already. Please use a new one.
2014-11-12 19:48:50 +08:00
delete_token = Delete
2018-04-19 22:24:31 +08:00
access_token_deletion = Delete Access Token
2022-06-08 08:28:10 +08:00
access_token_deletion_cancel_action = Cancel
access_token_deletion_confirm_action = Delete
access_token_deletion_desc = Deleting a token will revoke access to your account for applications using it. This cannot be undone. Continue?
2018-04-19 22:24:31 +08:00
delete_token_success = The token has been deleted. Applications using it no longer have access to your account.
Redesign Scoped Access Tokens (#24767)
## Changes
- Adds the following high level access scopes, each with `read` and
`write` levels:
- `activitypub`
- `admin` (hidden if user is not a site admin)
- `misc`
- `notification`
- `organization`
- `package`
- `issue`
- `repository`
- `user`
- Adds new middleware function `tokenRequiresScopes()` in addition to
`reqToken()`
- `tokenRequiresScopes()` is used for each high-level api section
- _if_ a scoped token is present, checks that the required scope is
included based on the section and HTTP method
- `reqToken()` is used for individual routes
- checks that required authentication is present (but does not check
scope levels as this will already have been handled by
`tokenRequiresScopes()`
- Adds migration to convert old scoped access tokens to the new set of
scopes
- Updates the user interface for scope selection
### User interface example
<img width="903" alt="Screen Shot 2023-05-31 at 1 56 55 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/654766ec-2143-4f59-9037-3b51600e32f3">
<img width="917" alt="Screen Shot 2023-05-31 at 1 56 43 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/1ad64081-012c-4a73-b393-66b30352654c">
## tokenRequiresScopes Design Decision
- `tokenRequiresScopes()` was added to more reliably cover api routes.
For an incoming request, this function uses the given scope category
(say `AccessTokenScopeCategoryOrganization`) and the HTTP method (say
`DELETE`) and verifies that any scoped tokens in use include
`delete:organization`.
- `reqToken()` is used to enforce auth for individual routes that
require it. If a scoped token is not present for a request,
`tokenRequiresScopes()` will not return an error
## TODO
- [x] Alphabetize scope categories
- [x] Change 'public repos only' to a radio button (private vs public).
Also expand this to organizations
- [X] Disable token creation if no scopes selected. Alternatively, show
warning
- [x] `reqToken()` is missing from many `POST/DELETE` routes in the api.
`tokenRequiresScopes()` only checks that a given token has the correct
scope, `reqToken()` must be used to check that a token (or some other
auth) is present.
- _This should be addressed in this PR_
- [x] The migration should be reviewed very carefully in order to
minimize access changes to existing user tokens.
- _This should be addressed in this PR_
- [x] Link to api to swagger documentation, clarify what
read/write/delete levels correspond to
- [x] Review cases where more than one scope is needed as this directly
deviates from the api definition.
- _This should be addressed in this PR_
- For example:
```go
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_service.UserAssignmentAPI())
```
## Future improvements
- [ ] Add required scopes to swagger documentation
- [ ] Redesign `reqToken()` to be opt-out rather than opt-in
- [ ] Subdivide scopes like `repository`
- [ ] Once a token is created, if it has no scopes, we should display
text instead of an empty bullet point
- [ ] If the 'public repos only' option is selected, should read
categories be selected by default
Closes #24501
Closes #24799
Co-authored-by: Jonathan Tran <jon@allspice.io>
Co-authored-by: Kyle D <kdumontnu@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
2023-06-05 02:57:16 +08:00
repo_and_org_access = Repository and Organization Access
permissions_public_only = Public only
permissions_access_all = All (public, private, and limited)
select_permissions = Select permissions
2024-04-17 23:58:37 +08:00
permission_not_set = Not set
2023-06-13 15:55:48 +08:00
permission_no_access = No Access
permission_read = Read
permission_write = Read and Write
access_token_desc = Selected token permissions limit authorization only to the corresponding <a %s>API</a> routes. Read the <a %s>documentation</a> for more information.
Redesign Scoped Access Tokens (#24767)
## Changes
- Adds the following high level access scopes, each with `read` and
`write` levels:
- `activitypub`
- `admin` (hidden if user is not a site admin)
- `misc`
- `notification`
- `organization`
- `package`
- `issue`
- `repository`
- `user`
- Adds new middleware function `tokenRequiresScopes()` in addition to
`reqToken()`
- `tokenRequiresScopes()` is used for each high-level api section
- _if_ a scoped token is present, checks that the required scope is
included based on the section and HTTP method
- `reqToken()` is used for individual routes
- checks that required authentication is present (but does not check
scope levels as this will already have been handled by
`tokenRequiresScopes()`
- Adds migration to convert old scoped access tokens to the new set of
scopes
- Updates the user interface for scope selection
### User interface example
<img width="903" alt="Screen Shot 2023-05-31 at 1 56 55 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/654766ec-2143-4f59-9037-3b51600e32f3">
<img width="917" alt="Screen Shot 2023-05-31 at 1 56 43 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/1ad64081-012c-4a73-b393-66b30352654c">
## tokenRequiresScopes Design Decision
- `tokenRequiresScopes()` was added to more reliably cover api routes.
For an incoming request, this function uses the given scope category
(say `AccessTokenScopeCategoryOrganization`) and the HTTP method (say
`DELETE`) and verifies that any scoped tokens in use include
`delete:organization`.
- `reqToken()` is used to enforce auth for individual routes that
require it. If a scoped token is not present for a request,
`tokenRequiresScopes()` will not return an error
## TODO
- [x] Alphabetize scope categories
- [x] Change 'public repos only' to a radio button (private vs public).
Also expand this to organizations
- [X] Disable token creation if no scopes selected. Alternatively, show
warning
- [x] `reqToken()` is missing from many `POST/DELETE` routes in the api.
`tokenRequiresScopes()` only checks that a given token has the correct
scope, `reqToken()` must be used to check that a token (or some other
auth) is present.
- _This should be addressed in this PR_
- [x] The migration should be reviewed very carefully in order to
minimize access changes to existing user tokens.
- _This should be addressed in this PR_
- [x] Link to api to swagger documentation, clarify what
read/write/delete levels correspond to
- [x] Review cases where more than one scope is needed as this directly
deviates from the api definition.
- _This should be addressed in this PR_
- For example:
```go
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_service.UserAssignmentAPI())
```
## Future improvements
- [ ] Add required scopes to swagger documentation
- [ ] Redesign `reqToken()` to be opt-out rather than opt-in
- [ ] Subdivide scopes like `repository`
- [ ] Once a token is created, if it has no scopes, we should display
text instead of an empty bullet point
- [ ] If the 'public repos only' option is selected, should read
categories be selected by default
Closes #24501
Closes #24799
Co-authored-by: Jonathan Tran <jon@allspice.io>
Co-authored-by: Kyle D <kdumontnu@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
2023-06-05 02:57:16 +08:00
at_least_one_permission = You must select at least one permission to create a token
permissions_list = Permissions:
2014-11-12 19:48:50 +08:00
2019-03-09 00:42:50 +08:00
manage_oauth2_applications = Manage OAuth2 Applications
edit_oauth2_application = Edit OAuth2 Application
oauth2_applications_desc = OAuth2 applications enables your third-party application to securely authenticate users at this Gitea instance.
remove_oauth2_application = Remove OAuth2 Application
2019-06-05 22:16:06 +08:00
remove_oauth2_application_desc = Removing an OAuth2 application will revoke access to all signed access tokens. Continue?
2019-03-09 00:42:50 +08:00
remove_oauth2_application_success = The application has been deleted.
create_oauth2_application = Create a new OAuth2 Application
create_oauth2_application_button = Create Application
2023-08-08 23:25:05 +08:00
create_oauth2_application_success = You have successfully created a new OAuth2 application.
update_oauth2_application_success = You have successfully updated the OAuth2 application.
2019-03-09 00:42:50 +08:00
oauth2_application_name = Application Name
2022-10-24 15:59:24 +08:00
oauth2_confidential_client = Confidential Client. Select for apps that keep the secret confidential, such as web apps. Do not select for native apps including desktop and mobile apps.
2024-07-20 02:28:30 +08:00
oauth2_skip_secondary_authorization = Skip authorization for public clients after granting access once. <strong>May pose a security risk.</strong>
2023-06-05 15:00:12 +08:00
oauth2_redirect_uris = Redirect URIs. Please use a new line for every URI.
2019-03-09 00:42:50 +08:00
save_application = Save
oauth2_client_id = Client ID
oauth2_client_secret = Client Secret
oauth2_regenerate_secret = Regenerate Secret
oauth2_regenerate_secret_hint = Lost your secret?
2023-08-08 23:25:05 +08:00
oauth2_client_secret_hint = The secret will not be shown again after you leave or refresh this page. Please ensure that you have saved it.
2019-03-09 00:42:50 +08:00
oauth2_application_edit = Edit
oauth2_application_create_description = OAuth2 applications gives your third-party application access to user accounts on this instance.
2023-08-08 23:25:05 +08:00
oauth2_application_remove_description = Removing an OAuth2 application will prevent it from accessing authorized user accounts on this instance. Continue?
2023-10-22 19:59:31 +08:00
oauth2_application_locked = Gitea pre-registers some OAuth2 applications on startup if enabled in config. To prevent unexpected behavior, these can neither be edited nor removed. Please refer to the OAuth2 documentation for more information.
2019-03-09 00:42:50 +08:00
2019-04-17 16:18:16 +08:00
authorized_oauth2_applications = Authorized OAuth2 Applications
2023-08-08 23:25:05 +08:00
authorized_oauth2_applications_description = You have granted access to your personal Gitea account to these third party applications. Please revoke access for applications you no longer need.
2019-04-17 16:18:16 +08:00
revoke_key = Revoke
revoke_oauth2_grant = Revoke Access
revoke_oauth2_grant_description = Revoking access for this third party application will prevent this application from accessing your data. Are you sure?
2023-08-08 23:25:05 +08:00
revoke_oauth2_grant_success = Access revoked successfully.
2019-04-17 16:18:16 +08:00
2023-12-08 06:38:55 +08:00
twofa_desc = To protect your account against password theft, you can use a smartphone or another device for receiving time-based one-time passwords ("TOTP").
twofa_recovery_tip = If you lose your device, you will be able to use a single-use recovery key to regain access to your account.
2017-05-18 09:03:43 +08:00
twofa_is_enrolled = Your account is currently <strong>enrolled</strong> in two-factor authentication.
2017-03-09 21:24:57 +08:00
twofa_not_enrolled = Your account is not currently enrolled in two-factor authentication.
2018-04-19 22:24:31 +08:00
twofa_disable = Disable Two-Factor Authentication
2023-12-08 06:38:55 +08:00
twofa_scratch_token_regenerate = Regenerate Single-Use Recovery Key
twofa_scratch_token_regenerated = Your single-use recovery key is now %s. Store it in a safe place, as it will not be shown again.
2018-04-19 22:24:31 +08:00
twofa_enroll = Enroll into Two-Factor Authentication
twofa_disable_note = You can disable two-factor authentication if needed.
twofa_disable_desc = Disabling two-factor authentication will make your account less secure. Continue?
2023-12-08 06:38:55 +08:00
regenerate_scratch_token_desc = If you misplaced your recovery key or have already used it to sign in, you can reset it here.
2017-01-16 10:14:29 +08:00
twofa_disabled = Two-factor authentication has been disabled.
scan_this_image = Scan this image with your authentication application:
or_enter_secret = Or enter the secret: %s
2018-04-19 22:24:31 +08:00
then_enter_passcode = And enter the passcode shown in the application:
passcode_invalid = The passcode is incorrect. Try again.
2023-12-08 06:38:55 +08:00
twofa_enrolled = Your account has been successfully enrolled. Store your single-use recovery key (%s) in a safe place, as it will not be shown again.
2021-01-19 04:38:41 +08:00
twofa_failed_get_secret = Failed to get secret.
2017-01-16 10:14:29 +08:00
2024-09-03 02:36:24 +08:00
webauthn_desc = Security keys are hardware devices containing cryptographic keys. They can be used for two-factor authentication. Security keys must support the <a rel="noreferrer" target="_blank" href="%s">WebAuthn Authenticator</a> standard.
2022-01-14 23:03:31 +08:00
webauthn_register_key = Add Security Key
webauthn_nickname = Nickname
webauthn_delete_key = Remove Security Key
webauthn_delete_key_desc = If you remove a security key you can no longer sign in with it. Continue?
2023-12-08 06:38:55 +08:00
webauthn_key_loss_warning = If you lose your security keys, you will lose access to your account.
webauthn_alternative_tip = You may want to configure an additional authentication method.
2018-05-19 22:12:37 +08:00
2018-04-19 22:24:31 +08:00
manage_account_links = Manage Linked Accounts
manage_account_links_desc = These external accounts are linked to your Gitea account.
account_links_not_available = There are currently no external accounts linked to your Gitea account.
2022-05-29 16:19:56 +08:00
link_account = Link Account
2018-04-19 22:24:31 +08:00
remove_account_link = Remove Linked Account
remove_account_link_desc = Removing a linked account will revoke its access to your Gitea account. Continue?
remove_account_link_success = The linked account has been removed.
2017-02-22 15:14:37 +08:00
2023-08-08 23:25:05 +08:00
hooks.desc = Add webhooks which will be triggered for <strong>all repositories</strong> that you own.
2023-03-10 22:28:32 +08:00
2017-06-02 16:43:44 +08:00
orgs_none = You are not a member of any organizations.
2023-08-08 23:25:05 +08:00
repos_none = You do not own any repositories.
2017-06-02 16:43:44 +08:00
2014-07-26 12:24:27 +08:00
delete_account = Delete Your Account
2023-01-09 02:25:28 +08:00
delete_prompt = This operation will permanently delete your user account. It <strong>CANNOT</strong> be undone.
2021-01-22 10:56:19 +08:00
delete_with_all_comments = Your account is younger than %s. To avoid ghost comments, all issue/PR comments will be deleted with it.
2014-07-26 12:24:27 +08:00
confirm_delete_account = Confirm Deletion
2018-04-19 22:24:31 +08:00
delete_account_title = Delete User Account
delete_account_desc = Are you sure you want to permanently delete this user account?
2014-07-26 12:24:27 +08:00
2019-08-29 22:05:42 +08:00
email_notifications.enable = Enable Email Notifications
email_notifications.onmention = Only Email on Mention
email_notifications.disable = Disable Email Notifications
email_notifications.submit = Set Email Preference
2022-07-28 23:28:46 +08:00
email_notifications.andyourown = And Your Own Notifications
2019-08-29 22:05:42 +08:00
2021-06-27 03:53:14 +08:00
visibility = User visibility
visibility.public = Public
2023-04-08 18:05:21 +08:00
visibility.public_tooltip = Visible to everyone
2021-06-27 03:53:14 +08:00
visibility.limited = Limited
2023-08-08 23:25:05 +08:00
visibility.limited_tooltip = Visible only to authenticated users
2021-06-27 03:53:14 +08:00
visibility.private = Private
2023-08-08 23:25:05 +08:00
visibility.private_tooltip = Visible only to members of organizations you have joined
2021-06-27 03:53:14 +08:00
2014-07-26 12:24:27 +08:00
[repo]
2023-10-22 19:59:31 +08:00
new_repo_helper = A repository contains all project files, including revision history. Already hosting one elsewhere? <a href="%s">Migrate repository.</a>
2014-07-26 12:24:27 +08:00
owner = Owner
2020-12-21 21:12:13 +08:00
owner_helper = Some organizations may not show up in the dropdown due to a maximum repository count limit.
2014-07-26 12:24:27 +08:00
repo_name = Repository Name
2018-04-19 22:24:31 +08:00
repo_name_helper = Good repository names use short, memorable and unique keywords.
2019-11-15 07:52:18 +08:00
repo_size = Repository Size
2019-11-11 23:15:29 +08:00
template = Template
template_select = Select a template.
template_helper = Make repository a template
template_description = Template repositories let users generate new repositories with the same directory structure, files, and optional settings.
2014-07-26 12:24:27 +08:00
visibility = Visibility
2019-09-05 17:13:51 +08:00
visibility_description = Only the owner or the organization members if they have rights, will be able to see it.
2023-08-08 23:25:05 +08:00
visibility_helper = Make repository private
2018-07-04 19:43:21 +08:00
visibility_helper_forced = Your site administrator forces new repositories to be private.
visibility_fork_helper = (Changing this will affect all forks.)
2018-07-04 07:52:36 +08:00
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener noreferrer" href="%s">Help</a>.
2014-11-06 12:30:04 +08:00
fork_repo = Fork Repository
fork_from = Fork From
2021-12-13 09:59:09 +08:00
already_forked = You've already forked %s
fork_to_different_account = Fork to a different account
2018-07-04 19:43:21 +08:00
fork_visibility_helper = The visibility of a forked repository cannot be changed.
2023-09-29 09:48:39 +08:00
fork_branch = Branch to be cloned to the fork
all_branches = All branches
2024-12-03 04:19:27 +08:00
view_all_branches = View all branches
view_all_tags = View all tags
2023-07-14 15:56:20 +08:00
fork_no_valid_owners = This repository can not be forked because there are no valid owners.
2024-03-04 16:16:03 +08:00
fork.blocked_user = Cannot fork the repository because you are blocked by the repository owner.
2019-11-11 23:15:29 +08:00
use_template = Use this template
2024-02-24 21:12:17 +08:00
open_with_editor = Open with %s
2021-08-12 20:21:34 +08:00
download_zip = Download ZIP
download_tar = Download TAR.GZ
2021-08-25 00:47:09 +08:00
download_bundle = Download BUNDLE
2019-11-11 23:15:29 +08:00
generate_repo = Generate Repository
generate_from = Generate From
2014-07-26 12:24:27 +08:00
repo_desc = Description
2021-02-21 17:59:31 +08:00
repo_desc_helper = Enter short description (optional)
2024-12-06 22:29:04 +08:00
repo_no_desc = No description provided
repo_lang = Languages
2018-04-19 22:24:31 +08:00
repo_gitignore_helper = Select .gitignore templates.
2021-02-21 17:59:31 +08:00
repo_gitignore_helper_desc = Choose which files not to track from a list of templates for common languages. Typical artifacts generated by each language's build tools are included on .gitignore by default.
2019-09-08 16:28:40 +08:00
issue_labels = Issue Labels
issue_labels_helper = Select an issue label set.
2014-07-26 12:24:27 +08:00
license = License
2018-04-19 22:24:31 +08:00
license_helper = Select a license file.
2021-02-21 17:59:31 +08:00
license_helper_desc = A license governs what others can and can't do with your code. Not sure which one is right for your project? See <a target="_blank" rel="noopener noreferrer" href="%s">Choose a license.</a>
2024-10-02 03:25:08 +08:00
multiple_licenses = Multiple Licenses
2024-01-20 00:05:02 +08:00
object_format = Object Format
object_format_helper = Object format of the repository. Cannot be changed later. SHA1 is most compatible.
2018-04-19 22:24:31 +08:00
readme = README
readme_helper = Select a README file template.
2021-02-21 17:59:31 +08:00
readme_helper_desc = This is the place where you can write a complete description for your project.
2018-04-19 22:24:31 +08:00
auto_init = Initialize Repository (Adds .gitignore, License and README)
2021-02-21 17:59:31 +08:00
trust_model_helper = Select trust model for signature verification. Possible options are:
trust_model_helper_collaborator = Collaborator: Trust signatures by collaborators
trust_model_helper_committer = Committer: Trust signatures that match committers
trust_model_helper_collaborator_committer = Collaborator+Committer: Trust signatures by collaborators which match the committer
trust_model_helper_default = Default: Use the default trust model for this installation
2014-07-26 12:24:27 +08:00
create_repo = Create Repository
2014-08-03 01:47:33 +08:00
default_branch = Default Branch
2023-08-29 20:15:19 +08:00
default_branch_label = default
2021-02-21 17:59:31 +08:00
default_branch_helper = The default branch is the base branch for pull requests and code commits.
2016-07-09 13:42:05 +08:00
mirror_prune = Prune
2018-04-19 22:24:31 +08:00
mirror_prune_desc = Remove obsolete remote-tracking references
2022-07-09 03:45:12 +08:00
mirror_interval = Mirror Interval (valid time units are 'h', 'm', 's'). 0 to disable periodic sync. (Minimum interval: %s)
2018-04-19 22:24:31 +08:00
mirror_interval_invalid = The mirror interval is not valid.
2024-01-18 18:27:07 +08:00
mirror_sync = synced
2022-07-09 03:45:12 +08:00
mirror_sync_on_commit = Sync when commits are pushed
2018-04-19 22:24:31 +08:00
mirror_address = Clone From URL
2021-06-15 01:20:43 +08:00
mirror_address_desc = Put any required credentials in the Authorization section.
2023-08-08 23:25:05 +08:00
mirror_address_url_invalid = The provided URL is invalid. You must escape all components of the url correctly.
mirror_address_protocol_invalid = The provided URL is invalid. Only http(s):// or git:// locations can be used for mirroring.
2021-04-09 23:00:32 +08:00
mirror_lfs = Large File Storage (LFS)
2021-04-09 06:25:57 +08:00
mirror_lfs_desc = Activate mirroring of LFS data.
mirror_lfs_endpoint = LFS Endpoint
mirror_lfs_endpoint_desc = Sync will attempt to use the clone url to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
2018-04-19 22:24:31 +08:00
mirror_last_synced = Last Synchronized
2021-05-31 18:46:20 +08:00
mirror_password_placeholder = (Unchanged)
mirror_password_blank_placeholder = (Unset)
mirror_password_help = Change the username to erase a stored password.
2015-11-17 12:28:46 +08:00
watchers = Watchers
stargazers = Stargazers
2023-06-05 21:25:43 +08:00
stars_remove_warning = This will remove all stars from this repository.
2015-11-17 12:28:46 +08:00
forks = Forks
2024-03-22 01:04:03 +08:00
stars = Stars
2017-12-04 07:14:26 +08:00
reactions_more = and %d more
2020-01-17 15:34:37 +08:00
unit_disabled = The site administrator has disabled this repository section.
2020-02-11 17:34:17 +08:00
language_other = Other
2020-09-25 12:09:23 +08:00
adopt_search = Enter username to search for unadopted repositories... (leave blank to find all)
adopt_preexisting_label = Adopt Files
adopt_preexisting = Adopt pre-existing files
adopt_preexisting_content = Create repository from %s
adopt_preexisting_success = Adopted files and created repository from %s
delete_preexisting_label = Delete
delete_preexisting = Delete pre-existing files
delete_preexisting_content = Delete files in %s
delete_preexisting_success = Deleted unadopted files in %s
2021-06-28 07:13:20 +08:00
blame_prior = View blame prior to this change
2023-09-17 01:42:34 +08:00
blame.ignore_revs = Ignoring revisions in <a href="%s">.git-blame-ignore-revs</a>. Click <a href="%s">here to bypass</a> and see the normal blame view.
blame.ignore_revs.failed = Failed to ignore revisions in <a href="%s">.git-blame-ignore-revs</a>.
2023-04-07 08:11:02 +08:00
author_search_tooltip = Shows a maximum of 30 users
2014-07-26 12:24:27 +08:00
2023-09-29 15:42:39 +08:00
tree_path_not_found_commit = Path %[1]s doesn't exist in commit %[2]s
tree_path_not_found_branch = Path %[1]s doesn't exist in branch %[2]s
tree_path_not_found_tag = Path %[1]s doesn't exist in tag %[2]s
2021-03-01 08:47:30 +08:00
transfer.accept = Accept Transfer
2023-10-22 19:59:31 +08:00
transfer.accept_desc = Transfer to "%s"
2021-03-01 08:47:30 +08:00
transfer.reject = Reject Transfer
2023-10-22 19:59:31 +08:00
transfer.reject_desc = Cancel transfer to "%s"
2023-08-08 23:25:05 +08:00
transfer.no_permission_to_accept = You do not have permission to accept this transfer.
transfer.no_permission_to_reject = You do not have permission to reject this transfer.
2021-03-01 08:47:30 +08:00
2020-06-23 04:20:51 +08:00
desc.private = Private
desc.public = Public
2023-10-17 05:06:15 +08:00
desc.template = Template
2020-06-23 04:20:51 +08:00
desc.internal = Internal
desc.archived = Archived
2024-01-20 00:05:02 +08:00
desc.sha256 = SHA256
2020-06-23 04:20:51 +08:00
2019-11-11 23:15:29 +08:00
template.items = Template Items
template.git_content = Git Content (Default Branch)
2019-11-25 01:57:52 +08:00
template.git_hooks = Git Hooks
2021-12-24 11:56:57 +08:00
template.git_hooks_tooltip = You are currently unable to modify or remove Git Hooks once added. Select this only if you trust the template repository.
2019-11-25 01:57:52 +08:00
template.webhooks = Webhooks
2019-11-11 23:15:29 +08:00
template.topics = Topics
2019-11-25 13:17:51 +08:00
template.avatar = Avatar
template.issue_labels = Issue Labels
2019-11-11 23:15:29 +08:00
template.one_item = Must select at least one template item
template.invalid = Must select a template repository
2023-08-08 23:25:05 +08:00
archive.title = This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
archive.title_date = This repository has been archived on %s. You can view files and clone it, but cannot push or open issues or pull requests.
2019-01-24 02:58:38 +08:00
archive.issue.nocomment = This repo is archived. You cannot comment on issues.
archive.pull.nocomment = This repo is archived. You cannot comment on pull requests.
2022-11-11 17:19:12 +08:00
form.reach_limit_of_creation_1 = The owner has already reached the limit of %d repository.
form.reach_limit_of_creation_n = The owner has already reached the limit of %d repositories.
2023-04-18 06:04:26 +08:00
form.name_reserved = The repository name "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a repository name.
2015-03-27 05:11:47 +08:00
2021-06-15 01:20:43 +08:00
need_auth = Authorization
2020-08-28 09:36:37 +08:00
migrate_options = Migration Options
migrate_service = Migration Service
2022-07-12 17:04:15 +08:00
migrate_options_mirror_helper = This repository will be a mirror
2021-04-09 06:25:57 +08:00
migrate_options_lfs = Migrate LFS files
migrate_options_lfs_endpoint.label = LFS Endpoint
migrate_options_lfs_endpoint.description = Migration will attempt to use your Git remote to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
migrate_options_lfs_endpoint.description.local = A local server path is supported too.
2023-08-08 23:25:05 +08:00
migrate_options_lfs_endpoint.placeholder = If left blank, the endpoint will be derived from the clone URL
2019-05-07 09:12:51 +08:00
migrate_items = Migration Items
migrate_items_wiki = Wiki
migrate_items_milestones = Milestones
migrate_items_labels = Labels
migrate_items_issues = Issues
migrate_items_pullrequests = Pull Requests
2020-09-10 02:29:10 +08:00
migrate_items_merge_requests = Merge Requests
2019-05-07 09:12:51 +08:00
migrate_items_releases = Releases
2014-08-01 12:06:19 +08:00
migrate_repo = Migrate Repository
2018-04-19 22:24:31 +08:00
migrate.clone_address = Migrate / Clone From URL
migrate.clone_address_desc = The HTTP(S) or Git 'clone' URL of an existing repository
2021-12-24 11:56:57 +08:00
migrate.github_token_desc = You can put one or more tokens with comma separated here to make migrating faster because of GitHub API rate limit. WARN: Abusing this feature may violate the service provider's policy and lead to account blocking.
2018-04-19 22:24:31 +08:00
migrate.clone_local_path = or a local server path
2015-11-04 07:40:52 +08:00
migrate.permission_denied = You are not allowed to import local repositories.
2023-01-09 02:25:28 +08:00
migrate.permission_denied_blocked = You cannot import from disallowed hosts, please ask the admin to check ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS settings.
2023-03-24 01:27:03 +08:00
migrate.invalid_local_path = "The local path is invalid. It doesn't exist or is not a directory."
2021-04-09 06:25:57 +08:00
migrate.invalid_lfs_endpoint = The LFS endpoint is not valid.
2015-11-20 02:45:07 +08:00
migrate.failed = Migration failed: %v
2020-09-10 02:29:10 +08:00
migrate.migrate_items_options = Access Token is required to migrate additional items
2019-07-08 10:14:12 +08:00
migrated_from = Migrated from <a href="%[1]s">%[2]s</a>
migrated_from_fake = Migrated From %[1]s
2020-09-10 02:29:10 +08:00
migrate.migrate = Migrate From %s
2019-10-13 21:23:14 +08:00
migrate.migrating = Migrating from <b>%s</b> ...
migrate.migrating_failed = Migrating from <b>%s</b> failed.
2023-05-11 16:25:46 +08:00
migrate.migrating_failed.error = Failed to migrate: %s
2021-11-13 19:28:50 +08:00
migrate.migrating_failed_no_addr = Migration failed.
2021-12-24 11:56:57 +08:00
migrate.github.description = Migrate data from github.com or other GitHub instances.
2021-08-25 21:47:05 +08:00
migrate.git.description = Migrate a repository only from any Git service.
migrate.gitlab.description = Migrate data from gitlab.com or other GitLab instances.
migrate.gitea.description = Migrate data from gitea.com or other Gitea instances.
migrate.gogs.description = Migrate data from notabug.org or other Gogs instances.
migrate.onedev.description = Migrate data from code.onedev.io or other OneDev instances.
2021-12-03 06:24:02 +08:00
migrate.codebase.description = Migrate data from codebasehq.com.
2021-11-16 07:12:09 +08:00
migrate.gitbucket.description = Migrate data from GitBucket instances.
2024-09-11 07:49:42 +08:00
migrate.codecommit.description = Migrate data from AWS CodeCommit.
migrate.codecommit.aws_access_key_id = AWS Access Key ID
migrate.codecommit.aws_secret_access_key = AWS Secret Access Key
migrate.codecommit.https_git_credentials_username = HTTPS Git Credentials Username
migrate.codecommit.https_git_credentials_password = HTTPS Git Credentials Password
2021-06-17 06:02:24 +08:00
migrate.migrating_git = Migrating Git Data
migrate.migrating_topics = Migrating Topics
migrate.migrating_milestones = Migrating Milestones
migrate.migrating_labels = Migrating Labels
migrate.migrating_releases = Migrating Releases
migrate.migrating_issues = Migrating Issues
migrate.migrating_pulls = Migrating Pull Requests
2023-05-11 16:25:46 +08:00
migrate.cancel_migrating_title = Cancel Migration
migrate.cancel_migrating_confirm = Do you want to cancel this migration?
2014-08-01 12:06:19 +08:00
2016-02-02 04:59:48 +08:00
mirror_from = mirror of
2015-07-24 04:50:05 +08:00
forked_from = forked from
2019-11-11 23:15:29 +08:00
generated_from = generated from
2018-04-19 22:24:31 +08:00
fork_from_self = You cannot fork a repository you own.
2019-01-11 12:25:14 +08:00
fork_guest_user = Sign in to fork this repository.
2020-09-11 19:01:51 +08:00
watch_guest_user = Sign in to watch this repository.
star_guest_user = Sign in to star this repository.
2014-08-11 11:11:18 +08:00
unwatch = Unwatch
watch = Watch
unstar = Unstar
star = Star
fork = Fork
2024-03-04 16:16:03 +08:00
action.blocked_user = Cannot perform action because you are blocked by the repository owner.
2018-04-19 22:24:31 +08:00
download_archive = Download Repository
2022-12-08 21:14:09 +08:00
more_operations = More Operations
2014-08-11 11:11:18 +08:00
2014-08-31 21:03:16 +08:00
quick_guide = Quick Guide
clone_this_repo = Clone this repository
2022-11-12 01:02:50 +08:00
cite_this_repo = Cite this repository
2017-05-18 09:03:43 +08:00
create_new_repo_command = Creating a new repository on the command line
push_exist_repo = Pushing an existing repository from the command line
2019-01-18 08:01:04 +08:00
empty_message = This repository does not contain any content.
2021-12-24 11:56:57 +08:00
broken_message = The Git data underlying this repository cannot be read. Contact the administrator of this instance or delete this repository.
2015-10-03 07:58:36 +08:00
2015-12-03 06:00:23 +08:00
code = Code
2018-04-19 22:24:31 +08:00
code.desc = Access source code, files, commits and branches.
2014-09-24 01:47:54 +08:00
branch = Branch
tree = Tree
2020-09-09 00:29:51 +08:00
clear_ref = `Clear current reference`
2015-11-14 17:34:01 +08:00
filter_branch_and_tag = Filter branch or tag
2021-05-04 01:27:48 +08:00
find_tag = Find tag
2014-09-24 01:47:54 +08:00
branches = Branches
tags = Tags
issues = Issues
2015-09-03 04:18:09 +08:00
pulls = Pull Requests
2024-05-27 16:59:54 +08:00
projects = Projects
2022-05-08 23:51:50 +08:00
packages = Packages
2023-04-03 12:05:37 +08:00
actions = Actions
2015-07-24 04:50:05 +08:00
labels = Labels
Add Organization Wide Labels (#10814)
* Add organization wide labels
Implement organization wide labels similar to organization wide
webhooks. This lets you create individual labels for organizations that can be used
for all repos under that organization (so being able to reuse the same
label across multiple repos).
This makes it possible for small organizations with many repos to use
labels effectively.
Fixes #7406
* Add migration
* remove comments
* fix tests
* Update options/locale/locale_en-US.ini
Removed unused translation string
* show org labels in issue search label filter
* Use more clear var name
* rename migration after merge from master
* comment typo
* update migration again after rebase with master
* check for orgID <=0 per guillep2k review
* fmt
* Apply suggestions from code review
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* remove unused code
* Make sure RepoID is 0 when searching orgID per code review
* more changes/code review requests
* More descriptive translation var per code review
* func description/delete comment when issue label deleted instead of hiding it
* remove comment
* only use issues in that repo when calculating number of open issues for org label on repo label page
* Add integration test for IssuesSearch API with labels
* remove unused function
* Update models/issue_label.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Use subquery in GetLabelIDsInReposByNames
* Fix tests to use correct orgID
* fix more tests
* IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well
* update comment for clarity
* Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition
* Don't sort repos by date in IssuesSearch API
After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45
Returns different results for MySQL than other engines. However, the similar query:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30
Returns the same results.
This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function.
* linter is back!
* code review
* remove now unused option
* Fix newline at end of files
* more unused code
* update to master
* check for matching ids before query
* Update models/issue_label.go
Co-Authored-By: 6543 <6543@obermui.de>
* Update models/issue_label.go
* update comments
* Update routers/org/setting.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2020-04-01 12:14:46 +08:00
org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization
org_labels_desc_manage = manage
2015-07-24 04:50:05 +08:00
milestones = Milestones
2014-09-24 01:47:54 +08:00
commits = Commits
2017-12-04 04:52:30 +08:00
commit = Commit
2020-11-03 07:10:22 +08:00
release = Release
2014-09-24 01:47:54 +08:00
releases = Releases
2020-11-05 22:20:42 +08:00
tag = Tag
2020-11-03 07:10:22 +08:00
released_this = released this
2023-03-27 21:41:33 +08:00
tagged_this = tagged this
2023-10-22 19:59:31 +08:00
file.title = %s at %s
2014-10-12 06:02:48 +08:00
file_raw = Raw
file_history = History
2021-01-13 11:45:19 +08:00
file_view_source = View Source
file_view_rendered = View Rendered
2014-10-12 06:02:48 +08:00
file_view_raw = View Raw
2015-05-14 06:14:24 +08:00
file_permalink = Permalink
2018-04-19 22:24:31 +08:00
file_too_large = The file is too large to be shown.
2024-06-13 09:06:46 +08:00
file_is_empty = The file is empty.
2024-04-03 01:48:27 +08:00
code_preview_line_from_to = Lines %[1]d to %[2]d in %[3]s
code_preview_line_in = Line %[1]d in %[2]s
2023-08-03 22:16:06 +08:00
invisible_runes_header = `This file contains invisible Unicode characters`
invisible_runes_description = `This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.`
ambiguous_runes_header = `This file contains ambiguous Unicode characters`
ambiguous_runes_description = `This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.`
2022-08-14 02:32:34 +08:00
invisible_runes_line = `This line has invisible unicode characters`
ambiguous_runes_line = `This line has ambiguous unicode characters`
2023-05-24 22:39:33 +08:00
ambiguous_character = `%[1]c [U+%04[1]X] can be confused with %[2]c [U+%04[2]X]`
2022-01-07 09:18:52 +08:00
escape_control_characters = Escape
unescape_control_characters = Unescape
2021-10-02 15:46:43 +08:00
file_copy_permalink = Copy Permalink
2022-04-26 18:54:40 +08:00
view_git_blame = View Git Blame
2018-04-19 22:24:31 +08:00
video_not_supported_in_browser = Your browser does not support the HTML5 'video' tag.
2018-10-30 10:17:26 +08:00
audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' tag.
2016-12-26 09:16:37 +08:00
stored_lfs = Stored with Git LFS
2020-02-22 07:04:20 +08:00
symbolic_link = Symbolic link
2023-06-16 13:46:12 +08:00
executable_file = Executable File
2024-01-24 13:51:37 +08:00
vendored = Vendored
generated = Generated
2018-04-19 22:24:31 +08:00
commit_graph = Commit Graph
2020-11-09 01:21:54 +08:00
commit_graph.select = Select branches
commit_graph.hide_pr_refs = Hide Pull Requests
2020-08-06 16:04:08 +08:00
commit_graph.monochrome = Mono
2021-10-22 05:51:03 +08:00
commit_graph.color = Color
2023-07-27 18:47:41 +08:00
commit.contained_in = This commit is contained in:
commit.contained_in_default_branch = This commit is part of the default branch
commit.load_referencing_branches_and_tags = Load branches and tags referencing this commit
2019-04-20 10:47:00 +08:00
blame = Blame
2021-11-15 09:05:12 +08:00
download_file = Download file
2019-04-20 10:47:00 +08:00
normal_view = Normal View
2019-10-08 07:38:41 +08:00
line = line
2019-10-07 12:59:17 +08:00
lines = lines
Append `(comment)` when a link points at a comment rather than the whole issue (#23734)
Close #23671
For the feature mentioned above, this PR append ' (comment)' to the
rendered html if it is a hashcomment.
After the PR, type in the following
```
pull request from other repo:
http://localhost:3000/testOrg/testOrgRepo/pulls/2
pull request from this repo:
http://localhost:3000/aaa/testA/pulls/2
issue comment from this repo:
http://localhost:3000/aaa/testA/issues/1#issuecomment-18
http://localhost:3000/aaa/testA/pulls/2#issue-9
issue comment from other repo:
http://localhost:3000/testOrg/testOrgRepo/pulls/2#issuecomment-24
http://localhost:3000/testOrg/testOrgRepo/pulls/2#issue
```
Gives:
<img width="687" alt="截屏2023-03-27 13 53 06"
src="https://user-images.githubusercontent.com/17645053/227852387-2b218e0d-3468-4d90-ad81-d702ddd17fd2.png">
Other than the above feature, this PR also includes two other changes:
1 Right now, the render of links from file changed tab in pull request
might not be very proper, for example, if type in the following. (not
sure if this is an issue or design, if not an issue, I will revert the
changes). example on
[try.gitea.io](https://try.gitea.io/HesterG/testrepo/pulls/1)
```
https://try.gitea.io/HesterG/testrepo/pulls/1/files#issuecomment-162725
https://try.gitea.io/HesterG/testrepo/pulls/1/files
```
it will render the following
<img width="899" alt="截屏2023-03-24 15 41 37"
src="https://user-images.githubusercontent.com/17645053/227456117-5eccedb7-9118-4540-929d-aee9a76de852.png">
In this PR, skip processing the link into a ref issue if it is a link
from files changed tab in pull request
After:
type in following
```
hash comment on files changed tab:
http://localhost:3000/testOrg/testOrgRepo/pulls/2/files#issuecomment-24
files changed link:
http://localhost:3000/testOrg/testOrgRepo/pulls/2/files
```
Gives
<img width="708" alt="截屏2023-03-27 22 09 02"
src="https://user-images.githubusercontent.com/17645053/227964273-5dc06c50-3713-489c-b05d-d95367d0ab0f.png">
2 Right now, after editing the comment area, there will not be tippys
attached to `ref-issue`; and no tippy attached on preview as well.
example:
https://user-images.githubusercontent.com/17645053/227850540-5ae34e2d-b1d7-4d0d-9726-7701bf825d1f.mov
In this PR, in frontend, make sure tippy is added after editing the
comment, and to the comment on preview tab
After:
https://user-images.githubusercontent.com/17645053/227853777-06f56b4c-1148-467c-b6f7-f79418e67504.mov
2023-04-03 16:02:57 +08:00
from_comment = (comment)
2014-09-24 01:47:54 +08:00
2022-08-08 07:15:11 +08:00
editor.add_file = Add File
2018-04-19 22:24:31 +08:00
editor.new_file = New File
editor.upload_file = Upload File
editor.edit_file = Edit File
2016-08-28 19:31:42 +08:00
editor.preview_changes = Preview Changes
2019-02-12 23:09:43 +08:00
editor.cannot_edit_lfs_files = LFS files cannot be edited in the web interface.
2018-04-19 22:24:31 +08:00
editor.cannot_edit_non_text_files = Binary files cannot be edited in the web interface.
editor.edit_this_file = Edit File
2019-10-30 05:32:21 +08:00
editor.this_file_locked = File is locked
2018-04-19 22:24:31 +08:00
editor.must_be_on_a_branch = You must be on a branch to make or propose changes to this file.
editor.fork_before_edit = You must fork this repository to make or propose changes to this file.
editor.delete_this_file = Delete File
editor.must_have_write_access = You must have write access to make or propose changes to this file.
2023-04-18 06:04:26 +08:00
editor.file_delete_success = File "%s" has been deleted.
2018-02-16 22:02:40 +08:00
editor.name_your_file = Name your file…
2018-04-19 22:24:31 +08:00
editor.filename_help = Add a directory by typing its name followed by a slash ('/'). Remove a directory by typing backspace at the beginning of the input field.
2016-08-28 19:31:42 +08:00
editor.or = or
2018-04-19 22:24:31 +08:00
editor.cancel_lower = Cancel
2020-01-15 16:32:57 +08:00
editor.commit_signed_changes = Commit Signed Changes
2016-08-28 16:41:44 +08:00
editor.commit_changes = Commit Changes
2024-04-17 18:24:08 +08:00
editor.add_tmpl = Add '{filename}'
2023-04-18 06:04:26 +08:00
editor.add = Add %s
editor.update = Update %s
editor.delete = Delete %s
2022-02-10 04:28:55 +08:00
editor.patch = Apply Patch
editor.patching = Patching:
2023-04-18 06:04:26 +08:00
editor.fail_to_apply_patch = Unable to apply patch "%s"
2022-02-10 04:28:55 +08:00
editor.new_patch = New Patch
2018-02-16 22:02:40 +08:00
editor.commit_message_desc = Add an optional extended description…
2021-01-29 16:57:45 +08:00
editor.signoff_desc = Add a Signed-off-by trailer by the committer at the end of the commit log message.
2017-11-02 00:03:10 +08:00
editor.commit_directly_to_this_branch = Commit directly to the <strong class="branch-name">%s</strong> branch.
2016-08-15 14:02:14 +08:00
editor.create_new_branch = Create a <strong>new branch</strong> for this commit and start a pull request.
2019-10-05 10:09:19 +08:00
editor.create_new_branch_np = Create a <strong>new branch</strong> for this commit.
2019-07-18 02:40:28 +08:00
editor.propose_file_change = Propose file change
2023-02-01 09:43:06 +08:00
editor.new_branch_name = Name the new branch for this commit
2018-02-16 22:02:40 +08:00
editor.new_branch_name_desc = New branch name…
2016-08-28 16:41:44 +08:00
editor.cancel = Cancel
2018-04-19 22:24:31 +08:00
editor.filename_cannot_be_empty = The filename cannot be empty.
2023-04-18 06:04:26 +08:00
editor.filename_is_invalid = The filename is invalid: "%s".
editor.branch_does_not_exist = Branch "%s" does not exist in this repository.
editor.branch_already_exists = Branch "%s" already exists in this repository.
editor.directory_is_a_file = Directory name "%s" is already used as a filename in this repository.
2023-05-05 02:46:47 +08:00
editor.file_is_a_symlink = `"%s" is a symbolic link. Symbolic links cannot be edited in the web editor`
2023-04-18 06:04:26 +08:00
editor.filename_is_a_directory = Filename "%s" is already used as a directory name in this repository.
editor.file_editing_no_longer_exists = The file being edited, "%s", no longer exists in this repository.
editor.file_deleting_no_longer_exists = The file being deleted, "%s", no longer exists in this repository.
2018-07-04 07:52:36 +08:00
editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener noreferrer" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them.
2023-04-18 06:04:26 +08:00
editor.file_already_exists = A file named "%s" already exists in this repository.
2024-03-18 10:23:08 +08:00
editor.commit_id_not_matching = The Commit ID does not match the ID when you began editing. Commit into a patch branch and then merge.
editor.push_out_of_date = The push appears to be out of date.
2019-10-17 03:28:41 +08:00
editor.commit_empty_file_header = Commit an empty file
2020-09-07 00:24:24 +08:00
editor.commit_empty_file_text = The file you're about to commit is empty. Proceed?
2016-08-15 14:02:14 +08:00
editor.no_changes_to_show = There are no changes to show.
2023-04-18 06:04:26 +08:00
editor.fail_to_update_file = Failed to update/create file "%s".
2020-10-21 07:50:10 +08:00
editor.fail_to_update_file_summary = Error Message:
2021-12-24 11:56:57 +08:00
editor.push_rejected_no_message = The change was rejected by the server without a message. Please check Git Hooks.
editor.push_rejected = The change was rejected by the server. Please check Git Hooks.
2020-10-21 07:50:10 +08:00
editor.push_rejected_summary = Full Rejection Message:
2018-04-19 22:24:31 +08:00
editor.add_subdir = Add a directory…
2023-04-18 06:04:26 +08:00
editor.unable_to_upload_files = Failed to upload files to "%s" with error: %v
editor.upload_file_is_locked = File "%s" is locked by %s.
editor.upload_files_to_dir = Upload files to "%s"
editor.cannot_commit_to_protected_branch = Cannot commit to protected branch "%s".
2020-01-15 16:32:57 +08:00
editor.no_commit_to_branch = Unable to commit directly to branch because:
editor.user_no_push_to_branch = User cannot push to branch
editor.require_signed_commit = Branch requires a signed commit
2022-02-10 04:28:55 +08:00
editor.cherry_pick = Cherry-pick %s onto:
editor.revert = Revert %s onto:
2016-08-11 20:48:08 +08:00
2018-04-19 22:24:31 +08:00
commits.desc = Browse source code change history.
2014-09-24 03:30:04 +08:00
commits.commits = Commits
2023-04-18 06:04:26 +08:00
commits.no_commits = No commits in common. "%s" and "%s" have entirely different histories.
2021-07-29 10:32:48 +08:00
commits.nothing_to_compare = These branches are equal.
2023-03-24 01:27:03 +08:00
commits.search.tooltip = You can prefix keywords with "author:", "committer:", "after:", or "before:", e.g. "revert author:Alice before:2019-01-13".
2024-03-15 07:24:59 +08:00
commits.search_branch = This Branch
2018-04-19 22:24:31 +08:00
commits.search_all = All Branches
2014-09-24 03:30:04 +08:00
commits.author = Author
commits.message = Message
commits.date = Date
commits.older = Older
commits.newer = Newer
2017-07-10 09:46:06 +08:00
commits.signed_by = Signed by
2020-02-28 03:20:55 +08:00
commits.signed_by_untrusted_user = Signed by untrusted user
commits.signed_by_untrusted_user_unmatched = Signed by untrusted user who does not match committer
2018-04-19 22:24:31 +08:00
commits.gpg_key_id = GPG Key ID
2021-12-19 13:37:18 +08:00
commits.ssh_key_fingerprint = SSH Key Fingerprint
2023-10-02 12:04:32 +08:00
commits.view_path = View at this point in history
2014-09-24 03:30:04 +08:00
2022-12-08 21:14:09 +08:00
commit.operations = Operations
2022-02-10 04:28:55 +08:00
commit.revert = Revert
commit.revert-header = Revert: %s
commit.revert-content = Select branch to revert onto:
commit.cherry-pick = Cherry-pick
commit.cherry-pick-header = Cherry-pick: %s
commit.cherry-pick-content = Select branch to cherry-pick onto:
2023-08-21 15:26:10 +08:00
commitstatus.error = Error
commitstatus.failure = Failure
commitstatus.pending = Pending
commitstatus.success = Success
2022-01-05 11:37:00 +08:00
ext_issues = Access to External Issues
2018-04-19 22:24:31 +08:00
ext_issues.desc = Link to an external issue tracker.
2017-05-18 22:54:24 +08:00
2020-08-17 23:58:23 +08:00
projects = Projects
2024-05-27 16:59:54 +08:00
projects.desc = Manage issues and pulls in projects.
2021-01-23 18:30:28 +08:00
projects.description = Description (optional)
projects.description_placeholder = Description
2020-08-17 11:07:38 +08:00
projects.create = Create Project
projects.title = Title
2023-02-25 07:10:50 +08:00
projects.new = New Project
2020-08-17 11:07:38 +08:00
projects.new_subheader = Coordinate, track, and update your work in one place, so projects stay transparent and on schedule.
2023-04-18 06:04:26 +08:00
projects.create_success = The project "%s" has been created.
2020-08-17 11:07:38 +08:00
projects.deletion = Delete Project
projects.deletion_desc = Deleting a project removes it from all related issues. Continue?
projects.deletion_success = The project has been deleted.
2023-02-25 07:10:50 +08:00
projects.edit = Edit Project
2020-08-17 11:07:38 +08:00
projects.edit_subheader = Projects organize issues and track progress.
2023-02-25 07:10:50 +08:00
projects.modify = Edit Project
2023-04-18 06:04:26 +08:00
projects.edit_success = Project "%s" has been updated.
2020-08-17 11:07:38 +08:00
projects.type.none = "None"
projects.type.basic_kanban = "Basic Kanban"
projects.type.bug_triage = "Bug Triage"
2023-02-25 07:10:50 +08:00
projects.template.desc = "Template"
2020-08-17 11:07:38 +08:00
projects.template.desc_helper = "Select a project template to get started"
2023-02-25 07:10:50 +08:00
projects.column.edit = "Edit Column"
projects.column.edit_title = "Name"
projects.column.new_title = "Name"
projects.column.new_submit = "Create Column"
projects.column.new = "New Column"
projects.column.set_default = "Set Default"
projects.column.set_default_desc = "Set this column as default for uncategorized issues and pulls"
projects.column.delete = "Delete Column"
2024-03-28 04:54:32 +08:00
projects.column.deletion_desc = "Deleting a project column moves all related issues to the default column. Continue?"
2023-02-25 07:10:50 +08:00
projects.column.color = "Color"
2020-08-17 11:07:38 +08:00
projects.open = Open
projects.close = Close
2023-02-25 07:10:50 +08:00
projects.column.assigned_to = Assigned to
2023-02-11 16:12:41 +08:00
projects.card_type.desc = "Card Previews"
projects.card_type.images_and_text = "Images and Text"
projects.card_type.text_only = "Text Only"
2020-08-17 11:07:38 +08:00
2018-04-19 22:24:31 +08:00
issues.desc = Organize bug reports, tasks and milestones.
2020-04-04 13:39:48 +08:00
issues.filter_assignees = Filter Assignee
issues.filter_milestones = Filter Milestone
2020-08-17 11:07:38 +08:00
issues.filter_projects = Filter Project
2020-04-04 13:39:48 +08:00
issues.filter_labels = Filter Label
2020-04-07 00:33:34 +08:00
issues.filter_reviewers = Filter Reviewer
2015-07-24 04:50:05 +08:00
issues.new = New Issue
2019-01-21 19:45:32 +08:00
issues.new.title_empty = Title cannot be empty
2015-08-10 14:42:50 +08:00
issues.new.labels = Labels
2015-08-10 18:57:57 +08:00
issues.new.no_label = No Label
2015-08-10 14:42:50 +08:00
issues.new.clear_labels = Clear labels
2020-08-17 11:07:38 +08:00
issues.new.projects = Projects
issues.new.clear_projects = Clear projects
issues.new.no_projects = No project
issues.new.open_projects = Open Projects
issues.new.closed_projects = Closed Projects
2020-04-04 13:39:48 +08:00
issues.new.no_items = No items
2015-08-10 14:42:50 +08:00
issues.new.milestone = Milestone
2015-08-10 18:57:57 +08:00
issues.new.no_milestone = No Milestone
issues.new.clear_milestone = Clear milestone
2018-05-10 00:29:04 +08:00
issues.new.assignees = Assignees
issues.new.clear_assignees = Clear assignees
2018-07-21 00:40:08 +08:00
issues.new.no_assignees = No Assignees
2024-11-09 12:48:31 +08:00
issues.new.no_reviewers = No Reviewers
2024-03-04 16:16:03 +08:00
issues.new.blocked_user = Cannot create issue because you are blocked by the repository owner.
2024-05-27 23:34:18 +08:00
issues.edit.already_changed = Unable to save changes to the issue. It appears the content has already been changed by another user. Please refresh the page and try editing again to avoid overwriting their changes
2024-03-04 16:16:03 +08:00
issues.edit.blocked_user = Cannot edit content because you are blocked by the poster or repository owner.
2020-09-11 22:48:39 +08:00
issues.choose.get_started = Get Started
2023-03-29 02:22:07 +08:00
issues.choose.open_external_link = Open
2020-09-16 10:07:09 +08:00
issues.choose.blank = Default
2020-10-14 19:17:40 +08:00
issues.choose.blank_about = Create an issue from default template.
2022-09-02 15:58:49 +08:00
issues.choose.ignore_invalid_templates = Invalid templates have been ignored
issues.choose.invalid_templates = %v invalid template(s) found
2023-03-29 02:22:07 +08:00
issues.choose.invalid_config = The issue config contains errors:
2017-08-24 20:30:27 +08:00
issues.no_ref = No Branch/Tag Specified
2015-08-09 15:23:02 +08:00
issues.create = Create Issue
2015-07-24 21:02:49 +08:00
issues.new_label = New Label
2018-04-19 22:24:31 +08:00
issues.new_label_placeholder = Label name
issues.new_label_desc_placeholder = Description
2015-08-09 22:45:38 +08:00
issues.create_label = Create Label
2016-08-30 11:00:06 +08:00
issues.label_templates.title = Load a predefined set of labels
2018-04-19 22:24:31 +08:00
issues.label_templates.info = No labels exist yet. Create a label with 'New Label' or use a predefined label set:
2016-08-30 11:00:06 +08:00
issues.label_templates.helper = Select a label set
2018-04-19 22:24:31 +08:00
issues.label_templates.use = Use Label Set
2023-04-18 06:04:26 +08:00
issues.label_templates.fail_to_load_file = Failed to load label template file "%s": %v
2020-10-26 05:49:48 +08:00
issues.add_label = added the %s label %s
issues.add_labels = added the %s labels %s
issues.remove_label = removed the %s label %s
issues.remove_labels = removed the %s labels %s
issues.add_remove_labels = added %s and removed %s labels %s
2017-02-01 10:36:08 +08:00
issues.add_milestone_at = `added this to the <b>%s</b> milestone %s`
2020-08-17 11:07:38 +08:00
issues.add_project_at = `added this to the <b>%s</b> project %s`
2024-08-09 09:29:02 +08:00
issues.move_to_column_of_project = `moved this to %s in %s on %s`
2017-02-01 10:36:08 +08:00
issues.change_milestone_at = `modified the milestone from <b>%s</b> to <b>%s</b> %s`
2020-08-17 11:07:38 +08:00
issues.change_project_at = `modified the project from <b>%s</b> to <b>%s</b> %s`
2017-02-01 10:36:08 +08:00
issues.remove_milestone_at = `removed this from the <b>%s</b> milestone %s`
2020-08-17 11:07:38 +08:00
issues.remove_project_at = `removed this from the <b>%s</b> project %s`
2017-06-17 12:51:28 +08:00
issues.deleted_milestone = `(deleted)`
2020-08-17 11:07:38 +08:00
issues.deleted_project = `(deleted)`
2017-02-03 23:09:10 +08:00
issues.self_assign_at = `self-assigned this %s`
issues.add_assignee_at = `was assigned by <b>%s</b> %s`
2019-01-20 03:16:46 +08:00
issues.remove_assignee_at = `was unassigned by <b>%s</b> %s`
issues.remove_self_assignment = `removed their assignment %s`
2019-09-03 00:11:23 +08:00
issues.change_title_at = `changed title from <b><strike>%s</strike></b> to <b>%s</b> %s`
2021-11-19 17:54:31 +08:00
issues.change_ref_at = `changed reference from <b><strike>%s</strike></b> to <b>%s</b> %s`
issues.remove_ref_at = `removed reference <b>%s</b> %s`
issues.add_ref_at = `added reference <b>%s</b> %s`
2017-02-11 12:00:29 +08:00
issues.delete_branch_at = `deleted branch <b>%s</b> %s`
2015-07-24 04:50:05 +08:00
issues.filter_label = Label
2019-10-24 00:29:14 +08:00
issues.filter_label_exclude = `Use <code>alt</code> + <code>click/enter</code> to exclude labels`
2018-04-19 22:24:31 +08:00
issues.filter_label_no_select = All labels
2023-07-26 21:00:50 +08:00
issues.filter_label_select_no_label = No label
2015-07-24 04:50:05 +08:00
issues.filter_milestone = Milestone
2023-04-30 21:12:49 +08:00
issues.filter_milestone_all = All milestones
issues.filter_milestone_none = No milestones
issues.filter_milestone_open = Open milestones
issues.filter_milestone_closed = Closed milestones
2023-01-29 11:45:29 +08:00
issues.filter_project = Project
2023-02-04 22:35:08 +08:00
issues.filter_project_all = All projects
issues.filter_project_none = No project
2015-07-24 04:50:05 +08:00
issues.filter_assignee = Assignee
2018-04-19 22:24:31 +08:00
issues.filter_assginee_no_select = All assignees
2023-05-17 17:21:35 +08:00
issues.filter_assginee_no_assignee = No assignee
2022-08-09 04:03:58 +08:00
issues.filter_poster = Author
issues.filter_poster_no_select = All authors
2015-07-24 04:50:05 +08:00
issues.filter_type = Type
issues.filter_type.all_issues = All issues
issues.filter_type.assigned_to_you = Assigned to you
issues.filter_type.created_by_you = Created by you
issues.filter_type.mentioning_you = Mentioning you
2021-01-18 00:34:19 +08:00
issues.filter_type.review_requested = Review requested
2023-02-25 10:55:50 +08:00
issues.filter_type.reviewed_by_you = Reviewed by you
2015-08-15 12:07:08 +08:00
issues.filter_sort = Sort
2015-08-15 16:30:24 +08:00
issues.filter_sort.latest = Newest
2015-08-15 12:07:08 +08:00
issues.filter_sort.oldest = Oldest
2015-08-15 16:30:24 +08:00
issues.filter_sort.recentupdate = Recently updated
issues.filter_sort.leastupdate = Least recently updated
issues.filter_sort.mostcomment = Most commented
issues.filter_sort.leastcomment = Least commented
2019-03-05 22:39:41 +08:00
issues.filter_sort.nearduedate = Nearest due date
issues.filter_sort.farduedate = Farthest due date
2018-05-24 09:03:42 +08:00
issues.filter_sort.moststars = Most stars
issues.filter_sort.feweststars = Fewest stars
issues.filter_sort.mostforks = Most forks
issues.filter_sort.fewestforks = Fewest forks
2017-03-15 09:10:35 +08:00
issues.action_open = Open
issues.action_close = Close
issues.action_label = Label
issues.action_milestone = Milestone
issues.action_milestone_no_select = No milestone
issues.action_assignee = Assignee
issues.action_assignee_no_select = No assignee
2023-02-01 09:43:06 +08:00
issues.action_check = Check/Uncheck
issues.action_check_all = Check/Uncheck all items
2017-11-02 00:03:10 +08:00
issues.opened_by = opened %[1]s by <a href="%[2]s">%[3]s</a>
2021-12-14 09:45:39 +08:00
pulls.merged_by = by <a href="%[2]s">%[3]s</a> was merged %[1]s
pulls.merged_by_fake = by %[2]s was merged %[1]s
issues.closed_by = by <a href="%[2]s">%[3]s</a> was closed %[1]s
2021-09-24 00:57:52 +08:00
issues.opened_by_fake = opened %[1]s by %[2]s
2021-12-14 09:45:39 +08:00
issues.closed_by_fake = by %[2]s was closed %[1]s
2015-07-28 03:14:37 +08:00
issues.previous = Previous
issues.next = Next
2015-08-12 17:04:23 +08:00
issues.open_title = Open
issues.closed_title = Closed
2022-07-10 06:17:04 +08:00
issues.draft_title = Draft
2023-07-06 03:53:38 +08:00
issues.num_comments_1 = %d comment
2015-08-12 17:04:23 +08:00
issues.num_comments = %d comments
2017-11-02 00:03:10 +08:00
issues.commented_at = `commented <a href="#%s">%s</a>`
2016-07-26 02:48:17 +08:00
issues.delete_comment_confirm = Are you sure you want to delete this comment?
2019-11-20 02:33:42 +08:00
issues.context.copy_link = Copy Link
issues.context.quote_reply = Quote Reply
2023-02-16 23:06:07 +08:00
issues.context.reference_issue = Reference in New Issue
2019-11-20 02:33:42 +08:00
issues.context.edit = Edit
issues.context.delete = Delete
2023-07-22 17:32:50 +08:00
issues.no_content = No description provided.
2023-03-16 23:11:31 +08:00
issues.close = Close Issue
2023-05-03 21:52:19 +08:00
issues.comment_pull_merged_at = merged commit %[1]s into %[2]s %[3]s
issues.comment_manually_pull_merged_at = manually merged commit %[1]s into %[2]s %[3]s
2024-05-29 23:54:17 +08:00
issues.close_comment_issue = Close with Comment
2015-08-13 23:21:43 +08:00
issues.reopen_issue = Reopen
2024-05-29 23:54:17 +08:00
issues.reopen_comment_issue = Reopen with Comment
2015-08-12 18:44:09 +08:00
issues.create_comment = Comment
2024-03-04 16:16:03 +08:00
issues.comment.blocked_user = Cannot create or edit comment because you are blocked by the poster or repository owner.
2020-04-30 21:49:12 +08:00
issues.closed_at = `closed this issue <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at = `reopened this issue <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2017-11-02 00:03:10 +08:00
issues.commit_ref_at = `referenced this issue from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2019-11-18 21:13:07 +08:00
issues.ref_issue_from = `<a href="%[3]s">referenced this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_pull_from = `<a href="%[3]s">referenced this pull request %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closing_from = `<a href="%[3]s">referenced a pull request %[4]s that will close this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopening_from = `<a href="%[3]s">referenced a pull request %[4]s that will reopen this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closed_from = `<a href="%[3]s">closed this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopened_from = `<a href="%[3]s">reopened this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_from = `from %[1]s`
2023-08-24 13:06:17 +08:00
issues.author = Author
issues.author_helper = This user is the author.
issues.role.owner = Owner
issues.role.owner_helper = This user is the owner of this repository.
issues.role.member = Member
issues.role.member_helper = This user is a member of the organization owning this repository.
issues.role.collaborator = Collaborator
issues.role.collaborator_helper = This user has been invited to collaborate on the repository.
issues.role.first_time_contributor = First-time contributor
issues.role.first_time_contributor_helper = This is the first contribution of this user to the repository.
issues.role.contributor = Contributor
issues.role.contributor_helper = This user has previously committed to the repository.
2020-04-07 00:33:34 +08:00
issues.re_request_review = Re-request review
2020-09-05 00:36:37 +08:00
issues.is_stale = There have been changes to this PR since this review
2020-04-07 00:33:34 +08:00
issues.remove_request_review = Remove review request
issues.remove_request_review_block = Can't remove review request
2021-02-12 01:32:25 +08:00
issues.dismiss_review = Dismiss Review
issues.dismiss_review_warning = Are you sure you want to dismiss this review?
2017-11-02 00:03:10 +08:00
issues.sign_in_require_desc = <a href="%s">Sign in</a> to join this conversation.
2015-08-15 14:14:55 +08:00
issues.edit = Edit
2015-08-19 23:14:57 +08:00
issues.cancel = Cancel
2015-08-15 14:14:55 +08:00
issues.save = Save
Scoped labels (#22585)
Add a new "exclusive" option per label. This makes it so that when the
label is named `scope/name`, no other label with the same `scope/`
prefix can be set on an issue.
The scope is determined by the last occurence of `/`, so for example
`scope/alpha/name` and `scope/beta/name` are considered to be in
different scopes and can coexist.
Exclusive scopes are not enforced by any database rules, however they
are enforced when editing labels at the models level, automatically
removing any existing labels in the same scope when either attaching a
new label or replacing all labels.
In menus use a circle instead of checkbox to indicate they function as
radio buttons per scope. Issue filtering by label ensures that only a
single scoped label is selected at a time. Clicking with alt key can be
used to remove a scoped label, both when editing individual issues and
batch editing.
Label rendering refactor for consistency and code simplification:
* Labels now consistently have the same shape, emojis and tooltips
everywhere. This includes the label list and label assignment menus.
* In label list, show description below label same as label menus.
* Don't use exactly black/white text colors to look a bit nicer.
* Simplify text color computation. There is no point computing luminance
in linear color space, as this is a perceptual problem and sRGB is
closer to perceptually linear.
* Increase height of label assignment menus to show more labels. Showing
only 3-4 labels at a time leads to a lot of scrolling.
* Render all labels with a new RenderLabel template helper function.
Label creation and editing in multiline modal menu:
* Change label creation to open a modal menu like label editing.
* Change menu layout to place name, description and colors on separate
lines.
* Don't color cancel button red in label editing modal menu.
* Align text to the left in model menu for better readability and
consistent with settings layout elsewhere.
Custom exclusive scoped label rendering:
* Display scoped label prefix and suffix with slightly darker and
lighter background color respectively, and a slanted edge between them
similar to the `/` symbol.
* In menus exclusive labels are grouped with a divider line.
---------
Co-authored-by: Yarden Shoham <hrsi88@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
2023-02-19 03:17:39 +08:00
issues.label_title = Name
issues.label_description = Description
issues.label_color = Color
issues.label_exclusive = Exclusive
2023-08-14 17:56:14 +08:00
issues.label_archive = Archive Label
2023-10-01 21:04:39 +08:00
issues.label_archived_filter = Show archived labels
issues.label_archive_tooltip = Archived labels are excluded by default from the suggestions when searching by label.
Scoped labels (#22585)
Add a new "exclusive" option per label. This makes it so that when the
label is named `scope/name`, no other label with the same `scope/`
prefix can be set on an issue.
The scope is determined by the last occurence of `/`, so for example
`scope/alpha/name` and `scope/beta/name` are considered to be in
different scopes and can coexist.
Exclusive scopes are not enforced by any database rules, however they
are enforced when editing labels at the models level, automatically
removing any existing labels in the same scope when either attaching a
new label or replacing all labels.
In menus use a circle instead of checkbox to indicate they function as
radio buttons per scope. Issue filtering by label ensures that only a
single scoped label is selected at a time. Clicking with alt key can be
used to remove a scoped label, both when editing individual issues and
batch editing.
Label rendering refactor for consistency and code simplification:
* Labels now consistently have the same shape, emojis and tooltips
everywhere. This includes the label list and label assignment menus.
* In label list, show description below label same as label menus.
* Don't use exactly black/white text colors to look a bit nicer.
* Simplify text color computation. There is no point computing luminance
in linear color space, as this is a perceptual problem and sRGB is
closer to perceptually linear.
* Increase height of label assignment menus to show more labels. Showing
only 3-4 labels at a time leads to a lot of scrolling.
* Render all labels with a new RenderLabel template helper function.
Label creation and editing in multiline modal menu:
* Change label creation to open a modal menu like label editing.
* Change menu layout to place name, description and colors on separate
lines.
* Don't color cancel button red in label editing modal menu.
* Align text to the left in model menu for better readability and
consistent with settings layout elsewhere.
Custom exclusive scoped label rendering:
* Display scoped label prefix and suffix with slightly darker and
lighter background color respectively, and a slanted edge between them
similar to the `/` symbol.
* In menus exclusive labels are grouped with a divider line.
---------
Co-authored-by: Yarden Shoham <hrsi88@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
2023-02-19 03:17:39 +08:00
issues.label_exclusive_desc = Name the label <code>scope/item</code> to make it mutually exclusive with other <code>scope/</code> labels.
issues.label_exclusive_warning = Any conflicting scoped labels will be removed when editing the labels of an issue or pull request.
2015-07-24 21:02:49 +08:00
issues.label_count = %d labels
2023-01-13 19:40:39 +08:00
issues.label_open_issues = %d open issues/pull requests
2015-07-24 21:02:49 +08:00
issues.label_edit = Edit
issues.label_delete = Delete
2018-04-19 22:24:31 +08:00
issues.label_modify = Edit Label
issues.label_deletion = Delete Label
issues.label_deletion_desc = Deleting a label removes it from all issues. Continue?
issues.label_deletion_success = The label has been deleted.
2016-12-24 22:41:09 +08:00
issues.label.filter_sort.alphabetically = Alphabetically
issues.label.filter_sort.reverse_alphabetically = Reverse alphabetically
2020-03-04 01:27:38 +08:00
issues.label.filter_sort.by_size = Smallest size
issues.label.filter_sort.reverse_by_size = Largest size
2016-02-02 09:55:12 +08:00
issues.num_participants = %d Participants
2016-08-12 07:16:36 +08:00
issues.attachment.open_tab = `Click to see "%s" in a new tab`
issues.attachment.download = `Click to download "%s"`
2017-03-31 06:10:30 +08:00
issues.subscribe = Subscribe
issues.unsubscribe = Unsubscribe
2023-05-25 21:17:19 +08:00
issues.unpin_issue = Unpin Issue
issues.max_pinned = "You can't pin more issues"
issues.pin_comment = "pinned this %s"
issues.unpin_comment = "unpinned this %s"
2019-02-19 04:55:04 +08:00
issues.lock = Lock conversation
issues.unlock = Unlock conversation
issues.lock.unknown_reason = Cannot lock an issue with an unknown reason.
issues.lock_duplicate = An issue cannot be locked twice.
issues.unlock_error = Cannot unlock an issue that is not locked.
issues.lock_with_reason = "locked as <strong>%s</strong> and limited conversation to collaborators %s"
issues.lock_no_reason = "locked and limited conversation to collaborators %s"
issues.unlock_comment = "unlocked this conversation %s"
issues.lock_confirm = Lock
issues.unlock_confirm = Unlock
issues.lock.notice_1 = - Other users can’ t add new comments to this issue.
issues.lock.notice_2 = - You and other collaborators with access to this repository can still leave comments that others can see.
issues.lock.notice_3 = - You can always unlock this issue again in the future.
issues.unlock.notice_1 = - Everyone would be able to comment on this issue once more.
issues.unlock.notice_2 = - You can always lock this issue again in the future.
issues.lock.reason = Reason for locking
issues.lock.title = Lock conversation on this issue.
issues.unlock.title = Unlock conversation on this issue.
issues.comment_on_locked = You cannot comment on a locked issue.
2022-03-09 08:38:11 +08:00
issues.delete = Delete
issues.delete.title = Delete this issue?
issues.delete.text = Do you really want to delete this issue? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
2024-12-05 21:07:53 +08:00
2018-04-19 22:24:31 +08:00
issues.tracker = Time Tracker
2024-12-05 21:07:53 +08:00
issues.timetracker_timer_start = Start timer
issues.timetracker_timer_stop = Stop timer
issues.timetracker_timer_discard = Discard timer
issues.timetracker_timer_manually_add = Add Time
issues.time_estimate_placeholder = 1h 2m
issues.time_estimate_set = Set estimated time
issues.time_estimate_display = Estimate: %s
issues.change_time_estimate_at = changed time estimate to <b>%s</b> %s
issues.remove_time_estimate_at = removed time estimate %s
issues.time_estimate_invalid = Time estimate format is invalid
issues.start_tracking_history = started working %s
2019-02-05 19:38:11 +08:00
issues.tracker_auto_close = Timer will be stopped automatically when this issue gets closed
2020-12-21 14:11:39 +08:00
issues.tracking_already_started = `You have already started time tracking on <a href="%s">another issue</a>!`
2024-12-05 21:07:53 +08:00
issues.stop_tracking_history = worked for <b>%s</b> %s
2023-08-08 23:25:05 +08:00
issues.cancel_tracking_history = `canceled time tracking %s`
2021-02-19 18:52:11 +08:00
issues.del_time = Delete this time log
2024-12-05 21:07:53 +08:00
issues.add_time_history = added spent time <b>%s</b> %s
2019-12-28 04:30:58 +08:00
issues.del_time_history = `deleted spent time %s`
2024-12-05 21:07:53 +08:00
issues.add_time_manually = Manually Add Time
2017-09-12 14:48:13 +08:00
issues.add_time_hours = Hours
issues.add_time_minutes = Minutes
2018-04-19 22:24:31 +08:00
issues.add_time_sum_to_small = No time was entered.
2018-05-02 03:05:28 +08:00
issues.time_spent_total = Total Time Spent
2018-04-29 13:58:47 +08:00
issues.time_spent_from_all_authors = `Total Time Spent: %s`
2024-12-05 21:07:53 +08:00
2018-05-08 20:40:52 +08:00
issues.due_date = Due Date
issues.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
issues.error_modifying_due_date = "Failed to modify the due date."
issues.error_removing_due_date = "Failed to remove the due date."
2020-05-20 20:47:24 +08:00
issues.push_commit_1 = "added %d commit %s"
issues.push_commits_n = "added %d commits %s"
2021-04-10 10:24:59 +08:00
issues.force_push_codes = `force-pushed %[1]s from <a class="ui sha" href="%[3]s"><code>%[2]s</code></a> to <a class="ui sha" href="%[5]s"><code>%[4]s</code></a> %[6]s`
2023-03-02 03:19:47 +08:00
issues.force_push_compare = Compare
2018-05-07 05:26:40 +08:00
issues.due_date_form = "yyyy-mm-dd"
2018-05-02 03:05:28 +08:00
issues.due_date_form_add = "Add due date"
2018-08-28 02:34:12 +08:00
issues.due_date_form_edit = "Edit"
issues.due_date_form_remove = "Remove"
2023-08-08 23:25:05 +08:00
issues.due_date_not_writer = "You need write access to this repository in order to update the due date of an issue."
2018-05-02 03:05:28 +08:00
issues.due_date_not_set = "No due date set."
issues.due_date_added = "added the due date %s %s"
2022-07-19 20:30:55 +08:00
issues.due_date_modified = "modified the due date from %[2]s to %[1]s %[3]s"
2018-05-02 03:05:28 +08:00
issues.due_date_remove = "removed the due date %s %s"
issues.due_date_overdue = "Overdue"
2018-07-21 00:40:08 +08:00
issues.due_date_invalid = "The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'."
2018-07-18 05:23:58 +08:00
issues.dependency.title = Dependencies
2022-03-24 00:46:50 +08:00
issues.dependency.issue_no_dependencies = No dependencies set.
issues.dependency.pr_no_dependencies = No dependencies set.
2023-03-29 01:23:25 +08:00
issues.dependency.no_permission_1 = "You do not have permission to read %d dependency"
issues.dependency.no_permission_n = "You do not have permission to read %d dependencies"
issues.dependency.no_permission.can_remove = "You do not have permission to read this dependency but can remove this dependency"
2018-09-19 17:02:08 +08:00
issues.dependency.add = Add dependency…
2018-07-18 05:23:58 +08:00
issues.dependency.cancel = Cancel
issues.dependency.remove = Remove
2018-09-07 10:32:46 +08:00
issues.dependency.remove_info = Remove this dependency
2020-04-19 08:15:07 +08:00
issues.dependency.added_dependency = `added a new dependency %s`
issues.dependency.removed_dependency = `removed a dependency %s`
2021-08-21 07:13:45 +08:00
issues.dependency.pr_closing_blockedby = Closing this pull request is blocked by the following issues
issues.dependency.issue_closing_blockedby = Closing this issue is blocked by the following issues
2018-07-18 05:23:58 +08:00
issues.dependency.issue_close_blocks = This issue blocks closing of the following issues
issues.dependency.pr_close_blocks = This pull request blocks closing of the following issues
2018-07-21 00:40:08 +08:00
issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it.
2023-04-27 00:54:17 +08:00
issues.dependency.issue_batch_close_blocked = "Cannot batch close issues that you choose, because issue #%d still has open dependencies"
2018-07-21 00:40:08 +08:00
issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it.
2018-07-18 05:23:58 +08:00
issues.dependency.blocks_short = Blocks
issues.dependency.blocked_by_short = Depends on
issues.dependency.remove_header = Remove Dependency
2018-07-21 00:40:08 +08:00
issues.dependency.issue_remove_text = This will remove the dependency from this issue. Continue?
issues.dependency.pr_remove_text = This will remove the dependency from this pull request. Continue?
issues.dependency.setting = Enable Dependencies For Issues and Pull Requests
issues.dependency.add_error_same_issue = You cannot make an issue depend on itself.
issues.dependency.add_error_dep_issue_not_exist = Dependent issue does not exist.
issues.dependency.add_error_dep_not_exist = Dependency does not exist.
issues.dependency.add_error_dep_exists = Dependency already exists.
issues.dependency.add_error_cannot_create_circular = You cannot create a dependency with two issues blocking each other.
issues.dependency.add_error_dep_not_same_repo = Both issues must be in the same repository.
2018-08-20 13:04:01 +08:00
issues.review.self.approval = You cannot approve your own pull request.
issues.review.self.rejection = You cannot request changes on your own pull request.
2018-08-06 12:43:22 +08:00
issues.review.approve = "approved these changes %s"
issues.review.comment = "reviewed %s"
2021-02-12 01:32:25 +08:00
issues.review.dismissed = "dismissed %s’ s review %s"
issues.review.dismissed_label = Dismissed
2020-04-11 06:01:41 +08:00
issues.review.left_comment = left a comment
2018-08-08 01:15:41 +08:00
issues.review.content.empty = You need to leave a comment indicating the requested change(s).
2019-01-28 01:39:49 +08:00
issues.review.reject = "requested changes %s"
2020-04-07 00:33:34 +08:00
issues.review.wait = "was requested for review %s"
issues.review.add_review_request = "requested review from %s %s"
issues.review.remove_review_request = "removed review request for %s %s"
issues.review.remove_review_request_self = "refused to review %s"
2018-08-06 12:43:22 +08:00
issues.review.pending = Pending
2023-04-18 06:04:26 +08:00
issues.review.pending.tooltip = This comment is not currently visible to other users. To submit your pending comments, select "%s" -> "%s/%s/%s" at the top of the page.
2018-08-06 12:43:22 +08:00
issues.review.review = Review
2018-11-22 21:17:36 +08:00
issues.review.reviewers = Reviewers
2020-10-15 16:17:48 +08:00
issues.review.outdated = Outdated
2023-06-22 00:08:12 +08:00
issues.review.outdated_description = Content has changed since this comment was made
issues.review.option.show_outdated_comments = Show outdated comments
issues.review.option.hide_outdated_comments = Hide outdated comments
2018-08-06 12:43:22 +08:00
issues.review.show_outdated = Show outdated
issues.review.hide_outdated = Hide outdated
2020-04-18 21:50:25 +08:00
issues.review.show_resolved = Show resolved
issues.review.hide_resolved = Hide resolved
issues.review.resolve_conversation = Resolve conversation
issues.review.un_resolve_conversation = Unresolve conversation
issues.review.resolved_by = marked this conversation as resolved
2024-09-19 03:46:41 +08:00
issues.review.commented = Comment
2024-09-06 14:40:02 +08:00
issues.review.official = Approved
issues.review.requested = Review pending
issues.review.rejected = Changes requested
issues.review.stale = Updated since approval
issues.review.unofficial = Uncounted approval
2019-10-25 22:46:37 +08:00
issues.assignee.error = Not all assignees was added due to an unexpected error.
2021-01-21 21:51:17 +08:00
issues.reference_issue.body = Body
2021-10-11 06:40:03 +08:00
issues.content_history.deleted = deleted
issues.content_history.edited = edited
issues.content_history.created = created
issues.content_history.delete_from_history = Delete from history
issues.content_history.delete_from_history_confirm = Delete from history?
issues.content_history.options = Options
2022-05-06 02:58:37 +08:00
issues.reference_link = Reference: %s
2015-07-24 04:50:05 +08:00
2021-05-08 05:10:05 +08:00
compare.compare_base = base
compare.compare_head = compare
2019-08-28 04:33:48 +08:00
pulls.desc = Enable pull requests and code reviews.
2015-11-16 23:14:12 +08:00
pulls.new = New Pull Request
2024-03-04 16:16:03 +08:00
pulls.new.blocked_user = Cannot create pull request because you are blocked by the repository owner.
2024-07-29 10:21:22 +08:00
pulls.new.must_collaborator = You must be a collaborator to create pull request.
2024-05-27 23:34:18 +08:00
pulls.edit.already_changed = Unable to save changes to the pull request. It appears the content has already been changed by another user. Please refresh the page and try editing again to avoid overwriting their changes
2021-12-24 20:14:42 +08:00
pulls.view = View Pull Request
2018-04-19 22:24:31 +08:00
pulls.compare_changes = New Pull Request
2022-04-28 23:45:33 +08:00
pulls.allow_edits_from_maintainers = Allow edits from maintainers
pulls.allow_edits_from_maintainers_desc = Users with write access to the base branch can also push to this branch
pulls.allow_edits_from_maintainers_err = Updating failed
2018-04-19 22:24:31 +08:00
pulls.compare_changes_desc = Select the branch to merge into and the branch to pull from.
2022-05-08 02:28:10 +08:00
pulls.has_viewed_file = Viewed
pulls.has_changed_since_last_review = Changed since your last review
pulls.viewed_files_label = %[1]d / %[2]d files viewed
2023-04-09 21:11:02 +08:00
pulls.expand_files = Expand all files
pulls.collapse_files = Collapse all files
2018-04-19 22:24:31 +08:00
pulls.compare_base = merge into
pulls.compare_compare = pull from
2021-09-27 20:19:34 +08:00
pulls.switch_comparison_type = Switch comparison type
pulls.switch_head_and_base = Switch head and base
2015-09-02 16:08:05 +08:00
pulls.filter_branch = Filter branch
2023-07-29 03:18:12 +08:00
pulls.show_all_commits = Show all commits
pulls.show_changes_since_your_last_review = Show changes since your last review
pulls.showing_only_single_commit = Showing only changes of commit %[1]s
pulls.showing_specified_commit_range = Showing only changes between %[1]s..%[2]s
pulls.select_commit_hold_shift_for_range = Select commit. Hold shift + click to select a range
pulls.review_only_possible_for_full_diff = Review is only possible when viewing the full diff
pulls.filter_changes_by_commit = Filter by commit
2018-04-19 22:24:31 +08:00
pulls.nothing_to_compare = These branches are equal. There is no need to create a pull request.
2024-01-21 23:13:00 +08:00
pulls.nothing_to_compare_have_tag = The selected branch/tag are equal.
2021-03-04 11:41:23 +08:00
pulls.nothing_to_compare_and_allow_empty_pr = These branches are equal. This PR will be empty.
2021-11-17 02:18:25 +08:00
pulls.has_pull_request = `A pull request between these branches already exists: <a href="%[1]s">%[2]s#%[3]d</a>`
2015-08-31 15:24:28 +08:00
pulls.create = Create Pull Request
2019-12-16 14:20:25 +08:00
pulls.title_desc = wants to merge %[1]d commits from <code>%[2]s</code> into <code id="branch_target">%[3]s</code>
2015-09-02 21:26:56 +08:00
pulls.merged_title_desc = merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s
2019-12-16 14:20:25 +08:00
pulls.change_target_branch_at = `changed target branch from <b>%s</b> to <b>%s</b> %s`
2015-09-02 07:07:02 +08:00
pulls.tab_conversation = Conversation
pulls.tab_commits = Commits
2018-04-19 22:24:31 +08:00
pulls.tab_files = Files Changed
2017-03-09 21:24:57 +08:00
pulls.reopen_to_merge = Please reopen this pull request to perform a merge.
2019-04-21 04:50:34 +08:00
pulls.cant_reopen_deleted_branch = This pull request cannot be reopened because the branch was deleted.
2015-09-02 21:26:56 +08:00
pulls.merged = Merged
2023-04-24 02:12:36 +08:00
pulls.merged_success = Pull request successfully merged and closed
pulls.closed = Pull request closed
2021-03-04 11:41:23 +08:00
pulls.manually_merged = Manually merged
2023-04-24 02:12:36 +08:00
pulls.merged_info_text = The branch %s can now be deleted.
2019-12-16 14:20:25 +08:00
pulls.is_closed = The pull request has been closed.
2018-08-14 03:04:39 +08:00
pulls.title_wip_desc = `<a href="#">Start the title with <strong>%s</strong></a> to prevent the pull request from being merged accidentally.`
2021-05-31 18:46:20 +08:00
pulls.cannot_merge_work_in_progress = This pull request is marked as a work in progress.
2021-05-28 04:02:04 +08:00
pulls.still_in_progress = Still in progress?
pulls.add_prefix = Add <strong>%s</strong> prefix
pulls.remove_prefix = Remove <strong>%s</strong> prefix
2018-04-19 22:24:31 +08:00
pulls.data_broken = This pull request is broken due to missing fork information.
2019-02-05 19:54:49 +08:00
pulls.files_conflicted = This pull request has changes conflicting with the target branch.
2018-04-19 22:24:31 +08:00
pulls.is_checking = "Merge conflict checking is in progress. Try again in few moments."
2022-07-13 16:22:51 +08:00
pulls.is_ancestor = "This branch is already included in the target branch. There is nothing to merge."
pulls.is_empty = "The changes on this branch are already on the target branch. This will be an empty commit."
2019-09-18 13:39:45 +08:00
pulls.required_status_check_failed = Some required checks were not successful.
2020-04-16 04:35:18 +08:00
pulls.required_status_check_missing = Some required checks are missing.
2019-09-18 13:39:45 +08:00
pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
2024-09-06 14:40:02 +08:00
pulls.blocked_by_approvals = "This pull request doesn't have enough required approvals yet. %d of %d official approvals granted."
pulls.blocked_by_approvals_whitelisted = "This pull request doesn't have enough required approvals yet. %d of %d approvals granted from users or teams on the allowlist."
2023-08-08 23:25:05 +08:00
pulls.blocked_by_rejection = "This pull request has changes requested by an official reviewer."
pulls.blocked_by_official_review_requests = "This pull request has official review requests."
pulls.blocked_by_outdated_branch = "This pull request is blocked because it's outdated."
pulls.blocked_by_changed_protected_files_1 = "This pull request is blocked because it changes a protected file:"
pulls.blocked_by_changed_protected_files_n = "This pull request is blocked because it changes protected files:"
2015-12-10 06:12:21 +08:00
pulls.can_auto_merge_desc = This pull request can be merged automatically.
2018-04-19 22:24:31 +08:00
pulls.cannot_auto_merge_desc = This pull request cannot be merged automatically due to conflicts.
pulls.cannot_auto_merge_helper = Merge manually to resolve the conflicts.
2020-02-08 00:38:18 +08:00
pulls.num_conflicting_files_1 = "%d conflicting file"
pulls.num_conflicting_files_n = "%d conflicting files"
2020-03-06 11:44:06 +08:00
pulls.approve_count_1 = "%d approval"
pulls.approve_count_n = "%d approvals"
pulls.reject_count_1 = "%d change request"
pulls.reject_count_n = "%d change requests"
2020-04-07 00:33:34 +08:00
pulls.waiting_count_1 = "%d waiting review"
pulls.waiting_count_n = "%d waiting reviews"
2021-03-04 11:41:23 +08:00
pulls.wrong_commit_id = "commit id must be a commit id on the target branch"
2020-03-06 11:44:06 +08:00
2018-04-19 22:24:31 +08:00
pulls.no_merge_desc = This pull request cannot be merged because all repository merge options are disabled.
pulls.no_merge_helper = Enable merge options in the repository settings or merge the pull request manually.
2023-01-09 02:25:28 +08:00
pulls.no_merge_wip = This pull request cannot be merged because it is marked as being a work in progress.
2020-01-11 15:29:34 +08:00
pulls.no_merge_not_ready = This pull request is not ready to be merged, check review status and status checks.
pulls.no_merge_access = You are not authorized to merge this pull request.
2021-08-03 03:23:57 +08:00
pulls.merge_pull_request = Create merge commit
pulls.rebase_merge_pull_request = Rebase then fast-forward
pulls.rebase_merge_commit_pull_request = Rebase then create merge commit
pulls.squash_merge_pull_request = Create squash commit
2024-02-13 06:37:23 +08:00
pulls.fast_forward_only_merge_pull_request = Fast-forward only
2021-03-04 11:41:23 +08:00
pulls.merge_manually = Manually merged
pulls.merge_commit_id = The merge commit ID
2020-01-15 16:32:57 +08:00
pulls.require_signed_wont_sign = The branch requires signed commits but this merge will not be signed
2022-06-11 22:44:20 +08:00
2018-04-19 22:24:31 +08:00
pulls.invalid_merge_option = You cannot use this merge option for this pull request.
2020-10-21 07:50:10 +08:00
pulls.merge_conflict = Merge Failed: There was a conflict whilst merging. Hint: Try a different strategy
pulls.merge_conflict_summary = Error Message
pulls.rebase_conflict = Merge Failed: There was a conflict whilst rebasing commit: %[1]s. Hint: Try a different strategy
pulls.rebase_conflict_summary = Error Message
2019-11-10 16:42:51 +08:00
pulls.unrelated_histories = Merge Failed: The merge head and base do not share a common history. Hint: Try a different strategy
pulls.merge_out_of_date = Merge Failed: Whilst generating the merge, the base was updated. Hint: Try again.
2021-12-20 08:32:54 +08:00
pulls.head_out_of_date = Merge Failed: Whilst generating the merge, the head was updated. Hint: Try again.
2023-09-06 10:13:08 +08:00
pulls.has_merged = Failed: The pull request has been merged, you cannot merge again or change the target branch.
2024-03-02 20:45:14 +08:00
pulls.push_rejected = Push Failed: The push was rejected. Review the Git Hooks for this repository.
2020-10-21 07:50:10 +08:00
pulls.push_rejected_summary = Full Rejection Message
2024-03-02 20:45:14 +08:00
pulls.push_rejected_no_message = Push Failed: The push was rejected but there was no remote message. Review the Git Hooks for this repository
2018-04-19 22:24:31 +08:00
pulls.open_unmerged_pull_exists = `You cannot perform a reopen operation because there is a pending pull request (#%d) with identical properties.`
2019-06-30 15:57:59 +08:00
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
2020-04-17 03:08:20 +08:00
pulls.status_checks_warning = Some checks reported warnings
pulls.status_checks_failure = Some checks failed
pulls.status_checks_error = Some checks reported errors
2020-09-12 15:29:50 +08:00
pulls.status_checks_requested = Required
pulls.status_checks_details = Details
2023-11-02 22:49:02 +08:00
pulls.status_checks_hide_all = Hide all checks
pulls.status_checks_show_all = Show all checks
2021-08-31 22:03:45 +08:00
pulls.update_branch = Update branch by merge
pulls.update_branch_rebase = Update branch by rebase
2020-01-17 14:03:40 +08:00
pulls.update_branch_success = Branch update was successful
pulls.update_not_allowed = You are not allowed to update branch
pulls.outdated_with_base_branch = This branch is out-of-date with the base branch
2023-03-16 23:11:31 +08:00
pulls.close = Close Pull Request
2020-04-30 21:49:12 +08:00
pulls.closed_at = `closed this pull request <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at = `reopened this pull request <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2023-10-25 23:01:31 +08:00
pulls.cmd_instruction_hint = `View <a class="show-instruction">command line instructions</a>.`
pulls.cmd_instruction_checkout_title = Checkout
pulls.cmd_instruction_checkout_desc = From your project repository, check out a new branch and test the changes.
pulls.cmd_instruction_merge_title = Merge
pulls.cmd_instruction_merge_desc = Merge the changes and update on Gitea.
2024-08-10 09:09:34 +08:00
pulls.cmd_instruction_merge_warning = Warning: This operation can not merge pull request because "autodetect manual merge" was not enable
2022-11-23 18:24:03 +08:00
pulls.clear_merge_message = Clear merge message
pulls.clear_merge_message_hint = Clearing the merge message will only remove the commit message content and keep generated git trailers such as "Co-Authored-By …".
2022-06-11 22:44:20 +08:00
pulls.auto_merge_button_when_succeed = (When checks succeed)
pulls.auto_merge_when_succeed = Auto merge when all checks succeed
pulls.auto_merge_newly_scheduled = The pull request was scheduled to merge when all checks succeed.
pulls.auto_merge_has_pending_schedule = %[1]s scheduled this pull request to auto merge when all checks succeed %[2]s.
pulls.auto_merge_cancel_schedule = Cancel auto merge
pulls.auto_merge_not_scheduled = This pull request is not scheduled to auto merge.
pulls.auto_merge_canceled_schedule = The auto merge was canceled for this pull request.
pulls.auto_merge_newly_scheduled_comment = `scheduled this pull request to auto merge when all checks succeed %[1]s`
pulls.auto_merge_canceled_schedule_comment = `canceled auto merging this pull request when all checks succeed %[1]s`
2015-08-08 22:43:14 +08:00
2022-06-19 18:05:15 +08:00
pulls.delete.title = Delete this pull request?
pulls.delete.text = Do you really want to delete this pull request? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
2023-07-08 11:19:00 +08:00
pulls.recently_pushed_new_branches = You pushed on branch <strong>%[1]s</strong> %[2]s
2023-08-04 06:07:15 +08:00
pull.deleted_branch = (deleted):%s
2024-09-24 12:14:57 +08:00
pull.agit_documentation = Review documentation about AGit
2023-08-04 06:07:15 +08:00
2024-05-27 23:34:18 +08:00
comments.edit.already_changed = Unable to save changes to the comment. It appears the content has already been changed by another user. Please refresh the page and try editing again to avoid overwriting their changes
2015-08-03 17:42:09 +08:00
milestones.new = New Milestone
milestones.closed = Closed %s
2023-04-13 01:05:53 +08:00
milestones.update_ago = Updated %s
2016-01-02 07:30:00 +08:00
milestones.no_due_date = No due date
2015-08-03 17:42:09 +08:00
milestones.open = Open
milestones.close = Close
2023-08-08 23:25:05 +08:00
milestones.new_subheader = Milestones can help you organize issues and track their progress.
2023-06-05 14:25:46 +08:00
milestones.completeness = <strong>%d%%</strong> Completed
2015-08-05 15:24:26 +08:00
milestones.create = Create Milestone
milestones.title = Title
milestones.desc = Description
milestones.due_date = Due Date (optional)
2015-08-05 18:26:18 +08:00
milestones.clear = Clear
2018-04-19 22:24:31 +08:00
milestones.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
2023-04-18 06:04:26 +08:00
milestones.create_success = The milestone "%s" has been created.
2015-08-05 18:26:18 +08:00
milestones.edit = Edit Milestone
2018-04-19 22:24:31 +08:00
milestones.edit_subheader = Milestones organize issues and track progress.
2015-08-05 18:26:18 +08:00
milestones.cancel = Cancel
2018-04-19 22:24:31 +08:00
milestones.modify = Update Milestone
2023-04-18 06:04:26 +08:00
milestones.edit_success = Milestone "%s" has been updated.
2018-04-19 22:24:31 +08:00
milestones.deletion = Delete Milestone
milestones.deletion_desc = Deleting a milestone removes it from all related issues. Continue?
milestones.deletion_success = The milestone has been deleted.
2024-07-16 16:08:54 +08:00
milestones.filter_sort.name = Name
2023-08-21 21:11:07 +08:00
milestones.filter_sort.earliest_due_data = Earliest due date
milestones.filter_sort.latest_due_date = Latest due date
2016-12-24 22:41:09 +08:00
milestones.filter_sort.least_complete = Least complete
milestones.filter_sort.most_complete = Most complete
milestones.filter_sort.most_issues = Most issues
milestones.filter_sort.least_issues = Least issues
2015-08-03 17:42:09 +08:00
2023-08-08 23:25:05 +08:00
signing.will_sign = This commit will be signed with key "%s".
signing.wont_sign.error = There was an error whilst checking if the commit could be signed.
signing.wont_sign.nokey = There is no key available to sign this commit.
signing.wont_sign.never = Commits are never signed.
signing.wont_sign.always = Commits are always signed.
signing.wont_sign.pubkey = The commit will not be signed because you do not have a public key associated with your account.
signing.wont_sign.twofa = You must have two factor authentication enabled to have commits signed.
signing.wont_sign.parentsigned = The commit will not be signed as the parent commit is not signed.
signing.wont_sign.basesigned = The merge will not be signed as the base commit is not signed.
signing.wont_sign.headsigned = The merge will not be signed as the head commit is not signed.
signing.wont_sign.commitssigned = The merge will not be signed as all the associated commits are not signed.
signing.wont_sign.approved = The merge will not be signed as the PR is not approved.
signing.wont_sign.not_signed_in = You are not signed in.
2020-01-15 16:32:57 +08:00
2022-01-05 11:37:00 +08:00
ext_wiki = Access to External Wiki
2018-04-19 22:24:31 +08:00
ext_wiki.desc = Link to an external wiki.
2017-05-18 22:54:24 +08:00
2015-11-26 09:10:25 +08:00
wiki = Wiki
2018-04-19 22:24:31 +08:00
wiki.welcome = Welcome to the Wiki.
wiki.welcome_desc = The wiki lets you write and share documentation with collaborators.
wiki.desc = Write and share documentation with collaborators.
wiki.create_first_page = Create the First Page
2015-11-27 14:50:38 +08:00
wiki.page = Page
wiki.filter_page = Filter page
2018-04-19 22:24:31 +08:00
wiki.new_page = Page
2023-04-10 23:56:57 +08:00
wiki.page_title = Page title
wiki.page_content = Page content
2017-03-09 21:24:57 +08:00
wiki.default_commit_message = Write a note about this page update (optional).
2015-11-26 09:10:25 +08:00
wiki.save_page = Save Page
2015-11-27 13:24:24 +08:00
wiki.last_commit_info = %s edited this page %s
2015-11-27 14:50:38 +08:00
wiki.edit_page_button = Edit
wiki.new_page_button = New Page
2019-07-08 16:20:22 +08:00
wiki.file_revision = Page Revision
wiki.wiki_page_revisions = Wiki Page Revisions
wiki.back_to_wiki = Back to wiki page
2016-03-04 06:06:50 +08:00
wiki.delete_page_button = Delete Page
2023-04-18 06:04:26 +08:00
wiki.delete_page_notice_1 = Deleting the wiki page "%s" cannot be undone. Continue?
2017-02-06 23:17:18 +08:00
wiki.page_already_exists = A wiki page with the same name already exists.
2023-04-18 06:04:26 +08:00
wiki.reserved_page = The wiki page name "%s" is reserved.
2015-11-27 15:16:12 +08:00
wiki.pages = Pages
wiki.last_updated = Last updated %s
2021-12-03 15:28:54 +08:00
wiki.page_name_desc = Enter a name for this Wiki page. Some special names are: 'Home', '_Sidebar' and '_Footer'.
2023-04-20 01:50:10 +08:00
wiki.original_git_entry_tooltip = View original Git file instead of using friendly link.
2015-11-26 09:10:25 +08:00
2017-10-15 07:17:39 +08:00
activity = Activity
2024-02-16 06:21:13 +08:00
activity.navbar.pulse = Pulse
2024-02-24 07:41:24 +08:00
activity.navbar.code_frequency = Code Frequency
2024-02-24 18:22:51 +08:00
activity.navbar.contributors = Contributors
activity.navbar.recent_commits = Recent Commits
2017-10-15 07:17:39 +08:00
activity.period.filter_label = Period:
activity.period.daily = 1 day
activity.period.halfweekly = 3 days
activity.period.weekly = 1 week
activity.period.monthly = 1 month
2019-11-05 13:45:48 +08:00
activity.period.quarterly = 3 months
activity.period.semiyearly = 6 months
activity.period.yearly = 1 year
2017-10-15 07:17:39 +08:00
activity.overview = Overview
activity.active_prs_count_1 = <strong>%d</strong> Active Pull Request
activity.active_prs_count_n = <strong>%d</strong> Active Pull Requests
activity.merged_prs_count_1 = Merged Pull Request
activity.merged_prs_count_n = Merged Pull Requests
activity.opened_prs_count_1 = Proposed Pull Request
activity.opened_prs_count_n = Proposed Pull Requests
activity.title.user_1 = %d user
activity.title.user_n = %d users
activity.title.prs_1 = %d Pull request
activity.title.prs_n = %d Pull requests
activity.title.prs_merged_by = %s merged by %s
activity.title.prs_opened_by = %s proposed by %s
activity.merged_prs_label = Merged
activity.opened_prs_label = Proposed
activity.active_issues_count_1 = <strong>%d</strong> Active Issue
activity.active_issues_count_n = <strong>%d</strong> Active Issues
activity.closed_issues_count_1 = Closed Issue
activity.closed_issues_count_n = Closed Issues
activity.title.issues_1 = %d Issue
activity.title.issues_n = %d Issues
2021-02-28 15:54:12 +08:00
activity.title.issues_closed_from = %s closed from %s
2017-10-15 07:17:39 +08:00
activity.title.issues_created_by = %s created by %s
activity.closed_issue_label = Closed
activity.new_issues_count_1 = New Issue
activity.new_issues_count_n = New Issues
activity.new_issue_label = Opened
2018-04-19 22:24:31 +08:00
activity.title.unresolved_conv_1 = %d Unresolved Conversation
activity.title.unresolved_conv_n = %d Unresolved Conversations
activity.unresolved_conv_desc = These recently changed issues and pull requests have not been resolved yet.
2017-10-15 07:17:39 +08:00
activity.unresolved_conv_label = Open
activity.title.releases_1 = %d Release
activity.title.releases_n = %d Releases
activity.title.releases_published_by = %s published by %s
activity.published_release_label = Published
2019-05-04 20:39:03 +08:00
activity.no_git_activity = There has not been any commit activity in this period.
activity.git_stats_exclude_merges = Excluding merges,
activity.git_stats_author_1 = %d author
activity.git_stats_author_n = %d authors
2019-05-05 04:32:37 +08:00
activity.git_stats_pushed_1 = has pushed
activity.git_stats_pushed_n = have pushed
2019-05-04 20:39:03 +08:00
activity.git_stats_commit_1 = %d commit
activity.git_stats_commit_n = %d commits
activity.git_stats_push_to_branch = to %s and
activity.git_stats_push_to_all_branches = to all branches.
activity.git_stats_on_default_branch = On %s,
activity.git_stats_file_1 = %d file
activity.git_stats_file_n = %d files
2019-05-05 04:32:37 +08:00
activity.git_stats_files_changed_1 = has changed
activity.git_stats_files_changed_n = have changed
activity.git_stats_additions = and there have been
2019-05-04 20:39:03 +08:00
activity.git_stats_addition_1 = %d addition
activity.git_stats_addition_n = %d additions
activity.git_stats_and_deletions = and
activity.git_stats_deletion_1 = %d deletion
activity.git_stats_deletion_n = %d deletions
2017-10-15 07:17:39 +08:00
2024-02-16 06:21:13 +08:00
contributors.contribution_type.filter_label = Contribution type:
contributors.contribution_type.commits = Commits
contributors.contribution_type.additions = Additions
contributors.contribution_type.deletions = Deletions
2014-08-03 01:47:33 +08:00
settings = Settings
2017-05-23 16:01:27 +08:00
settings.desc = Settings is where you can manage the settings for the repository
2018-04-19 22:24:31 +08:00
settings.options = Repository
settings.collaboration = Collaborators
settings.collaboration.admin = Administrator
2016-06-28 00:22:30 +08:00
settings.collaboration.write = Write
settings.collaboration.read = Read
2019-09-24 04:08:03 +08:00
settings.collaboration.owner = Owner
2016-06-28 00:22:30 +08:00
settings.collaboration.undefined = Undefined
2014-08-03 01:47:33 +08:00
settings.hooks = Webhooks
2014-10-07 05:50:00 +08:00
settings.githooks = Git Hooks
2014-08-03 01:47:33 +08:00
settings.basic_settings = Basic Settings
2016-08-31 07:18:33 +08:00
settings.mirror_settings = Mirror Settings
2023-05-29 19:32:52 +08:00
settings.mirror_settings.docs = Set up your repository to automatically synchronize commits, tags and branches with another repository.
settings.mirror_settings.docs.disabled_pull_mirror.instructions = Set up your project to automatically push commits, tags and branches to another repository. Pull mirrors have been disabled by your site administrator.
settings.mirror_settings.docs.disabled_push_mirror.instructions = Set up your project to automatically pull commits, tags and branches from another repository.
settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning = Right now, this can only be done in the "New Migration" menu. For more information, please consult:
settings.mirror_settings.docs.disabled_push_mirror.info = Push mirrors have been disabled by your site administrator.
settings.mirror_settings.docs.no_new_mirrors = Your repository is mirroring changes to or from another repository. Please keep in mind that you can't create any new mirrors at this time.
settings.mirror_settings.docs.can_still_use = Although you can't modify existing mirrors or create new ones, you may still use your existing mirror.
settings.mirror_settings.docs.pull_mirror_instructions = To set up a pull mirror, please consult:
2023-08-08 23:25:05 +08:00
settings.mirror_settings.docs.more_information_if_disabled = You can find out more about push and pull mirrors here:
2023-05-29 19:32:52 +08:00
settings.mirror_settings.docs.doc_link_title = How do I mirror repositories?
2023-08-08 23:25:05 +08:00
settings.mirror_settings.docs.doc_link_pull_section = the "Pulling from a remote repository" section of the documentation.
2023-05-29 19:32:52 +08:00
settings.mirror_settings.docs.pulling_remote_title = Pulling from a remote repository
2021-06-15 01:20:43 +08:00
settings.mirror_settings.mirrored_repository = Mirrored repository
2024-02-01 08:04:23 +08:00
settings.mirror_settings.pushed_repository = Pushed repository
2021-06-15 01:20:43 +08:00
settings.mirror_settings.direction = Direction
settings.mirror_settings.direction.pull = Pull
settings.mirror_settings.direction.push = Push
settings.mirror_settings.last_update = Last update
settings.mirror_settings.push_mirror.none = No push mirrors configured
settings.mirror_settings.push_mirror.remote_url = Git Remote Repository URL
settings.mirror_settings.push_mirror.add = Add Push Mirror
2023-08-02 00:00:59 +08:00
settings.mirror_settings.push_mirror.edit_sync_time = Edit mirror sync interval
2018-04-19 22:24:31 +08:00
settings.sync_mirror = Synchronize Now
2023-10-02 22:52:18 +08:00
settings.pull_mirror_sync_in_progress = Pulling changes from the remote %s at the moment.
settings.push_mirror_sync_in_progress = Pushing changes to the remote %s at the moment.
2018-04-19 22:24:31 +08:00
settings.site = Website
2014-08-03 01:47:33 +08:00
settings.update_settings = Update Settings
2023-05-04 15:27:15 +08:00
settings.update_mirror_settings = Update Mirror Settings
2023-04-29 18:44:52 +08:00
settings.branches.switch_default_branch = Switch Default Branch
2021-05-17 02:24:47 +08:00
settings.branches.update_default_branch = Update Default Branch
2023-01-16 16:00:22 +08:00
settings.branches.add_new_rule = Add New Rule
2015-12-05 10:30:33 +08:00
settings.advanced_settings = Advanced Settings
2018-04-19 22:24:31 +08:00
settings.wiki_desc = Enable Repository Wiki
settings.use_internal_wiki = Use Built-In Wiki
2024-03-06 14:26:32 +08:00
settings.default_wiki_branch_name = Default Wiki Branch Name
2024-04-17 23:58:37 +08:00
settings.default_wiki_everyone_access = Default Access Permission for signed-in users:
2024-03-06 14:26:32 +08:00
settings.failed_to_change_default_wiki_branch = Failed to change the default wiki branch.
2018-04-19 22:24:31 +08:00
settings.use_external_wiki = Use External Wiki
2015-12-11 17:55:08 +08:00
settings.external_wiki_url = External Wiki URL
2018-04-19 22:24:31 +08:00
settings.external_wiki_url_error = The external wiki URL is not a valid URL.
settings.external_wiki_url_desc = Visitors are redirected to the external wiki URL when clicking the wiki tab.
settings.issues_desc = Enable Repository Issue Tracker
settings.use_internal_issue_tracker = Use Built-In Issue Tracker
settings.use_external_issue_tracker = Use External Issue Tracker
2016-11-04 16:06:54 +08:00
settings.external_tracker_url = External Issue Tracker URL
2018-04-19 22:24:31 +08:00
settings.external_tracker_url_error = The external issue tracker URL is not a valid URL.
settings.external_tracker_url_desc = Visitors are redirected to the external issue tracker URL when clicking on the issues tab.
2015-12-05 10:30:33 +08:00
settings.tracker_url_format = External Issue Tracker URL Format
2018-08-15 14:29:37 +08:00
settings.tracker_url_format_error = The external issue tracker URL format is not a valid URL.
2018-04-19 22:24:31 +08:00
settings.tracker_issue_style = External Issue Tracker Number Format
2016-07-25 16:55:51 +08:00
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
2022-06-10 13:39:53 +08:00
settings.tracker_issue_style.regexp = Regular Expression
settings.tracker_issue_style.regexp_pattern = Regular Expression Pattern
settings.tracker_issue_style.regexp_pattern_desc = The first captured group will be used in place of <code>{index}</code>.
2018-04-19 22:24:31 +08:00
settings.tracker_url_format_desc = Use the placeholders <code>{user}</code>, <code>{repo}</code> and <code>{index}</code> for the username, repository name and issue index.
settings.enable_timetracker = Enable Time Tracking
settings.allow_only_contributors_to_track_time = Let Only Contributors Track Time
settings.pulls_desc = Enable Repository Pull Requests
settings.pulls.ignore_whitespace = Ignore Whitespace for Conflicts
2021-03-04 11:41:23 +08:00
settings.pulls.enable_autodetect_manual_merge = Enable autodetect manual merge (Note: In some special cases, misjudgments can occur)
2022-03-04 16:30:49 +08:00
settings.pulls.allow_rebase_update = Enable updating pull request branch by rebase
2021-07-13 07:26:25 +08:00
settings.pulls.default_delete_branch_after_merge = Delete pull request branch after merge by default
2023-02-13 14:09:52 +08:00
settings.pulls.default_allow_edits_from_maintainers = Allow edits from maintainers by default
2023-02-01 09:31:19 +08:00
settings.releases_desc = Enable Repository Releases
2022-03-30 16:42:47 +08:00
settings.packages_desc = Enable Repository Packages Registry
2024-03-04 10:56:52 +08:00
settings.projects_desc = Enable Projects
settings.projects_mode_desc = Projects Mode (which kinds of projects to show)
settings.projects_mode_repo = Repo projects only
settings.projects_mode_owner = Only user or org projects
settings.projects_mode_all = All projects
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00
settings.actions_desc = Enable Repository Actions
2018-04-19 22:24:31 +08:00
settings.admin_settings = Administrator Settings
settings.admin_enable_health_check = Enable Repository Health Checks (git fsck)
2021-12-16 23:55:12 +08:00
settings.admin_code_indexer = Code Indexer
settings.admin_stats_indexer = Code Statistics Indexer
settings.admin_indexer_commit_sha = Last Indexed SHA
settings.admin_indexer_unindexed = Unindexed
settings.reindex_button = Add to Reindex Queue
settings.reindex_requested = Reindex Requested
2019-02-11 03:27:19 +08:00
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
2015-12-05 10:30:33 +08:00
settings.danger_zone = Danger Zone
2015-03-20 03:26:04 +08:00
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
2018-04-19 22:24:31 +08:00
settings.convert = Convert to Regular Repository
settings.convert_desc = You can convert this mirror into a regular repository. This cannot be undone.
settings.convert_notices_1 = This operation will convert the mirror into a regular repository and cannot be undone.
settings.convert_confirm = Convert Repository
settings.convert_succeed = The mirror has been converted into a regular repository.
2020-07-02 22:09:09 +08:00
settings.convert_fork = Convert to Regular Repository
settings.convert_fork_desc = You can convert this fork into a regular repository. This cannot be undone.
settings.convert_fork_notices_1 = This operation will convert the fork into a regular repository and cannot be undone.
settings.convert_fork_confirm = Convert Repository
settings.convert_fork_succeed = The fork has been converted into a regular repository.
2014-08-03 01:47:33 +08:00
settings.transfer = Transfer Ownership
2021-03-01 08:47:30 +08:00
settings.transfer.rejected = Repository transfer was rejected.
settings.transfer.success = Repository transfer was successful.
2024-03-04 16:16:03 +08:00
settings.transfer.blocked_user = Cannot transfer repository because you are blocked by the new owner.
2021-03-01 08:47:30 +08:00
settings.transfer_abort = Cancel transfer
settings.transfer_abort_invalid = You cannot cancel a non existent repository transfer.
2023-08-08 23:25:05 +08:00
settings.transfer_abort_success = The repository transfer to %s was successfully canceled.
2018-04-19 22:24:31 +08:00
settings.transfer_desc = Transfer this repository to a user or to an organization for which you have administrator rights.
2021-03-01 08:47:30 +08:00
settings.transfer_form_title = Enter the repository name as confirmation:
settings.transfer_in_progress = There is currently an ongoing transfer. Please cancel it if you will like to transfer this repository to another user.
2018-04-19 22:24:31 +08:00
settings.transfer_notices_1 = - You will lose access to the repository if you transfer it to an individual user.
settings.transfer_notices_2 = - You will keep access to the repository if you transfer it to an organization that you (co-)own.
2021-06-15 02:30:35 +08:00
settings.transfer_notices_3 = - If the repository is private and is transferred to an individual user, this action makes sure that the user does have at least read permission (and changes permissions if necessary).
2024-08-13 10:53:43 +08:00
settings.transfer_notices_4 = - If the repository belongs to an organization, and you transfer it to another organization or individual, you will lose the links between the repository's issues and the organization's project board.
2021-03-01 08:47:30 +08:00
settings.transfer_owner = New Owner
settings.transfer_perform = Perform Transfer
settings.transfer_started = This repository has been marked for transfer and awaits confirmation from "%s"
settings.transfer_succeed = The repository has been transferred.
2020-09-20 00:44:55 +08:00
settings.signing_settings = Signing Verification Settings
settings.trust_model = Signature Trust Model
settings.trust_model.default = Default Trust Model
settings.trust_model.default.desc = Use the default repository trust model for this installation.
settings.trust_model.collaborator = Collaborator
settings.trust_model.collaborator.long = Collaborator: Trust signatures by collaborators
settings.trust_model.collaborator.desc = Valid signatures by collaborators of this repository will be marked "trusted" - (whether they match the committer or not). Otherwise, valid signatures will be marked "untrusted" if the signature matches the committer and "unmatched" if not.
settings.trust_model.committer = Committer
settings.trust_model.committer.long = Committer: Trust signatures that match committers (This matches GitHub and will force Gitea signed commits to have Gitea as the committer)
2023-03-24 01:27:03 +08:00
settings.trust_model.committer.desc = Valid signatures will only be marked "trusted" if they match the committer, otherwise they will be marked "unmatched". This forces Gitea to be the committer on signed commits with the actual committer marked as Co-authored-by: and Co-committed-by: trailer in the commit. The default Gitea key must match a User in the database.
2020-09-20 00:44:55 +08:00
settings.trust_model.collaboratorcommitter = Collaborator+Committer
settings.trust_model.collaboratorcommitter.long = Collaborator+Committer: Trust signatures by collaborators which match the committer
2020-10-14 19:17:40 +08:00
settings.trust_model.collaboratorcommitter.desc = Valid signatures by collaborators of this repository will be marked "trusted" if they match the committer. Otherwise, valid signatures will be marked "untrusted" if the signature matches the committer and "unmatched" otherwise. This will force Gitea to be marked as the committer on signed commits with the actual committer marked as Co-Authored-By: and Co-Committed-By: trailer in the commit. The default Gitea key must match a User in the database.
2018-04-19 22:24:31 +08:00
settings.wiki_delete = Delete Wiki Data
settings.wiki_delete_desc = Deleting repository wiki data is permanent and cannot be undone.
settings.wiki_delete_notices_1 = - This will permanently delete and disable the repository wiki for %s.
settings.confirm_wiki_delete = Delete Wiki Data
settings.wiki_deletion_success = The repository wiki data has been deleted.
2016-02-15 05:40:39 +08:00
settings.delete = Delete This Repository
2018-04-19 22:24:31 +08:00
settings.delete_desc = Deleting a repository is permanent and cannot be undone.
2015-09-01 18:31:47 +08:00
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
2018-04-19 22:24:31 +08:00
settings.delete_notices_2 = - This operation will permanently delete the <strong>%s</strong> repository including code, issues, comments, wiki data and collaborator settings.
settings.delete_notices_fork_1 = - Forks of this repository will become independent after deletion.
settings.deletion_success = The repository has been deleted.
settings.update_settings_success = The repository settings have been updated.
2023-05-06 17:39:06 +08:00
settings.update_settings_no_unit = The repository should allow at least some sort of interaction.
2018-04-19 22:24:31 +08:00
settings.confirm_delete = Delete Repository
settings.add_collaborator = Add Collaborator
settings.add_collaborator_success = The collaborator has been added.
2023-01-09 02:25:28 +08:00
settings.add_collaborator_inactive_user = Cannot add an inactive user as a collaborator.
settings.add_collaborator_owner = Cannot add an owner as a collaborator.
2018-08-07 18:01:06 +08:00
settings.add_collaborator_duplicate = The collaborator is already added to this repository.
2024-03-04 16:16:03 +08:00
settings.add_collaborator.blocked_user = The collaborator is blocked by the repository owner or vice versa.
2018-04-19 22:24:31 +08:00
settings.delete_collaborator = Remove
settings.collaborator_deletion = Remove Collaborator
settings.collaborator_deletion_desc = Removing a collaborator will revoke their access to this repository. Continue?
settings.remove_collaborator_success = The collaborator has been removed.
settings.org_not_allowed_to_be_collaborator = Organizations cannot be added as a collaborator.
2019-09-24 04:08:03 +08:00
settings.change_team_access_not_allowed = Changing team access for repository has been restricted to organization owner
settings.team_not_in_organization = The team is not in the same organization as the repository
2020-05-08 20:39:17 +08:00
settings.teams = Teams
settings.add_team = Add Team
2019-09-24 04:08:03 +08:00
settings.add_team_duplicate = Team already has the repository
settings.add_team_success = The team now have access to the repository.
2020-05-08 20:39:17 +08:00
settings.change_team_permission_tip = Team's permission is set on the team setting page and can't be changed per repository
settings.delete_team_tip = This team has access to all repositories and can't be removed
2019-09-24 04:08:03 +08:00
settings.remove_team_success = The team's access to the repository has been removed.
2014-08-10 01:29:51 +08:00
settings.add_webhook = Add Webhook
2018-09-10 22:31:08 +08:00
settings.add_webhook.invalid_channel_name = Webhook channel name cannot be empty and cannot contain only a # character.
2018-07-04 07:52:36 +08:00
settings.hooks_desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
2018-04-19 22:24:31 +08:00
settings.webhook_deletion = Remove Webhook
settings.webhook_deletion_desc = Removing a webhook deletes its settings and delivery history. Continue?
settings.webhook_deletion_success = The webhook has been removed.
2015-12-06 02:24:13 +08:00
settings.webhook.test_delivery = Test Delivery
2018-04-19 22:24:31 +08:00
settings.webhook.test_delivery_desc = Test this webhook with a fake event.
2023-09-25 15:33:00 +08:00
settings.webhook.test_delivery_desc_disabled = To test this webhook with a fake event, activate it.
2015-08-27 23:06:14 +08:00
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
2018-04-19 22:24:31 +08:00
settings.webhook.payload = Content
2015-08-27 23:06:14 +08:00
settings.webhook.body = Body
2022-01-06 05:00:20 +08:00
settings.webhook.replay.description = Replay this webhook.
2023-09-25 15:33:00 +08:00
settings.webhook.replay.description_disabled = To replay this webhook, activate it.
2022-01-06 05:00:20 +08:00
settings.webhook.delivery.success = An event has been added to the delivery queue. It may take few seconds before it shows up in the delivery history.
2021-12-24 11:56:57 +08:00
settings.githooks_desc = "Git Hooks are powered by Git itself. You can edit hook files below to set up custom operations."
2015-03-20 03:26:04 +08:00
settings.githook_edit_desc = If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
2014-10-07 05:50:00 +08:00
settings.githook_name = Hook Name
settings.githook_content = Hook Content
settings.update_githook = Update Hook
2018-07-04 07:52:36 +08:00
settings.add_webhook_desc = Gitea will send <code>POST</code> requests with a specified content type to the target URL. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
2018-04-19 22:24:31 +08:00
settings.payload_url = Target URL
2019-05-06 02:09:02 +08:00
settings.http_method = HTTP Method
2018-04-19 22:24:31 +08:00
settings.content_type = POST Content Type
2014-08-10 06:40:10 +08:00
settings.secret = Secret
2015-08-29 11:49:59 +08:00
settings.slack_username = Username
settings.slack_icon_url = Icon URL
2021-10-22 05:51:03 +08:00
settings.slack_color = Color
2017-08-28 13:06:45 +08:00
settings.discord_username = Username
settings.discord_icon_url = Icon URL
2018-04-19 22:24:31 +08:00
settings.event_desc = Trigger On:
settings.event_push_only = Push Events
settings.event_send_everything = All Events
settings.event_choose = Custom Events…
2020-03-06 13:10:48 +08:00
settings.event_header_repository = Repository Events
2015-08-28 23:36:13 +08:00
settings.event_create = Create
2018-04-19 22:24:31 +08:00
settings.event_create_desc = Branch or tag created.
2018-05-16 22:01:55 +08:00
settings.event_delete = Delete
2020-03-06 13:10:48 +08:00
settings.event_delete_desc = Branch or tag deleted.
2018-05-16 22:01:55 +08:00
settings.event_fork = Fork
2020-03-06 13:10:48 +08:00
settings.event_fork_desc = Repository forked.
2022-09-05 03:54:23 +08:00
settings.event_wiki = Wiki
settings.event_wiki_desc = Wiki page created, renamed, edited or deleted.
2018-05-16 22:01:55 +08:00
settings.event_release = Release
2018-05-21 10:28:29 +08:00
settings.event_release_desc = Release published, updated or deleted in a repository.
2015-08-28 23:36:13 +08:00
settings.event_push = Push
2024-07-06 02:21:56 +08:00
settings.event_force_push = Force Push
2018-04-19 22:24:31 +08:00
settings.event_push_desc = Git push to a repository.
2017-09-03 16:20:24 +08:00
settings.event_repository = Repository
2018-04-19 22:24:31 +08:00
settings.event_repository_desc = Repository created or deleted.
2020-03-06 13:10:48 +08:00
settings.event_header_issue = Issue Events
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, or edited.
settings.event_issue_assign = Issue Assigned
settings.event_issue_assign_desc = Issue assigned or unassigned.
settings.event_issue_label = Issue Labeled
settings.event_issue_label_desc = Issue labels updated or cleared.
settings.event_issue_milestone = Issue Milestoned
settings.event_issue_milestone_desc = Issue milestoned or demilestoned.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_header_pull_request = Pull Request Events
settings.event_pull_request = Pull Request
settings.event_pull_request_desc = Pull request opened, closed, reopened, or edited.
settings.event_pull_request_assign = Pull Request Assigned
settings.event_pull_request_assign_desc = Pull request assigned or unassigned.
settings.event_pull_request_label = Pull Request Labeled
settings.event_pull_request_label_desc = Pull request labels updated or cleared.
settings.event_pull_request_milestone = Pull Request Milestoned
settings.event_pull_request_milestone_desc = Pull request milestoned or demilestoned.
settings.event_pull_request_comment = Pull Request Comment
settings.event_pull_request_comment_desc = Pull request comment created, edited, or deleted.
settings.event_pull_request_review = Pull Request Reviewed
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comment.
settings.event_pull_request_sync = Pull Request Synchronized
settings.event_pull_request_sync_desc = Pull request synchronized.
2023-05-25 10:06:27 +08:00
settings.event_pull_request_review_request = Pull Request Review Requested
settings.event_pull_request_review_request_desc = Pull request review requested or review request removed.
2023-04-29 18:44:52 +08:00
settings.event_pull_request_approvals = Pull Request Approvals
settings.event_pull_request_merge = Pull Request Merge
2022-03-30 16:42:47 +08:00
settings.event_package = Package
settings.event_package_desc = Package created or deleted in a repository.
2020-03-06 13:10:48 +08:00
settings.branch_filter = Branch filter
2024-09-03 02:36:24 +08:00
settings.branch_filter_desc = Branch whitelist for push, branch creation and branch deletion events, specified as glob pattern. If empty or <code>*</code>, events for all branches are reported. See <a href="%[1]s">%[2]s</a> documentation for syntax. Examples: <code>master</code>, <code>{master,release*}</code>.
2022-11-04 02:23:20 +08:00
settings.authorization_header = Authorization Header
settings.authorization_header_desc = Will be included as authorization header for requests when present. Examples: %s.
2018-08-15 19:55:17 +08:00
settings.active = Active
settings.active_helper = Information about triggered events will be sent to this webhook URL.
2018-04-19 22:24:31 +08:00
settings.add_hook_success = The webhook has been added.
2014-08-10 06:40:10 +08:00
settings.update_webhook = Update Webhook
2018-04-19 22:24:31 +08:00
settings.update_hook_success = The webhook has been updated.
settings.delete_webhook = Remove Webhook
2014-08-10 06:40:10 +08:00
settings.recent_deliveries = Recent Deliveries
2014-08-24 20:59:47 +08:00
settings.hook_type = Hook Type
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
2022-01-24 19:36:54 +08:00
settings.add_web_hook_desc = Integrate <a target="_blank" rel="noreferrer" href="%s">%s</a> into your repository.
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 = Telegram
settings.web_hook_name_matrix = Matrix
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
2022-01-23 21:46:30 +08:00
settings.packagist_username = Packagist username
settings.packagist_api_token = API token
settings.packagist_package_url = Packagist package URL
2015-08-06 22:48:11 +08:00
settings.deploy_keys = Deploy Keys
settings.add_deploy_key = Add Deploy Key
2018-04-19 22:24:31 +08:00
settings.deploy_key_desc = Deploy keys have read-only pull access to the repository.
settings.is_writable = Enable Write Access
settings.is_writable_info = Allow this deploy key to <strong>push</strong> to the repository.
settings.no_deploy_keys = There are no deploy keys yet.
2015-08-06 22:48:11 +08:00
settings.title = Title
settings.deploy_key_content = Content
2018-04-19 22:24:31 +08:00
settings.key_been_used = A deploy key with identical content is already in use.
settings.key_name_used = A deploy key with the same name already exists.
2023-04-18 06:04:26 +08:00
settings.add_key_success = The deploy key "%s" has been added.
2018-04-19 22:24:31 +08:00
settings.deploy_key_deletion = Remove Deploy Key
settings.deploy_key_deletion_desc = Removing a deploy key will revoke its access to this repository. Continue?
settings.deploy_key_deletion_success = The deploy key has been removed.
settings.branches = Branches
settings.protected_branch = Branch Protection
2023-01-16 16:00:22 +08:00
settings.protected_branch.save_rule = Save Rule
settings.protected_branch.delete_rule = Delete Rule
2018-04-19 22:24:31 +08:00
settings.protected_branch_can_push = Allow push?
settings.protected_branch_can_push_yes = You can push
2023-01-09 02:25:28 +08:00
settings.protected_branch_can_push_no = You cannot push
2023-04-29 18:44:52 +08:00
settings.branch_protection = Branch Protection Rules for Branch '<b>%s</b>'
2018-04-19 22:24:31 +08:00
settings.protect_this_branch = Enable Branch Protection
2019-12-04 09:08:56 +08:00
settings.protect_this_branch_desc = Prevents deletion and restricts Git pushing and merging to the branch.
settings.protect_disable_push = Disable Push
settings.protect_disable_push_desc = No pushing will be allowed to this branch.
2024-07-06 02:21:56 +08:00
settings.protect_disable_force_push = Disable Force Push
settings.protect_disable_force_push_desc = No force pushing will be allowed to this branch.
2019-12-04 09:08:56 +08:00
settings.protect_enable_push = Enable Push
settings.protect_enable_push_desc = Anyone with write access will be allowed to push to this branch (but not force push).
2024-07-06 02:21:56 +08:00
settings.protect_enable_force_push_all = Enable Force Push
settings.protect_enable_force_push_all_desc = Anyone with push access will be allowed to force push to this branch.
settings.protect_enable_force_push_allowlist = Allowlist Restricted Force Push
settings.protect_enable_force_push_allowlist_desc = Only allowlisted users or teams with push access will be allowed to force push to this branch.
2023-04-29 18:44:52 +08:00
settings.protect_enable_merge = Enable Merge
settings.protect_enable_merge_desc = Anyone with write access will be allowed to merge the pull requests into this branch.
2024-07-06 02:21:56 +08:00
settings.protect_whitelist_committers = Allowlist Restricted Push
settings.protect_whitelist_committers_desc = Only allowlisted users or teams will be allowed to push to this branch (but not force push).
settings.protect_whitelist_deploy_keys = Allowlist deploy keys with write access to push.
settings.protect_whitelist_users = Allowlisted users for pushing:
settings.protect_whitelist_teams = Allowlisted teams for pushing:
settings.protect_force_push_allowlist_users = Allowlisted users for force pushing:
settings.protect_force_push_allowlist_teams = Allowlisted teams for force pushing:
settings.protect_force_push_allowlist_deploy_keys = Allowlist deploy keys with push access to force push.
settings.protect_merge_whitelist_committers = Enable Merge Allowlist
settings.protect_merge_whitelist_committers_desc = Allow only allowlisted users or teams to merge pull requests into this branch.
settings.protect_merge_whitelist_users = Allowlisted users for merging:
settings.protect_merge_whitelist_teams = Allowlisted teams for merging:
2019-09-18 13:39:45 +08:00
settings.protect_check_status_contexts = Enable Status Check
2023-05-17 16:11:13 +08:00
settings.protect_status_check_patterns = Status check patterns:
settings.protect_status_check_patterns_desc = Enter patterns to specify which status checks must pass before branches can be merged into a branch that matches this rule. Each line specifies a pattern. Patterns cannot be empty.
settings.protect_check_status_contexts_desc = Require status checks to pass before merging. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed. If no contexts are matched, the last commit must be successful regardless of context.
2019-09-18 13:39:45 +08:00
settings.protect_check_status_contexts_list = Status checks found in the last week for this repository
2023-05-17 16:11:13 +08:00
settings.protect_status_check_matched = Matched
settings.protect_invalid_status_check_pattern = Invalid status check pattern: "%s".
settings.protect_no_valid_status_check_patterns = No valid status check patterns.
2018-12-11 19:28:37 +08:00
settings.protect_required_approvals = Required approvals:
2024-09-06 14:40:02 +08:00
settings.protect_required_approvals_desc = Allow only to merge pull request with enough required approvals. Required approvals are either from users or teams who are on the allowlist or anyone with write access.
2024-07-06 02:21:56 +08:00
settings.protect_approvals_whitelist_enabled = Restrict approvals to allowlisted users or teams
settings.protect_approvals_whitelist_enabled_desc = Only reviews from allowlisted users or teams will count to the required approvals. Without approval allowlist, reviews from anyone with write access count to the required approvals.
settings.protect_approvals_whitelist_users = Allowlisted reviewers:
settings.protect_approvals_whitelist_teams = Allowlisted teams for reviews:
2020-01-09 09:47:45 +08:00
settings.dismiss_stale_approvals = Dismiss stale approvals
settings.dismiss_stale_approvals_desc = When new commits that change the content of the pull request are pushed to the branch, old approvals will be dismissed.
2024-01-15 15:20:01 +08:00
settings.ignore_stale_approvals = Ignore stale approvals
settings.ignore_stale_approvals_desc = Do not count approvals that were made on older commits (stale reviews) towards how many approvals the PR has. Irrelevant if stale reviews are already dismissed.
2020-01-15 16:32:57 +08:00
settings.require_signed_commits = Require Signed Commits
2020-06-27 19:11:35 +08:00
settings.require_signed_commits_desc = Reject pushes to this branch if they are unsigned or unverifiable.
2023-01-16 16:00:22 +08:00
settings.protect_branch_name_pattern = Protected Branch Name Pattern
2024-09-03 02:36:24 +08:00
settings.protect_branch_name_pattern_desc = "Protected branch name patterns. See <a href="%s">the documentation</a> for pattern syntax. Examples: main, release/**"
2023-04-29 18:44:52 +08:00
settings.protect_patterns = Patterns
2023-03-31 12:16:41 +08:00
settings.protect_protected_file_patterns = "Protected file patterns (separated using semicolon ';'):"
2024-09-03 02:36:24 +08:00
settings.protect_protected_file_patterns_desc = "Protected files are not allowed to be changed directly even if user has rights to add, edit, or delete files in this branch. Multiple patterns can be separated using semicolon (';'). See <a href='%[1]s'>%[2]s</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>."
2023-03-31 12:16:41 +08:00
settings.protect_unprotected_file_patterns = "Unprotected file patterns (separated using semicolon ';'):"
2024-09-03 02:36:24 +08:00
settings.protect_unprotected_file_patterns_desc = "Unprotected files that are allowed to be changed directly if user has write access, bypassing push restriction. Multiple patterns can be separated using semicolon (';'). See <a href='%[1]s'>%[2]s</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>."
2018-04-19 22:24:31 +08:00
settings.add_protected_branch = Enable protection
settings.delete_protected_branch = Disable protection
2023-04-18 06:04:26 +08:00
settings.update_protect_branch_success = Branch protection for rule "%s" has been updated.
settings.remove_protected_branch_success = Branch protection for rule "%s" has been removed.
settings.remove_protected_branch_failed = Removing branch protection rule "%s" failed.
2023-01-16 16:00:22 +08:00
settings.protected_branch_deletion = Delete Branch Protection
2018-04-19 22:24:31 +08:00
settings.protected_branch_deletion_desc = Disabling branch protection allows users with write permission to push to the branch. Continue?
2020-01-04 01:47:10 +08:00
settings.block_rejected_reviews = Block merge on rejected reviews
settings.block_rejected_reviews_desc = Merging will not be possible when changes are requested by official reviewers, even if there are enough approvals.
2020-11-29 03:30:46 +08:00
settings.block_on_official_review_requests = Block merge on official review requests
settings.block_on_official_review_requests_desc = Merging will not be possible when it has official review requests, even if there are enough approvals.
2020-04-17 09:00:36 +08:00
settings.block_outdated_branch = Block merge if pull request is outdated
settings.block_outdated_branch_desc = Merging will not be possible when head branch is behind base branch.
2024-10-23 12:39:43 +08:00
settings.block_admin_merge_override = Administrators must follow branch protection rules
settings.block_admin_merge_override_desc = Administrators must follow branch protection rules and can not circumvent it.
2018-04-19 22:24:31 +08:00
settings.default_branch_desc = Select a default repository branch for pull requests and code commits:
2023-02-13 14:09:52 +08:00
settings.merge_style_desc = Merge Styles
settings.default_merge_style_desc = Default Merge Style
2018-02-16 22:02:40 +08:00
settings.choose_branch = Choose a branch…
2018-04-19 22:24:31 +08:00
settings.no_protected_branch = There are no protected branches.
2018-07-14 04:57:20 +08:00
settings.edit_protected_branch = Edit
2023-01-16 16:00:22 +08:00
settings.protected_branch_required_rule_name = Required rule name
2023-02-20 19:30:41 +08:00
settings.protected_branch_duplicate_rule_name = Duplicate rule name
2018-12-11 19:28:37 +08:00
settings.protected_branch_required_approvals_min = Required approvals cannot be negative.
2021-06-25 22:28:55 +08:00
settings.tags = Tags
settings.tags.protection = Tag Protection
settings.tags.protection.pattern = Tag Pattern
settings.tags.protection.allowed = Allowed
settings.tags.protection.allowed.users = Allowed users
settings.tags.protection.allowed.teams = Allowed teams
settings.tags.protection.allowed.noone = No One
settings.tags.protection.create = Protect Tag
settings.tags.protection.none = There are no protected tags.
2024-09-03 02:36:24 +08:00
settings.tags.protection.pattern.description = You can use a single name or a glob pattern or regular expression to match multiple tags. Read more in the <a target="_blank" rel="noopener" href="%s">protected tags guide</a>.
2019-04-19 10:45:02 +08:00
settings.bot_token = Bot Token
settings.chat_id = Chat ID
2023-08-13 22:00:06 +08:00
settings.thread_id = Thread ID
2020-03-28 21:09:55 +08:00
settings.matrix.homeserver_url = Homeserver URL
settings.matrix.room_id = Room ID
settings.matrix.message_type = Message Type
2024-08-11 12:50:54 +08:00
settings.visibility.private.button = Make Private
settings.visibility.private.text = Changing the visibility to private will not only make the repo visible to only allowed members but may remove the relation between it and forks, watchers, and stars.
settings.visibility.private.bullet_title = <strong>Changing the visibility to private will:</strong>
settings.visibility.private.bullet_one = Make the repo visible to only allowed members.
settings.visibility.private.bullet_two = May remove the relation between it and <strong>forks</strong>, <strong>watchers</strong>, and <strong>stars</strong>.
settings.visibility.public.button = Make Public
settings.visibility.public.text = Changing the visibility to public will make the repo visible to anyone.
settings.visibility.public.bullet_title = <strong>Changing the visibility to public will:</strong>
settings.visibility.public.bullet_one = Make the repo visible to anyone.
settings.visibility.success = Repository visibility changed.
settings.visibility.error = An error occurred while trying to change the repo visibility.
settings.visibility.fork_error = Can't change the visibility of a forked repo.
2019-01-24 02:58:38 +08:00
settings.archive.button = Archive Repo
settings.archive.header = Archive This Repo
2023-08-08 23:25:05 +08:00
settings.archive.text = Archiving the repo will make it entirely read-only. It will be hidden from the dashboard. Nobody (not even you!) will be able to make new commits, or open any issues or pull requests.
2019-01-24 02:58:38 +08:00
settings.archive.success = The repo was successfully archived.
2019-06-05 22:16:06 +08:00
settings.archive.error = An error occurred while trying to archive the repo. See the log for more details.
2019-01-24 02:58:38 +08:00
settings.archive.error_ismirror = You cannot archive a mirrored repo.
settings.archive.branchsettings_unavailable = Branch settings are not available if the repo is archived.
2021-06-25 22:28:55 +08:00
settings.archive.tagsettings_unavailable = Tag settings are not available if the repo is archived.
2024-01-24 10:32:57 +08:00
settings.archive.mirrors_unavailable = Mirrors are not available if the repo is archived.
2023-08-08 23:25:05 +08:00
settings.unarchive.button = Unarchive repo
settings.unarchive.header = Unarchive this repo
settings.unarchive.text = Unarchiving the repo will restore its ability to receive commits and pushes, as well as new issues and pull-requests.
settings.unarchive.success = The repo was successfully unarchived.
settings.unarchive.error = An error occurred while trying to unarchive the repo. See the log for more details.
2019-05-30 10:22:26 +08:00
settings.update_avatar_success = The repository avatar has been updated.
2019-10-29 02:31:55 +08:00
settings.lfs = LFS
settings.lfs_filelist = LFS files stored in this repository
settings.lfs_no_lfs_files = No LFS files stored in this repository
settings.lfs_findcommits = Find commits
settings.lfs_lfs_file_no_commits = No Commits found for this LFS file
2019-12-12 21:18:07 +08:00
settings.lfs_noattribute = This path does not have the lockable attribute in the default branch
2019-10-29 02:31:55 +08:00
settings.lfs_delete = Delete LFS file with OID %s
settings.lfs_delete_warning = Deleting an LFS file may cause 'object does not exist' errors on checkout. Are you sure?
settings.lfs_findpointerfiles = Find pointer files
2019-12-12 21:18:07 +08:00
settings.lfs_locks = Locks
settings.lfs_invalid_locking_path = Invalid path: %s
settings.lfs_invalid_lock_directory = Cannot lock directory: %s
settings.lfs_lock_already_exists = Lock already exists: %s
settings.lfs_lock = Lock
settings.lfs_lock_path = Filepath to lock...
settings.lfs_locks_no_locks = No Locks
settings.lfs_lock_file_no_exist = Locked file does not exist in default branch
settings.lfs_force_unlock = Force Unlock
2019-10-29 02:31:55 +08:00
settings.lfs_pointers.found = Found %d blob pointer(s) - %d associated, %d unassociated (%d missing from store)
settings.lfs_pointers.sha = Blob SHA
settings.lfs_pointers.oid = OID
settings.lfs_pointers.inRepo = In Repo
settings.lfs_pointers.exists = Exists in store
settings.lfs_pointers.accessible = Accessible to User
settings.lfs_pointers.associateAccessible = Associate accessible %d OIDs
2021-10-09 01:03:04 +08:00
settings.rename_branch_failed_exist = Cannot rename branch because target branch %s exists.
settings.rename_branch_failed_not_exist = Cannot rename branch %s because it does not exist.
settings.rename_branch_success = Branch %s was successfully renamed to %s.
settings.rename_branch_from = old branch name
settings.rename_branch_to = new branch name
settings.rename_branch = Rename branch
2014-08-03 01:47:33 +08:00
2014-10-11 09:40:51 +08:00
diff.browse_source = Browse Source
diff.parent = parent
diff.commit = commit
2019-05-24 15:52:05 +08:00
diff.git-notes = Notes
2017-05-11 09:03:34 +08:00
diff.data_not_available = Diff Content Not Available
2019-10-15 18:44:36 +08:00
diff.options_button = Diff Options
diff.show_diff_stats = Show Stats
diff.download_patch = Download Patch File
diff.download_diff = Download Diff File
2016-01-02 07:30:00 +08:00
diff.show_split_view = Split View
2016-01-03 06:13:47 +08:00
diff.show_unified_view = Unified View
2018-08-15 01:49:33 +08:00
diff.whitespace_button = Whitespace
diff.whitespace_show_everything = Show all changes
diff.whitespace_ignore_all_whitespace = Ignore whitespace when comparing lines
diff.whitespace_ignore_amount_changes = Ignore changes in amount of whitespace
diff.whitespace_ignore_at_eol = Ignore changes in whitespace at EOL
2014-10-11 09:40:51 +08:00
diff.stats_desc = <strong> %d changed files</strong> with <strong>%d additions</strong> and <strong>%d deletions</strong>
2020-12-12 09:06:22 +08:00
diff.stats_desc_file = %d changes: %d additions and %d deletions
2014-10-11 09:40:51 +08:00
diff.bin = BIN
2021-03-30 04:44:28 +08:00
diff.bin_not_shown = Binary file not shown.
2014-10-11 09:40:51 +08:00
diff.view_file = View File
2019-09-16 17:03:22 +08:00
diff.file_before = Before
diff.file_after = After
diff.file_image_width = Width
diff.file_image_height = Height
diff.file_byte_size = Size
2016-07-09 23:59:13 +08:00
diff.file_suppressed = File diff suppressed because it is too large
2021-05-04 20:58:49 +08:00
diff.file_suppressed_line_too_long = File diff suppressed because one or more lines are too long
2021-10-16 00:05:33 +08:00
diff.too_many_files = Some files were not shown because too many files have changed in this diff
diff.show_more = Show More
2021-11-22 00:51:08 +08:00
diff.load = Load Diff
2021-09-10 04:13:36 +08:00
diff.generated = generated
diff.vendored = vendored
2023-07-15 17:45:34 +08:00
diff.comment.add_line_comment = Add line comment
2018-08-06 12:43:22 +08:00
diff.comment.placeholder = Leave a comment
diff.comment.add_single_comment = Add single comment
diff.comment.add_review_comment = Add comment
diff.comment.start_review = Start review
diff.comment.reply = Reply
diff.review = Review
diff.review.header = Submit review
diff.review.placeholder = Review comment
diff.review.comment = Comment
diff.review.approve = Approve
2023-03-21 05:54:23 +08:00
diff.review.self_reject = Pull request authors can't request changes on their own pull request
2019-01-27 01:20:56 +08:00
diff.review.reject = Request changes
2023-03-21 05:54:23 +08:00
diff.review.self_approve = Pull request authors can't approve their own pull request
2020-06-03 10:40:08 +08:00
diff.committed_by = committed by
2020-10-14 02:50:57 +08:00
diff.protected = Protected
2021-02-28 01:25:00 +08:00
diff.image.side_by_side = Side by Side
diff.image.swipe = Swipe
diff.image.overlay = Overlay
2022-01-07 09:18:52 +08:00
diff.has_escaped = This line has hidden Unicode characters
2023-03-30 20:06:10 +08:00
diff.show_file_tree = Show file tree
diff.hide_file_tree = Hide file tree
2014-10-11 09:40:51 +08:00
2018-04-19 22:24:31 +08:00
releases.desc = Track project versions and downloads.
2014-12-11 05:37:54 +08:00
release.releases = Releases
2020-11-03 07:10:22 +08:00
release.detail = Release details
release.tags = Tags
2014-12-11 05:37:54 +08:00
release.new_release = New Release
release.draft = Draft
release.prerelease = Pre-Release
release.stable = Stable
2021-05-04 01:27:48 +08:00
release.compare = Compare
2014-12-11 05:37:54 +08:00
release.edit = edit
2020-06-06 02:44:54 +08:00
release.ahead.commits = <strong>%d</strong> commits
release.ahead.target = to %s since this release
2023-03-27 21:41:33 +08:00
tag.ahead.target = to %s since this tag
2014-12-11 05:37:54 +08:00
release.source_code = Source Code
2018-04-19 22:24:31 +08:00
release.new_subheader = Releases organize project versions.
release.edit_subheader = Releases organize project versions.
2014-12-11 05:37:54 +08:00
release.tag_name = Tag name
release.target = Target
2018-04-19 22:24:31 +08:00
release.tag_helper = Choose an existing tag or create a new tag.
2023-03-11 00:42:38 +08:00
release.tag_helper_new = New tag. This tag will be created from the target.
release.tag_helper_existing = Existing tag.
2023-04-10 23:56:57 +08:00
release.title = Release title
2023-04-07 09:44:52 +08:00
release.title_empty = Title cannot be empty.
2023-04-10 23:56:57 +08:00
release.message = Describe this release
2018-04-19 22:24:31 +08:00
release.prerelease_desc = Mark as Pre-Release
release.prerelease_helper = Mark this release unsuitable for production use.
2015-11-16 12:52:46 +08:00
release.cancel = Cancel
2014-12-11 05:37:54 +08:00
release.publish = Publish Release
release.save_draft = Save Draft
2018-04-19 22:24:31 +08:00
release.edit_release = Update Release
release.delete_release = Delete Release
2020-11-03 07:10:22 +08:00
release.delete_tag = Delete Tag
2018-04-19 22:24:31 +08:00
release.deletion = Delete Release
2023-08-08 23:25:05 +08:00
release.deletion_desc = Deleting a release only removes it from Gitea. It will not affect the Git tag, the contents of your repository or its history. Continue?
2017-05-18 09:03:43 +08:00
release.deletion_success = The release has been deleted.
2020-11-03 07:10:22 +08:00
release.deletion_tag_desc = Will delete this tag from repository. Repository contents and history remain unchanged. Continue?
release.deletion_tag_success = The tag has been deleted.
2018-04-19 22:24:31 +08:00
release.tag_name_already_exist = A release with this tag name already exists.
release.tag_name_invalid = The tag name is not valid.
2021-06-25 22:28:55 +08:00
release.tag_name_protected = The tag name is protected.
2020-11-03 07:10:22 +08:00
release.tag_already_exist = This tag name already exists.
2015-11-16 12:52:46 +08:00
release.downloads = Downloads
2020-02-04 03:50:37 +08:00
release.download_count = Downloads: %s
2021-03-01 03:57:45 +08:00
release.add_tag_msg = Use the title and content of release as tag message.
release.add_tag = Create Tag Only
2022-12-22 05:06:26 +08:00
release.releases_for = Releases for %s
release.tags_for = Tags for %s
2014-12-11 05:37:54 +08:00
2018-04-19 22:24:31 +08:00
branch.name = Branch Name
2023-04-18 06:04:26 +08:00
branch.already_exists = A branch named "%s" already exists.
2017-10-26 08:49:16 +08:00
branch.delete_head = Delete
2023-04-18 06:04:26 +08:00
branch.delete = Delete Branch "%s"
2017-10-26 08:49:16 +08:00
branch.delete_html = Delete Branch
2023-08-08 23:25:05 +08:00
branch.delete_desc = Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
2023-04-18 06:04:26 +08:00
branch.deletion_success = Branch "%s" has been deleted.
branch.deletion_failed = Failed to delete branch "%s".
branch.delete_branch_has_new_commits = Branch "%s" cannot be deleted because new commits have been added after merging.
2024-09-04 12:53:55 +08:00
branch.create_branch = Create branch %s
2023-04-18 06:04:26 +08:00
branch.create_from = from "%s"
branch.create_success = Branch "%s" has been created.
branch.branch_already_exists = Branch "%s" already exists in this repository.
branch.branch_name_conflict = Branch name "%s" conflicts with the already existing branch "%s".
branch.tag_collision = Branch "%s" cannot be created as a tag with same name already exists in the repository.
2017-10-26 08:49:16 +08:00
branch.deleted_by = Deleted by %s
2023-04-18 06:04:26 +08:00
branch.restore_success = Branch "%s" has been restored.
branch.restore_failed = Failed to restore branch "%s".
branch.protected_deletion_failed = Branch "%s" is protected. It cannot be deleted.
branch.default_deletion_failed = Branch "%s" is the default branch. It cannot be deleted.
branch.restore = Restore Branch "%s"
branch.download = Download Branch "%s"
2023-04-30 23:08:51 +08:00
branch.rename = Rename Branch "%s"
2019-10-15 06:40:17 +08:00
branch.included_desc = This branch is part of the default branch
branch.included = Included
2021-05-24 22:57:46 +08:00
branch.create_new_branch = Create branch from branch:
branch.confirm_create_branch = Create branch
2023-05-05 06:54:38 +08:00
branch.warning_rename_default_branch = You are renaming the default branch.
2023-04-30 23:08:51 +08:00
branch.rename_branch_to = Rename "%s" to:
branch.confirm_rename_branch = Rename branch
2022-02-10 04:28:55 +08:00
branch.create_branch_operation = Create branch
2021-05-24 22:57:46 +08:00
branch.new_branch = Create new branch
2023-04-18 06:04:26 +08:00
branch.new_branch_from = Create new branch from "%s"
2021-10-09 01:03:04 +08:00
branch.renamed = Branch %s was renamed to %s.
2016-12-26 00:19:25 +08:00
2024-09-04 12:53:55 +08:00
tag.create_tag = Create tag %s
2022-02-10 04:28:55 +08:00
tag.create_tag_operation = Create tag
tag.confirm_create_tag = Create tag
2023-04-18 06:04:26 +08:00
tag.create_tag_from = Create new tag from "%s"
2022-02-10 04:28:55 +08:00
2023-04-18 06:04:26 +08:00
tag.create_success = Tag "%s" has been created.
2021-03-01 03:57:45 +08:00
2018-04-11 10:51:44 +08:00
topic.manage_topics = Manage Topics
topic.done = Done
2023-01-09 02:25:28 +08:00
topic.count_prompt = You cannot select more than 25 topics
2023-08-03 17:18:06 +08:00
topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
2018-04-11 10:51:44 +08:00
2022-06-09 19:15:08 +08:00
find_file.go_to_file = Go to file
find_file.no_matching = No matching file found
2021-03-30 04:44:28 +08:00
error.csv.too_large = Can't render this file because it is too large.
error.csv.unexpected = Can't render this file because it contains an unexpected character in line %d and column %d.
error.csv.invalid_field_count = Can't render this file because it has a wrong number of fields in line %d.
2024-03-06 17:56:04 +08:00
error.broken_git_hook = Git hooks of this repository seem to be broken. Please follow the <a target="_blank" rel="noreferrer" href="%s">documentation</a> to fix them, then push some commits to refresh the status.
2021-03-30 04:44:28 +08:00
2024-02-19 05:02:07 +08:00
[graphs]
component_loading = Loading %s...
component_loading_failed = Could not load %s
component_loading_info = This might take a bit…
component_failed_to_load = An unexpected error happened.
2024-02-24 07:41:24 +08:00
code_frequency.what = code frequency
2024-02-19 20:47:38 +08:00
contributors.what = contributions
2024-02-24 18:22:51 +08:00
recent_commits.what = recent commits
2024-02-19 05:02:07 +08:00
2014-07-27 11:53:16 +08:00
[org]
org_name_holder = Organization Name
2015-11-04 03:34:21 +08:00
org_full_name_holder = Organization Full Name
2018-04-19 22:24:31 +08:00
org_name_helper = Organization names should be short and memorable.
2014-07-27 11:53:16 +08:00
create_org = Create Organization
2014-08-11 11:11:18 +08:00
repo_updated = Updated
2023-02-18 21:41:31 +08:00
members = Members
2014-08-11 11:11:18 +08:00
teams = Teams
2022-10-11 07:12:03 +08:00
code = Code
2014-08-11 11:11:18 +08:00
lower_members = members
lower_repositories = repositories
2018-03-10 01:37:24 +08:00
create_new_team = New Team
create_team = Create Team
2014-08-14 14:12:21 +08:00
org_desc = Description
2014-08-16 16:21:17 +08:00
team_name = Team Name
team_desc = Description
2018-04-19 22:24:31 +08:00
team_name_helper = Team names should be short and memorable.
team_desc_helper = Describe the purpose or role of the team.
2019-11-06 17:37:14 +08:00
team_access_desc = Repository access
2018-04-19 22:24:31 +08:00
team_permission_desc = Permission
team_unit_desc = Allow Access to Repository Sections
2020-01-17 15:34:37 +08:00
team_unit_disabled = (Disabled)
2014-08-14 14:12:21 +08:00
2023-04-18 06:04:26 +08:00
form.name_reserved = The organization name "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in an organization name.
2018-04-19 22:24:31 +08:00
form.create_org_not_allowed = You are not allowed to create an organization.
2015-03-27 05:11:47 +08:00
2014-08-14 14:12:21 +08:00
settings = Settings
2018-04-19 22:24:31 +08:00
settings.options = Organization
2014-08-14 14:12:21 +08:00
settings.full_name = Full Name
2023-07-25 16:26:27 +08:00
settings.email = Contact Email
2014-08-14 14:12:21 +08:00
settings.website = Website
settings.location = Location
2019-09-24 04:08:03 +08:00
settings.permission = Permissions
settings.repoadminchangeteam = Repository admin can add and remove access for teams
2019-02-19 00:00:27 +08:00
settings.visibility = Visibility
settings.visibility.public = Public
2023-04-08 18:05:21 +08:00
settings.visibility.limited = Limited (Visible to authenticated users only)
2020-10-06 14:25:43 +08:00
settings.visibility.limited_shortname = Limited
2019-02-19 00:00:27 +08:00
settings.visibility.private = Private (Visible only to organization members)
2020-10-06 14:25:43 +08:00
settings.visibility.private_shortname = Private
2019-02-19 00:00:27 +08:00
2014-08-14 14:12:21 +08:00
settings.update_settings = Update Settings
2017-05-18 09:03:43 +08:00
settings.update_setting_success = Organization settings have been updated.
2023-07-24 12:17:32 +08:00
settings.change_orgname_prompt = Note: Changing the organization name will also change your organization's URL and free the old name.
2021-01-24 23:23:05 +08:00
settings.change_orgname_redirect_prompt = The old name will redirect until it is claimed.
2018-04-19 22:24:31 +08:00
settings.update_avatar_success = The organization's avatar has been updated.
2015-03-27 05:11:47 +08:00
settings.delete = Delete Organization
2014-08-14 14:12:21 +08:00
settings.delete_account = Delete This Organization
2018-04-19 22:24:31 +08:00
settings.delete_prompt = The organization will be permanently removed. This <strong>CANNOT</strong> be undone!
2014-08-14 14:12:21 +08:00
settings.confirm_delete_account = Confirm Deletion
2018-04-19 22:24:31 +08:00
settings.delete_org_title = Delete Organization
settings.delete_org_desc = This organization will be deleted permanently. Continue?
2017-07-12 10:25:45 +08:00
settings.hooks_desc = Add webhooks which will be triggered for <strong>all repositories</strong> under this organization.
2014-07-27 11:53:16 +08:00
Add Organization Wide Labels (#10814)
* Add organization wide labels
Implement organization wide labels similar to organization wide
webhooks. This lets you create individual labels for organizations that can be used
for all repos under that organization (so being able to reuse the same
label across multiple repos).
This makes it possible for small organizations with many repos to use
labels effectively.
Fixes #7406
* Add migration
* remove comments
* fix tests
* Update options/locale/locale_en-US.ini
Removed unused translation string
* show org labels in issue search label filter
* Use more clear var name
* rename migration after merge from master
* comment typo
* update migration again after rebase with master
* check for orgID <=0 per guillep2k review
* fmt
* Apply suggestions from code review
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* remove unused code
* Make sure RepoID is 0 when searching orgID per code review
* more changes/code review requests
* More descriptive translation var per code review
* func description/delete comment when issue label deleted instead of hiding it
* remove comment
* only use issues in that repo when calculating number of open issues for org label on repo label page
* Add integration test for IssuesSearch API with labels
* remove unused function
* Update models/issue_label.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Use subquery in GetLabelIDsInReposByNames
* Fix tests to use correct orgID
* fix more tests
* IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well
* update comment for clarity
* Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition
* Don't sort repos by date in IssuesSearch API
After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45
Returns different results for MySQL than other engines. However, the similar query:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30
Returns the same results.
This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function.
* linter is back!
* code review
* remove now unused option
* Fix newline at end of files
* more unused code
* update to master
* check for matching ids before query
* Update models/issue_label.go
Co-Authored-By: 6543 <6543@obermui.de>
* Update models/issue_label.go
* update comments
* Update routers/org/setting.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2020-04-01 12:14:46 +08:00
settings.labels_desc = Add labels which can be used on issues for <strong>all repositories</strong> under this organization.
2015-11-22 14:32:09 +08:00
members.membership_visibility = Membership Visibility:
2018-04-19 22:24:31 +08:00
members.public = Visible
members.public_helper = make hidden
members.private = Hidden
members.private_helper = make visible
2015-11-22 14:32:09 +08:00
members.member_role = Member Role:
2014-08-15 18:29:41 +08:00
members.owner = Owner
members.member = Member
members.remove = Remove
2021-08-27 10:57:40 +08:00
members.remove.detail = Remove %[1]s from %[2]s?
2014-08-16 16:21:17 +08:00
members.leave = Leave
2021-08-27 10:57:40 +08:00
members.leave.detail = Leave %s?
2015-11-22 14:32:09 +08:00
members.invite_desc = Add a new member to %s:
2014-08-15 18:29:41 +08:00
members.invite_now = Invite Now
2014-08-16 16:21:17 +08:00
teams.join = Join
teams.leave = Leave
2021-08-27 10:57:40 +08:00
teams.leave.detail = Leave %s?
2019-11-20 19:27:49 +08:00
teams.can_create_org_repo = Create repositories
teams.can_create_org_repo_helper = Members can create new repositories in organization. Creator will get administrator access to the new repository.
2022-01-05 11:37:00 +08:00
teams.none_access = No Access
2023-02-01 16:14:40 +08:00
teams.none_access_helper = Members cannot view or do any other action on this unit. It has no effect for public repositories.
2022-01-05 11:37:00 +08:00
teams.general_access = General Access
teams.general_access_helper = Members permissions will be decided by below permission table.
teams.read_access = Read
2018-04-19 22:24:31 +08:00
teams.read_access_helper = Members can view and clone team repositories.
2022-01-05 11:37:00 +08:00
teams.write_access = Write
2018-04-19 22:24:31 +08:00
teams.write_access_helper = Members can read and push to team repositories.
teams.admin_access = Administrator Access
teams.admin_access_helper = Members can pull and push to team repositories and add collaborators to them.
2014-08-23 20:24:02 +08:00
teams.no_desc = This team has no description
teams.settings = Settings
2018-04-19 22:24:31 +08:00
teams.owners_permission_desc = Owners have full access to <strong>all repositories</strong> and have <strong>administrator access</strong> to the organization.
2014-08-23 20:24:02 +08:00
teams.members = Team Members
2014-08-24 21:09:05 +08:00
teams.update_settings = Update Settings
2018-04-19 22:24:31 +08:00
teams.delete_team = Delete Team
2014-08-24 21:09:05 +08:00
teams.add_team_member = Add Team Member
2022-10-19 20:40:28 +08:00
teams.invite_team_member = Invite to %s
teams.invite_team_member.list = Pending Invitations
2018-04-19 22:24:31 +08:00
teams.delete_team_title = Delete Team
teams.delete_team_desc = Deleting a team revokes repository access from its members. Continue?
2017-05-18 09:03:43 +08:00
teams.delete_team_success = The team has been deleted.
2018-04-19 22:24:31 +08:00
teams.read_permission_desc = This team grants <strong>Read</strong> access: members can view and clone team repositories.
teams.write_permission_desc = This team grants <strong>Write</strong> access: members can read from and push to team repositories.
teams.admin_permission_desc = This team grants <strong>Admin</strong> access: members can read from, push to and add collaborators to team repositories.
2019-11-20 19:27:49 +08:00
teams.create_repo_permission_desc = Additionally, this team grants <strong>Create repository</strong> permission: members can create new repositories in organization.
2014-08-26 18:11:15 +08:00
teams.repositories = Team Repositories
2019-11-09 08:39:37 +08:00
teams.remove_all_repos_title = Remove all team repositories
teams.remove_all_repos_desc = This will remove all repositories from the team.
teams.add_all_repos_title = Add all repositories
teams.add_all_repos_desc = This will add all the organization's repositories to the team.
2023-03-24 01:27:03 +08:00
teams.add_nonexistent_repo = "The repository you're trying to add doesn't exist, please create it first."
2018-08-20 02:49:19 +08:00
teams.add_duplicate_users = User is already a team member.
2018-12-09 14:42:11 +08:00
teams.repos.none = No repositories could be accessed by this team.
teams.members.none = No members on this team.
2024-03-04 16:16:03 +08:00
teams.members.blocked_user = Cannot add the user because it is blocked by the organization.
2019-11-06 17:37:14 +08:00
teams.specific_repositories = Specific repositories
teams.specific_repositories_helper = Members will only have access to repositories explicitly added to the team. Selecting this <strong>will not</strong> automatically remove repositories already added with <i>All repositories</i>.
teams.all_repositories = All repositories
teams.all_repositories_helper = Team has access to all repositories. Selecting this will <strong>add all existing</strong> repositories to the team.
teams.all_repositories_read_permission_desc = This team grants <strong>Read</strong> access to <strong>all repositories</strong>: members can view and clone repositories.
teams.all_repositories_write_permission_desc = This team grants <strong>Write</strong> access to <strong>all repositories</strong>: members can read from and push to repositories.
teams.all_repositories_admin_permission_desc = This team grants <strong>Admin</strong> access to <strong>all repositories</strong>: members can read from, push to and add collaborators to repositories.
2023-08-08 23:25:05 +08:00
teams.invite.title = You have been invited to join team <strong>%s</strong> in organization <strong>%s</strong>.
2022-10-19 20:40:28 +08:00
teams.invite.by = Invited by %s
teams.invite.description = Please click the button below to join the team.
2014-08-16 16:21:17 +08:00
2014-08-28 22:29:00 +08:00
[admin]
2024-03-31 11:03:24 +08:00
maintenance = Maintenance
2014-08-28 22:29:00 +08:00
dashboard = Dashboard
2024-01-10 19:03:23 +08:00
self_check = Self Check
2023-07-24 09:05:16 +08:00
identity_access = Identity & Access
2018-04-19 22:24:31 +08:00
users = User Accounts
2014-08-28 22:29:00 +08:00
organizations = Organizations
2023-07-24 09:05:16 +08:00
assets = Code Assets
2014-08-28 22:29:00 +08:00
repositories = Repositories
2021-01-15 07:24:03 +08:00
hooks = Webhooks
2023-07-24 09:05:16 +08:00
integrations = Integrations
2018-04-19 22:24:31 +08:00
authentication = Authentication Sources
2020-03-03 02:25:36 +08:00
emails = User Emails
2014-08-28 22:29:00 +08:00
config = Configuration
2024-02-24 21:12:17 +08:00
config_summary = Summary
config_settings = Settings
2014-10-09 06:29:18 +08:00
notices = System Notices
2014-08-28 22:29:00 +08:00
monitor = Monitoring
2015-09-12 08:42:26 +08:00
first_page = First
last_page = Last
2015-09-11 03:45:03 +08:00
total = Total: %d
2023-08-16 18:12:03 +08:00
settings = Admin Settings
2014-08-28 22:29:00 +08:00
2024-09-03 02:36:24 +08:00
dashboard.new_version_hint = Gitea %s is now available, you are running %s. Check <a target="_blank" rel="noreferrer" href="%s">the blog</a> for more details.
2018-04-19 22:24:31 +08:00
dashboard.statistic = Summary
2024-03-31 11:03:24 +08:00
dashboard.maintenance_operations = Maintenance Operations
2018-04-19 22:24:31 +08:00
dashboard.system_status = System Status
2014-08-28 22:29:00 +08:00
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
dashboard.operation_run = Run
2017-05-18 09:03:43 +08:00
dashboard.clean_unbind_oauth = Clean unbound OAuth connections
dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted.
2020-07-06 03:38:03 +08:00
dashboard.task.started = Started Task: %[1]s
dashboard.task.process = Task: %[1]s
2023-08-08 23:25:05 +08:00
dashboard.task.cancelled = Task: %[1]s canceled: %[3]s
2020-07-06 03:38:03 +08:00
dashboard.task.error = Error in Task: %[1]s: %[3]s
dashboard.task.finished = Task: %[1]s started by %[2]s has finished
dashboard.task.unknown = Unknown task: %[1]s
2020-05-17 07:31:38 +08:00
dashboard.cron.started = Started Cron: %[1]s
dashboard.cron.process = Cron: %[1]s
2023-08-08 23:25:05 +08:00
dashboard.cron.cancelled = Cron: %[1]s canceled: %[3]s
2020-05-17 07:31:38 +08:00
dashboard.cron.error = Error in Cron: %s: %[3]s
dashboard.cron.finished = Cron: %[1]s has finished
dashboard.delete_inactive_accounts = Delete all unactivated accounts
dashboard.delete_inactive_accounts.started = Delete all unactivated accounts task started.
2021-02-19 14:24:51 +08:00
dashboard.delete_repo_archives = "Delete all repositories' archives (ZIP, TAR.GZ, etc..)"
2020-05-17 07:31:38 +08:00
dashboard.delete_repo_archives.started = Delete all repository archives task started.
2018-04-19 22:24:31 +08:00
dashboard.delete_missing_repos = Delete all repositories missing their Git files
2020-05-17 07:31:38 +08:00
dashboard.delete_missing_repos.started = Delete all repositories missing their Git files task started.
2019-06-02 14:40:12 +08:00
dashboard.delete_generated_repository_avatars = Delete generated repository avatars
2023-06-29 18:03:20 +08:00
dashboard.sync_repo_branches = Sync missed branches from git data to databases
2024-01-24 11:02:04 +08:00
dashboard.sync_repo_tags = Sync tags from git data to database
2020-05-17 07:31:38 +08:00
dashboard.update_mirrors = Update Mirrors
dashboard.repo_health_check = Health check all repositories
dashboard.check_repo_stats = Check all repository statistics
dashboard.archive_cleanup = Delete old repository archives
dashboard.deleted_branches_cleanup = Clean-up deleted branches
dashboard.update_migration_poster_id = Update migration poster IDs
2018-04-19 22:24:31 +08:00
dashboard.git_gc_repos = Garbage collect all repositories
2020-05-17 07:31:38 +08:00
dashboard.resync_all_sshkeys = Update the '.ssh/authorized_keys' file with Gitea SSH keys.
2020-10-11 08:38:09 +08:00
dashboard.resync_all_sshprincipals = Update the '.ssh/authorized_principals' file with Gitea SSH principals.
2018-04-19 22:24:31 +08:00
dashboard.resync_all_hooks = Resynchronize pre-receive, update and post-receive hooks of all repositories.
2017-07-12 10:25:45 +08:00
dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for which records exist
2017-05-10 21:10:18 +08:00
dashboard.sync_external_users = Synchronize external user data
2021-01-27 05:02:42 +08:00
dashboard.cleanup_hook_task_table = Cleanup hook_task table
2022-03-30 16:42:47 +08:00
dashboard.cleanup_packages = Cleanup expired packages
2024-07-31 11:03:30 +08:00
dashboard.cleanup_actions = Cleanup expired actions resources
2014-08-28 22:29:00 +08:00
dashboard.server_uptime = Server Uptime
dashboard.current_goroutine = Current Goroutines
dashboard.current_memory_usage = Current Memory Usage
dashboard.total_memory_allocated = Total Memory Allocated
dashboard.memory_obtained = Memory Obtained
dashboard.pointer_lookup_times = Pointer Lookup Times
2018-04-19 22:24:31 +08:00
dashboard.memory_allocate_times = Memory Allocations
dashboard.memory_free_times = Memory Frees
2014-08-28 22:29:00 +08:00
dashboard.current_heap_usage = Current Heap Usage
dashboard.heap_memory_obtained = Heap Memory Obtained
dashboard.heap_memory_idle = Heap Memory Idle
dashboard.heap_memory_in_use = Heap Memory In Use
dashboard.heap_memory_released = Heap Memory Released
dashboard.heap_objects = Heap Objects
dashboard.bootstrap_stack_usage = Bootstrap Stack Usage
dashboard.stack_memory_obtained = Stack Memory Obtained
dashboard.mspan_structures_usage = MSpan Structures Usage
dashboard.mspan_structures_obtained = MSpan Structures Obtained
dashboard.mcache_structures_usage = MCache Structures Usage
dashboard.mcache_structures_obtained = MCache Structures Obtained
dashboard.profiling_bucket_hash_table_obtained = Profiling Bucket Hash Table Obtained
2015-12-17 05:52:38 +08:00
dashboard.gc_metadata_obtained = GC Metadata Obtained
2014-08-28 22:29:00 +08:00
dashboard.other_system_allocation_obtained = Other System Allocation Obtained
dashboard.next_gc_recycle = Next GC Recycle
dashboard.last_gc_time = Since Last GC Time
dashboard.total_gc_time = Total GC Pause
dashboard.total_gc_pause = Total GC Pause
dashboard.last_gc_pause = Last GC Pause
dashboard.gc_times = GC Times
2024-07-31 11:03:30 +08:00
dashboard.delete_old_actions = Delete all old activities from database
dashboard.delete_old_actions.started = Delete all old activities from database started.
2022-02-07 15:43:53 +08:00
dashboard.update_checker = Update checker
2022-03-28 20:54:59 +08:00
dashboard.delete_old_system_notices = Delete all old system notices from database
2023-01-17 03:50:53 +08:00
dashboard.gc_lfs = Garbage collect LFS meta objects
2024-07-31 11:03:30 +08:00
dashboard.stop_zombie_tasks = Stop actions zombie tasks
dashboard.stop_endless_tasks = Stop actions endless tasks
dashboard.cancel_abandoned_jobs = Cancel actions abandoned jobs
dashboard.start_schedule_tasks = Start actions schedule tasks
2023-06-29 18:03:20 +08:00
dashboard.sync_branch.started = Branches Sync started
2024-01-24 11:02:04 +08:00
dashboard.sync_tag.started = Tags Sync started
2023-08-17 22:05:17 +08:00
dashboard.rebuild_issue_indexer = Rebuild issue indexer
2024-10-02 03:25:08 +08:00
dashboard.sync_repo_licenses = Sync repo licenses
2014-08-28 22:29:00 +08:00
2018-04-19 22:24:31 +08:00
users.user_manage_panel = User Account Management
users.new_account = Create User Account
users.name = Username
2020-03-03 02:25:36 +08:00
users.full_name = Full Name
2014-08-29 15:32:52 +08:00
users.activated = Activated
users.admin = Admin
2020-01-14 01:33:46 +08:00
users.restricted = Restricted
2023-09-14 14:53:36 +08:00
users.reserved = Reserved
users.bot = Bot
users.remote = Remote
2020-08-20 09:53:49 +08:00
users.2fa = 2FA
2014-08-29 15:32:52 +08:00
users.repos = Repos
users.created = Created
2018-04-19 22:24:31 +08:00
users.last_login = Last Sign-In
users.never_login = Never Signed-In
users.send_register_notify = Send User Registration Notification
2023-04-18 06:04:26 +08:00
users.new_success = The user account "%s" has been created.
2014-08-29 15:32:52 +08:00
users.edit = Edit
2015-09-07 23:51:53 +08:00
users.auth_source = Authentication Source
2014-08-29 15:32:52 +08:00
users.local = Local
2018-04-19 22:24:31 +08:00
users.auth_login_name = Authentication Sign-In Name
users.password_helper = Leave the password empty to keep it unchanged.
users.update_profile_success = The user account has been updated.
users.edit_account = Edit User Account
2019-11-12 23:47:29 +08:00
users.max_repo_creation = Maximum Number of Repositories
2018-04-19 22:24:31 +08:00
users.max_repo_creation_desc = (Enter -1 to use the global default limit.)
users.is_activated = User Account Is Activated
users.prohibit_login = Disable Sign-In
users.is_admin = Is Administrator
2020-01-14 01:33:46 +08:00
users.is_restricted = Is Restricted
2018-04-19 22:24:31 +08:00
users.allow_git_hook = May Create Git Hooks
2020-10-07 17:55:13 +08:00
users.allow_git_hook_tooltip = Git Hooks are executed as the OS user running Gitea and will have the same level of host access. As a result, users with this special Git Hook privilege can access and modify all Gitea repositories as well as the database used by Gitea. Consequently they are also able to gain Gitea administrator privileges.
2018-04-19 22:24:31 +08:00
users.allow_import_local = May Import Local Repositories
users.allow_create_organization = May Create Organizations
users.update_profile = Update User Account
users.delete_account = Delete User Account
2022-05-09 04:22:55 +08:00
users.cannot_delete_self = "You cannot delete yourself"
2018-04-19 22:24:31 +08:00
users.still_own_repo = This user still owns one or more repositories. Delete or transfer these repositories first.
users.still_has_org = This user is a member of an organization. Remove the user from any organizations first.
2022-07-14 15:22:09 +08:00
users.purge = Purge User
users.purge_help = Forcibly delete user and any repositories, organizations, and packages owned by the user. All comments will be deleted too.
2023-03-24 01:27:03 +08:00
users.still_own_packages = This user still owns one or more packages, delete these packages first.
2018-04-19 22:24:31 +08:00
users.deletion_success = The user account has been deleted.
2021-01-05 21:54:48 +08:00
users.reset_2fa = Reset 2FA
2021-10-13 02:11:35 +08:00
users.list_status_filter.menu_text = Filter
users.list_status_filter.reset = Reset
users.list_status_filter.is_active = Active
users.list_status_filter.not_active = Inactive
users.list_status_filter.is_admin = Admin
users.list_status_filter.not_admin = Not Admin
users.list_status_filter.is_restricted = Restricted
users.list_status_filter.not_restricted = Not Restricted
users.list_status_filter.is_prohibit_login = Prohibit Login
users.list_status_filter.not_prohibit_login = Allow Login
users.list_status_filter.is_2fa_enabled = 2FA Enabled
users.list_status_filter.not_2fa_enabled = 2FA Disabled
2023-08-31 17:21:18 +08:00
users.details = User Details
2014-08-29 15:32:52 +08:00
2020-03-03 02:25:36 +08:00
emails.email_manage_panel = User Email Management
emails.primary = Primary
emails.activated = Activated
emails.filter_sort.email = Email
emails.filter_sort.email_reverse = Email (reverse)
emails.filter_sort.name = User Name
emails.filter_sort.name_reverse = User Name (reverse)
emails.updated = Email updated
emails.not_updated = Failed to update the requested email address: %v
emails.duplicate_active = This email address is already active for a different user.
emails.change_email_header = Update Email Properties
2023-10-26 01:21:23 +08:00
emails.change_email_text = Are you sure you want to update this email address?
2024-07-25 18:11:04 +08:00
emails.delete = Delete Email
emails.delete_desc = Are you sure you want to delete this email address?
emails.deletion_success = The email address has been deleted.
emails.delete_primary_email_error = You can not delete the primary email.
2020-03-03 02:25:36 +08:00
2017-05-18 09:03:43 +08:00
orgs.org_manage_panel = Organization Management
2014-08-29 20:50:43 +08:00
orgs.name = Name
orgs.teams = Teams
orgs.members = Members
2018-04-19 22:24:31 +08:00
orgs.new_orga = New Organization
2014-08-29 20:50:43 +08:00
2017-05-18 09:03:43 +08:00
repos.repo_manage_panel = Repository Management
2020-09-25 12:09:23 +08:00
repos.unadopted = Unadopted Repositories
repos.unadopted.no_more = No more unadopted repositories found
2014-08-29 20:50:43 +08:00
repos.owner = Owner
repos.name = Name
repos.private = Private
repos.issues = Issues
2017-04-11 21:30:15 +08:00
repos.size = Size
2023-06-29 06:41:02 +08:00
repos.lfs_size = LFS Size
2014-08-29 20:50:43 +08:00
2022-03-30 16:42:47 +08:00
packages.package_manage_panel = Package Management
packages.total_size = Total Size: %s
2023-01-18 23:52:04 +08:00
packages.unreferenced_size = Unreferenced Size: %s
2023-08-08 08:46:10 +08:00
packages.cleanup = Clean up expired data
2023-11-20 21:41:10 +08:00
packages.cleanup.success = Cleaned up expired data successfully
2022-03-30 16:42:47 +08:00
packages.owner = Owner
packages.creator = Creator
packages.name = Name
packages.version = Version
packages.type = Type
packages.repository = Repository
packages.size = Size
packages.published = Published
2021-01-15 07:24:03 +08:00
defaulthooks = Default Webhooks
2024-09-03 02:36:24 +08:00
defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Webhooks defined here are defaults and will be copied into all new repositories. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
2021-01-15 07:24:03 +08:00
defaulthooks.add_webhook = Add Default Webhook
defaulthooks.update_webhook = Update Default Webhook
2019-03-19 10:33:20 +08:00
2021-01-15 07:24:03 +08:00
systemhooks = System Webhooks
2024-09-03 02:36:24 +08:00
systemhooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Webhooks defined here will act on all repositories on the system, so please consider any performance implications this may have. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
2020-03-09 06:08:05 +08:00
systemhooks.add_webhook = Add System Webhook
systemhooks.update_webhook = Update System Webhook
2018-04-19 22:24:31 +08:00
auths.auth_manage_panel = Authentication Source Management
auths.new = Add Authentication Source
2014-08-29 20:50:43 +08:00
auths.name = Name
auths.type = Type
auths.enabled = Enabled
2018-04-19 22:24:31 +08:00
auths.syncenabled = Enable User Synchronization
2014-08-29 20:50:43 +08:00
auths.updated = Updated
2015-09-07 23:51:53 +08:00
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
2016-07-08 07:25:09 +08:00
auths.security_protocol = Security Protocol
2014-08-29 20:50:43 +08:00
auths.domain = Domain
auths.host = Host
auths.port = Port
2015-08-13 07:58:27 +08:00
auths.bind_dn = Bind DN
auths.bind_password = Bind Password
auths.user_base = User Search Base
2015-09-05 11:39:23 +08:00
auths.user_dn = User DN
2018-04-19 22:24:31 +08:00
auths.attribute_username = Username Attribute
auths.attribute_username_placeholder = Leave empty to use the username entered in Gitea.
auths.attribute_name = First Name Attribute
auths.attribute_surname = Surname Attribute
auths.attribute_mail = Email Attribute
2018-05-24 12:59:02 +08:00
auths.attribute_ssh_public_key = Public SSH Key Attribute
2021-09-27 10:39:36 +08:00
auths.attribute_avatar = Avatar Attribute
2018-04-19 22:24:31 +08:00
auths.attributes_in_bind = Fetch Attributes in Bind DN Context
2020-01-20 11:47:39 +08:00
auths.allow_deactivate_all = Allow an empty search result to deactivate all users
2018-05-08 20:40:52 +08:00
auths.use_paged_search = Use Paged Search
auths.search_page_size = Page Size
2015-08-13 07:58:27 +08:00
auths.filter = User Filter
2015-08-19 12:34:03 +08:00
auths.admin_filter = Admin Filter
2020-03-05 14:30:33 +08:00
auths.restricted_filter = Restricted Filter
auths.restricted_filter_helper = Leave empty to not set any users as restricted. Use an asterisk ('*') to set all users that do not match Admin Filter as restricted.
2022-02-11 22:24:58 +08:00
auths.verify_group_membership = Verify group membership in LDAP (leave the filter empty to skip)
2020-09-10 23:30:07 +08:00
auths.group_search_base = Group Search Base DN
auths.group_attribute_list_users = Group Attribute Containing List Of Users
auths.user_attribute_in_group = User Attribute Listed In Group
2022-02-11 22:24:58 +08:00
auths.map_group_to_team = Map LDAP groups to Organization teams (leave the field empty to skip)
auths.map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding LDAP group
auths.enable_ldap_groups = Enable LDAP groups
2018-01-02 10:37:16 +08:00
auths.ms_ad_sa = MS AD Search Attributes
2015-09-07 23:51:53 +08:00
auths.smtp_auth = SMTP Authentication Type
2014-08-29 20:50:43 +08:00
auths.smtphost = SMTP Host
auths.smtpport = SMTP Port
2015-09-12 01:32:33 +08:00
auths.allowed_domains = Allowed Domains
2018-04-19 22:24:31 +08:00
auths.allowed_domains_helper = Leave empty to allow all domains. Separate multiple domains with a comma (',').
2015-08-29 15:45:58 +08:00
auths.skip_tls_verify = Skip TLS Verify
2021-08-12 04:42:58 +08:00
auths.force_smtps = Force SMTPS
2021-08-14 22:10:39 +08:00
auths.force_smtps_helper = SMTPS is always used on port 465. Set this to force SMTPS on other ports. (Otherwise STARTTLS will be used on other ports if it is supported by the host.)
2021-08-12 04:42:58 +08:00
auths.helo_hostname = HELO Hostname
auths.helo_hostname_helper = Hostname sent with HELO. Leave blank to send current hostname.
auths.disable_helo = Disable HELO
2015-04-23 19:58:57 +08:00
auths.pam_service_name = PAM Service Name
2021-05-14 06:11:47 +08:00
auths.pam_email_domain = PAM Email Domain (optional)
2017-05-01 21:26:53 +08:00
auths.oauth2_provider = OAuth2 Provider
2020-12-28 10:35:55 +08:00
auths.oauth2_icon_url = Icon URL
2017-02-22 15:14:37 +08:00
auths.oauth2_clientID = Client ID (Key)
auths.oauth2_clientSecret = Client Secret
2017-05-01 21:26:53 +08:00
auths.openIdConnectAutoDiscoveryURL = OpenID Connect Auto Discovery URL
2018-04-19 22:24:31 +08:00
auths.oauth2_use_custom_url = Use Custom URLs Instead of Default URLs
2017-05-01 21:26:53 +08:00
auths.oauth2_tokenURL = Token URL
auths.oauth2_authURL = Authorize URL
auths.oauth2_profileURL = Profile URL
auths.oauth2_emailURL = Email URL
2021-09-11 00:37:57 +08:00
auths.skip_local_two_fa = Skip local 2FA
auths.skip_local_two_fa_helper = Leaving unset means local users with 2FA set will still have to pass 2FA to log on
2021-08-06 09:11:08 +08:00
auths.oauth2_tenant = Tenant
2021-12-14 16:37:11 +08:00
auths.oauth2_scopes = Additional Scopes
auths.oauth2_required_claim_name = Required Claim Name
auths.oauth2_required_claim_name_helper = Set this name to restrict login from this source to users with a claim with this name
auths.oauth2_required_claim_value = Required Claim Value
auths.oauth2_required_claim_value_helper = Set this value to restrict login from this source to users with a claim with this name and value
2021-12-17 03:01:14 +08:00
auths.oauth2_group_claim_name = Claim name providing group names for this source. (Optional)
auths.oauth2_admin_group = Group Claim value for administrator users. (Optional - requires claim name above)
auths.oauth2_restricted_group = Group Claim value for restricted users. (Optional - requires claim name above)
2023-02-08 14:44:42 +08:00
auths.oauth2_map_group_to_team = Map claimed groups to Organization teams. (Optional - requires claim name above)
auths.oauth2_map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding group.
2014-08-29 20:50:43 +08:00
auths.enable_auto_register = Enable Auto Registration
2019-11-23 07:33:31 +08:00
auths.sspi_auto_create_users = Automatically create users
auths.sspi_auto_create_users_helper = Allow SSPI auth method to automatically create new accounts for users that login for the first time
auths.sspi_auto_activate_users = Automatically activate users
auths.sspi_auto_activate_users_helper = Allow SSPI auth method to automatically activate new users
auths.sspi_strip_domain_names = Remove domain names from usernames
auths.sspi_strip_domain_names_helper = If checked, domain names will be removed from logon names (eg. "DOMAIN\user" and "user@example.org" both will become just "user").
auths.sspi_separator_replacement = Separator to use instead of \, / and @
auths.sspi_separator_replacement_helper = The character to use to replace the separators of down-level logon names (eg. the \ in "DOMAIN\user") and user principal names (eg. the @ in "user@example.org").
auths.sspi_default_language = Default user language
auths.sspi_default_language_helper = Default language for users automatically created by SSPI auth method. Leave empty if you prefer language to be automatically detected.
2014-08-29 20:50:43 +08:00
auths.tips = Tips
2017-05-01 21:26:53 +08:00
auths.tips.oauth2.general = OAuth2 Authentication
2023-06-15 09:12:50 +08:00
auths.tips.oauth2.general.tip = When registering a new OAuth2 authentication, the callback/redirect URL should be:
2017-05-01 21:26:53 +08:00
auths.tip.oauth2_provider = OAuth2 Provider
2024-09-03 02:36:24 +08:00
auths.tip.bitbucket = Register a new OAuth consumer on %s and add the permission 'Account' - 'Read'
2020-03-03 11:11:45 +08:00
auths.tip.nextcloud = Register a new OAuth consumer on your instance using the following menu "Settings -> Security -> OAuth 2.0 client"
2024-09-03 02:36:24 +08:00
auths.tip.dropbox = Create a new application at %s
auths.tip.facebook = Register a new application at %s and add the product "Facebook Login"
auths.tip.github = Register a new OAuth application on %s
auths.tip.gitlab_new = Register a new application on %s
auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at %s
2024-04-17 18:24:08 +08:00
auths.tip.openid_connect = Use the OpenID Connect Discovery URL "https://{server}/.well-known/openid-configuration" to specify the endpoints
2024-09-03 02:36:24 +08:00
auths.tip.twitter = Go to %s, create an application and ensure that the “Allow this application to be used to Sign in with Twitter” option is enabled
auths.tip.discord = Register a new application on %s
auths.tip.gitea = Register a new OAuth2 application. Guide can be found at %s
auths.tip.yandex = Create a new application at %s. Select following permissions from the "Yandex.Passport API" section: "Access to email address", "Access to user avatar" and "Access to username, first name and surname, gender"
2020-10-26 02:21:49 +08:00
auths.tip.mastodon = Input a custom instance URL for the mastodon instance you want to authenticate with (or use the default one)
2018-04-19 22:24:31 +08:00
auths.edit = Edit Authentication Source
auths.activated = This Authentication Source is Activated
2023-04-18 06:04:26 +08:00
auths.new_success = The authentication "%s" has been added.
2018-04-19 22:24:31 +08:00
auths.update_success = The authentication source has been updated.
auths.update = Update Authentication Source
auths.delete = Delete Authentication Source
2017-05-18 09:03:43 +08:00
auths.delete_auth_title = Delete Authentication Source
2018-04-19 22:24:31 +08:00
auths.delete_auth_desc = Deleting an authentication source prevents users from using it to sign in. Continue?
auths.still_in_used = The authentication source is still in use. Convert or delete any users using this authentication source first.
auths.deletion_success = The authentication source has been deleted.
2023-04-18 06:04:26 +08:00
auths.login_source_exist = The authentication source "%s" already exists.
2019-11-23 07:33:31 +08:00
auths.login_source_of_type_exist = An authentication source of this type already exists.
2023-03-10 14:14:43 +08:00
auths.unable_to_initialize_openid = Unable to initialize OpenID Connect Provider: %s
auths.invalid_openIdConnectAutoDiscoveryURL = Invalid Auto Discovery URL (this must be a valid URL starting with http:// or https://)
2014-08-29 20:50:43 +08:00
2014-08-30 20:49:51 +08:00
config.server_config = Server Configuration
2018-04-19 22:24:31 +08:00
config.app_name = Site Title
config.app_ver = Gitea Version
config.app_url = Gitea Base URL
2017-06-22 21:21:56 +08:00
config.custom_conf = Configuration File Path
2019-03-20 06:40:13 +08:00
config.custom_file_root_path = "Custom File Root Path"
2021-11-06 03:23:55 +08:00
config.domain = Server Domain
2018-04-19 22:24:31 +08:00
config.offline_mode = Local Mode
2014-08-30 20:49:51 +08:00
config.disable_router_log = Disable Router Log
2018-04-19 22:24:31 +08:00
config.run_user = Run As Username
2014-08-30 20:49:51 +08:00
config.run_mode = Run Mode
2017-02-13 19:49:42 +08:00
config.git_version = Git Version
2023-07-19 17:22:57 +08:00
config.app_data_path = App Data Path
2014-08-30 20:49:51 +08:00
config.repo_root_path = Repository Root Path
2016-12-26 09:16:37 +08:00
config.lfs_root_path = LFS Root Path
2018-04-19 22:24:31 +08:00
config.log_file_root_path = Log Path
2014-08-30 20:49:51 +08:00
config.script_type = Script Type
config.reverse_auth_user = Reverse Authentication User
2016-02-28 09:48:39 +08:00
config.ssh_config = SSH Configuration
config.ssh_enabled = Enabled
2018-04-19 22:24:31 +08:00
config.ssh_start_builtin_server = Use Built-In Server
2021-11-06 03:23:55 +08:00
config.ssh_domain = SSH Server Domain
2016-02-28 09:48:39 +08:00
config.ssh_port = Port
config.ssh_listen_port = Listen Port
config.ssh_root_path = Root Path
config.ssh_key_test_path = Key Test Path
config.ssh_keygen_path = Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check = Minimum Key Size Check
config.ssh_minimum_key_sizes = Minimum Key Sizes
2019-06-17 02:24:49 +08:00
config.lfs_config = LFS Configuration
config.lfs_enabled = Enabled
config.lfs_content_path = LFS Content Path
config.lfs_http_auth_expiry = LFS HTTP Auth Expiry
2014-08-30 20:49:51 +08:00
config.db_config = Database Configuration
config.db_type = Type
config.db_host = Host
config.db_name = Name
2018-04-19 22:24:31 +08:00
config.db_user = Username
2020-01-20 23:45:14 +08:00
config.db_schema = Schema
2018-04-19 22:24:31 +08:00
config.db_ssl_mode = SSL
2014-08-30 20:49:51 +08:00
config.db_path = Path
2016-08-11 02:01:42 +08:00
2014-08-30 20:49:51 +08:00
config.service_config = Service Configuration
2018-04-19 22:24:31 +08:00
config.register_email_confirm = Require Email Confirmation to Register
config.disable_register = Disable Self-Registration
2021-05-09 22:13:35 +08:00
config.allow_only_internal_registration = Allow Registration Only Through Gitea itself
2018-07-21 00:40:08 +08:00
config.allow_only_external_registration = Allow Registration Only Through External Services
2018-04-19 22:24:31 +08:00
config.enable_openid_signup = Enable OpenID Self-Registration
config.enable_openid_signin = Enable OpenID Sign-In
2015-02-06 01:10:52 +08:00
config.show_registration_button = Show Register Button
2018-04-19 22:24:31 +08:00
config.require_sign_in_view = Require Sign-In to View Pages
config.mail_notify = Enable Email Notifications
config.enable_captcha = Enable CAPTCHA
2014-08-30 20:49:51 +08:00
config.active_code_lives = Active Code Lives
2019-04-18 15:23:59 +08:00
config.reset_password_code_lives = Recover Account Code Expiry Time
2018-04-19 22:24:31 +08:00
config.default_keep_email_private = Hide Email Addresses by Default
config.default_allow_create_organization = Allow Creation of Organizations by Default
config.enable_timetracking = Enable Time Tracking
config.default_enable_timetracking = Enable Time Tracking by Default
config.default_allow_only_contributors_to_track_time = Let Only Contributors Track Time
config.no_reply_address = Hidden Email Domain
2019-02-19 00:00:27 +08:00
config.default_visibility_organization = Default visibility for new Organizations
2018-07-21 00:40:08 +08:00
config.default_enable_dependencies = Enable Issue Dependencies by Default
2016-08-11 02:01:42 +08:00
2014-08-30 20:49:51 +08:00
config.webhook_config = Webhook Configuration
2015-07-26 02:14:07 +08:00
config.queue_length = Queue Length
2014-08-30 20:49:51 +08:00
config.deliver_timeout = Deliver Timeout
2017-05-18 09:03:43 +08:00
config.skip_tls_verify = Skip TLS Verification
2016-08-11 02:01:42 +08:00
2022-08-03 00:43:27 +08:00
config.mailer_config = Mailer Configuration
2014-08-30 20:49:51 +08:00
config.mailer_enabled = Enabled
2022-08-03 00:43:27 +08:00
config.mailer_enable_helo = Enable HELO
2014-08-30 20:49:51 +08:00
config.mailer_name = Name
2022-08-03 00:43:27 +08:00
config.mailer_protocol = Protocol
config.mailer_smtp_addr = SMTP Addr
config.mailer_smtp_port = SMTP Port
2014-08-30 20:49:51 +08:00
config.mailer_user = User
2017-10-26 16:47:16 +08:00
config.mailer_use_sendmail = Use Sendmail
config.mailer_sendmail_path = Sendmail Path
2018-04-19 22:24:31 +08:00
config.mailer_sendmail_args = Extra Arguments to Sendmail
2020-05-03 07:04:31 +08:00
config.mailer_sendmail_timeout = Sendmail Timeout
2022-08-03 00:43:27 +08:00
config.mailer_use_dummy = Dummy
2020-08-11 10:38:30 +08:00
config.test_email_placeholder = Email (e.g. test@example.com)
2018-04-19 22:24:31 +08:00
config.send_test_mail = Send Testing Email
2023-04-28 09:48:41 +08:00
config.send_test_mail_submit = Send
2023-04-18 06:04:26 +08:00
config.test_mail_failed = Failed to send a testing email to "%s": %v
config.test_mail_sent = A testing email has been sent to "%s".
2016-08-11 02:01:42 +08:00
2014-08-30 20:49:51 +08:00
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
2016-08-11 02:01:42 +08:00
2014-08-30 20:49:51 +08:00
config.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
2019-05-06 22:35:11 +08:00
config.cache_item_ttl = Cache Item TTL
2024-06-18 03:22:39 +08:00
config.cache_test = Test Cache
config.cache_test_failed = Failed to probe the cache: %v.
config.cache_test_slow = Cache test successful, but response is slow: %s.
config.cache_test_succeeded = Cache test successful, got a response in %s.
2016-08-11 02:01:42 +08:00
2014-08-30 20:49:51 +08:00
config.session_config = Session Configuration
config.session_provider = Session Provider
config.provider_config = Provider Config
config.cookie_name = Cookie Name
config.gc_interval_time = GC Interval Time
config.session_life_time = Session Life Time
config.https_only = HTTPS Only
config.cookie_life_time = Cookie Life Time
2016-08-11 02:01:42 +08:00
2018-04-19 22:24:31 +08:00
config.picture_config = Picture and Avatar Configuration
2014-08-30 20:49:51 +08:00
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
2016-08-08 01:27:38 +08:00
config.enable_federated_avatar = Enable Federated Avatars
2024-02-24 21:12:17 +08:00
config.open_with_editor_app_help = The "Open with" editors for the clone menu. If left empty, the default will be used. Expand to see the default.
2016-08-11 02:01:42 +08:00
config.git_config = Git Configuration
config.git_disable_diff_highlight = Disable Diff Syntax Highlight
config.git_max_diff_lines = Max Diff Lines (for a single file)
config.git_max_diff_line_characters = Max Diff Characters (for a single line)
config.git_max_diff_files = Max Diff Files (to be shown)
config.git_gc_args = GC Arguments
config.git_migrate_timeout = Migration Timeout
config.git_mirror_timeout = Mirror Update Timeout
config.git_clone_timeout = Clone Operation Timeout
config.git_pull_timeout = Pull Operation Timeout
config.git_gc_timeout = GC Operation Timeout
2014-08-30 20:49:51 +08:00
config.log_config = Log Configuration
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-22 06:35:11 +08:00
config.logger_name_fmt = Logger: %s
2019-04-02 15:48:31 +08:00
config.disabled_logger = Disabled
config.access_log_mode = Access Log Mode
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-22 06:35:11 +08:00
config.access_log_template = Access Log Template
2019-04-02 15:48:31 +08:00
config.xorm_log_sql = Log SQL
2014-08-30 20:49:51 +08:00
2022-10-17 07:29:26 +08:00
config.set_setting_failed = Set setting %s failed
2023-06-03 22:03:41 +08:00
monitor.stats = Stats
2014-08-30 20:49:51 +08:00
monitor.cron = Cron Tasks
monitor.name = Name
monitor.schedule = Schedule
monitor.next = Next Time
monitor.previous = Previous Time
2018-04-19 22:24:31 +08:00
monitor.execute_times = Executions
2014-08-30 20:49:51 +08:00
monitor.process = Running Processes
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 15:45:47 +08:00
monitor.stacktrace = Stacktrace
monitor.processes_count = %d Processes
monitor.download_diagnosis_report = Download diagnosis report
2014-08-30 20:49:51 +08:00
monitor.desc = Description
monitor.start = Start Time
monitor.execute_time = Execution Time
2022-03-29 09:31:07 +08:00
monitor.last_execution_result = Result
2019-11-30 22:40:22 +08:00
monitor.process.cancel = Cancel process
2023-10-22 19:59:31 +08:00
monitor.process.cancel_desc = Cancelling a process may cause data loss
monitor.process.cancel_notices = Cancel: <strong>%s</strong>?
2021-12-01 04:06:32 +08:00
monitor.process.children = Children
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 15:45:47 +08:00
2020-01-07 19:23:09 +08:00
monitor.queues = Queues
monitor.queue = Queue: %s
monitor.queue.name = Name
monitor.queue.type = Type
monitor.queue.exemplar = Exemplar Type
monitor.queue.numberworkers = Number of Workers
2023-09-04 21:07:32 +08:00
monitor.queue.activeworkers = Active Workers
2020-01-07 19:23:09 +08:00
monitor.queue.maxnumberworkers = Max Number of Workers
2022-02-12 13:31:26 +08:00
monitor.queue.numberinqueue = Number in Queue
2023-09-04 21:07:32 +08:00
monitor.queue.review_add = Review / Add Workers
2020-01-07 19:23:09 +08:00
monitor.queue.settings.title = Pool Settings
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 15:45:47 +08:00
monitor.queue.settings.desc = Pools dynamically grow in response to their worker queue blocking.
2020-01-07 19:23:09 +08:00
monitor.queue.settings.maxnumberworkers = Max Number of workers
monitor.queue.settings.maxnumberworkers.placeholder = Currently %[1]d
monitor.queue.settings.maxnumberworkers.error = Max number of workers must be a number
monitor.queue.settings.submit = Update Settings
monitor.queue.settings.changed = Settings Updated
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 15:45:47 +08:00
monitor.queue.settings.remove_all_items = Remove all
monitor.queue.settings.remove_all_items_done = All items in the queue have been removed.
2014-08-30 20:49:51 +08:00
2014-10-09 06:29:18 +08:00
notices.system_notice_list = System Notices
2017-05-11 09:03:34 +08:00
notices.view_detail_header = View Notice Details
2022-12-08 21:14:09 +08:00
notices.operations = Operations
2015-12-05 14:09:14 +08:00
notices.select_all = Select All
notices.deselect_all = Deselect All
notices.inverse_selection = Inverse Selection
notices.delete_selected = Delete Selected
notices.delete_all = Delete All Notices
2014-10-09 06:29:18 +08:00
notices.type = Type
notices.type_1 = Repository
2020-05-17 07:31:38 +08:00
notices.type_2 = Task
2014-10-09 06:29:18 +08:00
notices.desc = Description
notices.op = Op.
2017-05-18 09:03:43 +08:00
notices.delete_success = The system notices have been deleted.
2014-10-09 06:29:18 +08:00
2024-01-10 19:03:23 +08:00
self_check.no_problem_found = No problem found yet.
2024-03-31 11:03:24 +08:00
self_check.startup_warnings = Startup warnings:
2024-01-10 19:03:23 +08:00
self_check.database_collation_mismatch = Expect database to use collation: %s
self_check.database_collation_case_insensitive = Database is using a collation %s, which is an insensitive collation. Although Gitea could work with it, there might be some rare cases which don't work as expected.
self_check.database_inconsistent_collation_columns = Database is using collation %s, but these columns are using mismatched collations. It might cause some unexpected problems.
self_check.database_fix_mysql = For MySQL/MariaDB users, you could use the "gitea doctor convert" command to fix the collation problems, or you could also fix the problem by "ALTER ... COLLATE ..." SQLs manually.
self_check.database_fix_mssql = For MSSQL users, you could only fix the problem by "ALTER ... COLLATE ..." SQLs manually at the moment.
2024-05-10 20:07:01 +08:00
self_check.location_origin_mismatch = Current URL (%[1]s) doesn't match the URL seen by Gitea (%[2]s). If you are using a reverse proxy, please make sure the "Host" and "X-Forwarded-Proto" headers are set correctly.
2024-01-10 19:03:23 +08:00
2014-07-26 12:24:27 +08:00
[action]
2017-11-02 00:03:10 +08:00
create_repo = created repository <a href="%s">%s</a>
rename_repo = renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
2021-11-17 02:18:25 +08:00
commit_repo = pushed to <a href="%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
create_issue = `opened issue <a href="%[1]s">%[3]s#%[2]s</a>`
close_issue = `closed issue <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_issue = `reopened issue <a href="%[1]s">%[3]s#%[2]s</a>`
create_pull_request = `created pull request <a href="%[1]s">%[3]s#%[2]s</a>`
close_pull_request = `closed pull request <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_pull_request = `reopened pull request <a href="%[1]s">%[3]s#%[2]s</a>`
comment_issue = `commented on issue <a href="%[1]s">%[3]s#%[2]s</a>`
comment_pull = `commented on pull request <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request = `merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2022-11-03 23:49:00 +08:00
auto_merge_pull_request = `automatically merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2017-11-02 00:03:10 +08:00
transfer_repo = transferred repository <code>%s</code> to <a href="%s">%s</a>
2021-11-17 02:18:25 +08:00
push_tag = pushed tag <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a>
2017-11-02 00:03:10 +08:00
delete_tag = deleted tag %[2]s from <a href="%[1]s">%[3]s</a>
delete_branch = deleted branch %[2]s from <a href="%[1]s">%[3]s</a>
2020-05-05 06:44:30 +08:00
compare_branch = Compare
2017-05-18 09:03:43 +08:00
compare_commits = Compare %d commits
2019-06-29 17:18:49 +08:00
compare_commits_general = Compare commits
2021-11-17 02:18:25 +08:00
mirror_sync_push = synced commits to <a href="%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create = synced new reference <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a> from mirror
2018-09-07 10:06:09 +08:00
mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
2021-11-17 02:18:25 +08:00
approve_pull_request = `approved <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request = `suggested changes for <a href="%[1]s">%[3]s#%[2]s</a>`
2024-05-15 07:06:12 +08:00
publish_release = `released <a href="%[2]s">%[4]s</a> at <a href="%[1]s">%[3]s</a>`
2021-11-17 02:18:25 +08:00
review_dismissed = `dismissed review from <b>%[4]s</b> for <a href="%[1]s">%[3]s#%[2]s</a>`
2021-02-12 01:32:25 +08:00
review_dismissed_reason = Reason:
2021-11-17 02:18:25 +08:00
create_branch = created branch <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
2021-10-28 15:05:00 +08:00
starred_repo = starred <a href="%[1]s">%[2]s</a>
2021-10-16 22:21:16 +08:00
watched_repo = started watching <a href="%[1]s">%[2]s</a>
2014-07-26 12:24:27 +08:00
[tool]
now = now
2017-06-28 13:43:28 +08:00
future = future
1s = 1 second
1m = 1 minute
1h = 1 hour
1d = 1 day
1w = 1 week
1mon = 1 month
1y = 1 year
seconds = %d seconds
minutes = %d minutes
hours = %d hours
days = %d days
weeks = %d weeks
months = %d months
years = %d years
2014-08-30 20:49:51 +08:00
raw_seconds = seconds
raw_minutes = minutes
2015-08-11 17:54:00 +08:00
[dropzone]
2018-04-19 22:24:31 +08:00
default_message = Drop files or click here to upload.
2023-01-09 02:25:28 +08:00
invalid_input_type = You cannot upload files of this type.
2017-03-09 21:24:57 +08:00
file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB).
2015-08-13 07:58:27 +08:00
remove_file = Remove file
2016-12-31 02:49:54 +08:00
[notification]
notifications = Notifications
unread = Unread
read = Read
2018-04-19 22:24:31 +08:00
no_unread = No unread notifications.
no_read = No read notifications.
2017-03-09 21:24:57 +08:00
pin = Pin notification
2017-01-18 09:18:55 +08:00
mark_as_read = Mark as read
mark_as_unread = Mark as unread
2017-12-07 13:52:57 +08:00
mark_all_as_read = Mark all as read
2022-09-30 03:09:14 +08:00
subscriptions = Subscriptions
watching = Watching
no_subscriptions = No subscriptions
2017-03-22 18:43:54 +08:00
[gpg]
2019-10-16 21:42:42 +08:00
default_key = Signed with default key
2017-03-22 18:43:54 +08:00
error.extract_sign = Failed to extract signature
error.generate_hash = Failed to generate hash of commit
2018-04-19 22:24:31 +08:00
error.no_committer_account = No account linked to committer's email address
2017-11-02 00:03:10 +08:00
error.no_gpg_keys_found = "No known key found for this signature in database"
error.not_signed_commit = "Not a signed commit"
2018-04-19 22:24:31 +08:00
error.failed_retrieval_gpg_keys = "Failed to retrieve any key attached to the committer's account"
2019-10-16 21:42:42 +08:00
error.probable_bad_signature = "WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS."
error.probable_bad_default_signature = "WARNING! Although the default key has this ID it does not verify this commit! This commit is SUSPICIOUS."
2017-05-18 22:54:24 +08:00
[units]
2022-01-05 11:37:00 +08:00
unit = Unit
2018-04-19 22:24:31 +08:00
error.no_unit_allowed_repo = You are not allowed to access any section of this repository.
error.unit_not_allowed = You are not allowed to access this repository section.
2022-03-30 16:42:47 +08:00
[packages]
title = Packages
desc = Manage repository packages.
empty = There are no packages yet.
2024-05-20 14:44:16 +08:00
no_metadata = No metadata.
2023-05-01 15:17:27 +08:00
empty.documentation = For more information on the package registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-07-27 19:58:21 +08:00
empty.repo = Did you upload a package, but it's not shown here? Go to <a href="%[1]s">package settings</a> and link it to this repo.
2023-07-07 16:47:26 +08:00
registry.documentation = For more information on the %s registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 16:42:47 +08:00
filter.type = Type
filter.type.all = All
filter.no_result = Your filter produced no results.
filter.container.tagged = Tagged
filter.container.untagged = Untagged
published_by = Published %[1]s by <a href="%[2]s">%[3]s</a>
published_by_in = Published %[1]s by <a href="%[2]s">%[3]s</a> in <a href="%[4]s"><strong>%[5]s</strong></a>
installation = Installation
about = About this package
requirements = Requirements
dependencies = Dependencies
keywords = Keywords
details = Details
details.author = Author
details.project_site = Project Site
2023-02-06 09:49:21 +08:00
details.repository_site = Repository Site
details.documentation_site = Documentation Site
2022-03-30 16:42:47 +08:00
details.license = License
assets = Assets
versions = Versions
versions.view_all = View all
dependency.id = ID
dependency.version = Version
2023-05-13 01:27:50 +08:00
alpine.registry = Setup this registry by adding the url in your <code>/etc/apk/repositories</code> file:
alpine.registry.key = Download the registry public RSA key into the <code>/etc/apk/keys/</code> folder to verify the index signature:
alpine.registry.info = Choose $branch and $repository from the list below.
alpine.install = To install the package, run the following command:
alpine.repository = Repository Info
alpine.repository.branches = Branches
alpine.repository.repositories = Repositories
alpine.repository.architectures = Architectures
2024-12-05 07:09:07 +08:00
arch.registry = Add server with related repository and architecture to <code>/etc/pacman.conf</code>:
arch.install = Sync package with pacman:
arch.repository = Repository Info
arch.repository.repositories = Repositories
arch.repository.architectures = Architectures
2023-02-05 18:12:31 +08:00
cargo.registry = Setup this registry in the Cargo configuration file (for example <code>~/.cargo/config.toml</code>):
cargo.install = To install the package using Cargo, run the following command:
2023-02-06 09:49:21 +08:00
chef.registry = Setup this registry in your <code>~/.chef/config.rb</code> file:
chef.install = To install the package, run the following command:
2022-03-30 16:42:47 +08:00
composer.registry = Setup this registry in your <code>~/.composer/config.json</code> file:
composer.install = To install the package using Composer, run the following command:
composer.dependencies = Dependencies
composer.dependencies.development = Development Dependencies
conan.details.repository = Repository
conan.registry = Setup this registry from the command line:
conan.install = To install the package using Conan, run the following command:
2023-02-02 02:30:39 +08:00
conda.registry = Setup this registry as a Conda repository in your <code>.condarc</code> file:
conda.install = To install the package using Conda, run the following command:
2022-03-30 16:42:47 +08:00
container.details.type = Image Type
container.details.platform = Platform
container.pull = Pull the image from the command line:
2022-09-15 04:45:13 +08:00
container.digest = Digest:
2022-03-30 16:42:47 +08:00
container.multi_arch = OS / Arch
container.layers = Image Layers
container.labels = Labels
container.labels.key = Key
container.labels.value = Value
2023-05-22 10:57:49 +08:00
cran.registry = Setup this registry in your <code>Rprofile.site</code> file:
cran.install = To install the package, run the following command:
2023-05-03 00:31:35 +08:00
debian.registry = Setup this registry from the command line:
debian.registry.info = Choose $distribution and $component from the list below.
debian.install = To install the package, run the following command:
debian.repository = Repository Info
debian.repository.distributions = Distributions
debian.repository.components = Components
debian.repository.architectures = Architectures
2022-03-30 16:42:47 +08:00
generic.download = Download package from the command line:
2023-05-14 23:38:40 +08:00
go.install = Install the package from the command line:
2022-04-20 00:55:35 +08:00
helm.registry = Setup this registry from the command line:
helm.install = To install the package, run the following command:
2022-03-30 16:42:47 +08:00
maven.registry = Setup this registry in your project <code>pom.xml</code> file:
maven.install = To use the package include the following in the <code>dependencies</code> block in the <code>pom.xml</code> file:
maven.install2 = Run via command line:
maven.download = To download the dependency, run via command line:
nuget.registry = Setup this registry from the command line:
nuget.install = To install the package using NuGet, run the following command:
nuget.dependency.framework = Target Framework
npm.registry = Setup this registry in your project <code>.npmrc</code> file:
npm.install = To install the package using npm, run the following command:
npm.install2 = or add it to the package.json file:
npm.dependencies = Dependencies
npm.dependencies.development = Development Dependencies
2024-04-29 16:19:06 +08:00
npm.dependencies.bundle = Bundled Dependencies
2022-03-30 16:42:47 +08:00
npm.dependencies.peer = Peer Dependencies
npm.dependencies.optional = Optional Dependencies
npm.details.tag = Tag
2022-08-07 18:09:54 +08:00
pub.install = To install the package using Dart, run the following command:
2022-03-30 16:42:47 +08:00
pypi.requires = Requires Python
pypi.install = To install the package using pip, run the following command:
2023-05-06 04:33:37 +08:00
rpm.registry = Setup this registry from the command line:
2023-07-20 23:37:31 +08:00
rpm.distros.redhat = on RedHat based distributions
rpm.distros.suse = on SUSE based distributions
2023-05-06 04:33:37 +08:00
rpm.install = To install the package, run the following command:
2024-01-19 19:37:10 +08:00
rpm.repository = Repository Info
rpm.repository.architectures = Architectures
rpm.repository.multiple_groups = This package is available in multiple groups.
2022-03-30 16:42:47 +08:00
rubygems.install = To install the package using gem, run the following command:
rubygems.install2 = or add it to the Gemfile:
rubygems.dependencies.runtime = Runtime Dependencies
rubygems.dependencies.development = Development Dependencies
rubygems.required.ruby = Requires Ruby version
rubygems.required.rubygems = Requires RubyGem version
2023-03-14 04:28:39 +08:00
swift.registry = Setup this registry from the command line:
swift.install = Add the package in your <code>Package.swift</code> file:
swift.install2 = and run the following command:
2022-08-29 15:04:45 +08:00
vagrant.install = To add a Vagrant box, run the following command:
2022-03-30 16:42:47 +08:00
settings.link = Link this package to a repository
settings.link.description = If you link a package with a repository, the package is listed in the repository's package list.
settings.link.select = Select Repository
settings.link.button = Update Repository Link
2022-04-26 18:54:40 +08:00
settings.link.success = Repository link was successfully updated.
2022-03-30 16:42:47 +08:00
settings.link.error = Failed to update repository link.
settings.delete = Delete package
settings.delete.description = Deleting a package is permanent and cannot be undone.
settings.delete.notice = You are about to delete %s (%s). This operation is irreversible, are you sure?
settings.delete.success = The package has been deleted.
2022-03-31 03:17:05 +08:00
settings.delete.error = Failed to delete the package.
2023-02-05 18:12:31 +08:00
owner.settings.cargo.title = Cargo Registry Index
owner.settings.cargo.initialize = Initialize Index
2023-08-08 23:25:05 +08:00
owner.settings.cargo.initialize.description = A special index Git repository is needed to use the Cargo registry. Using this option will (re-)create the repository and configure it automatically.
2023-02-05 18:12:31 +08:00
owner.settings.cargo.initialize.error = Failed to initialize Cargo index: %v
owner.settings.cargo.initialize.success = The Cargo index was successfully created.
owner.settings.cargo.rebuild = Rebuild Index
2023-08-08 23:25:05 +08:00
owner.settings.cargo.rebuild.description = Rebuilding can be useful if the index is not synchronized with the stored Cargo packages.
2023-02-05 18:12:31 +08:00
owner.settings.cargo.rebuild.error = Failed to rebuild Cargo index: %v
owner.settings.cargo.rebuild.success = The Cargo index was successfully rebuild.
2022-11-20 22:08:38 +08:00
owner.settings.cleanuprules.title = Manage Cleanup Rules
owner.settings.cleanuprules.add = Add Cleanup Rule
owner.settings.cleanuprules.edit = Edit Cleanup Rule
2023-08-08 23:25:05 +08:00
owner.settings.cleanuprules.none = No cleanup rules available. Please consult the documentation.
2022-11-20 22:08:38 +08:00
owner.settings.cleanuprules.preview = Cleanup Rule Preview
owner.settings.cleanuprules.preview.overview = %d packages are scheduled to be removed.
owner.settings.cleanuprules.preview.none = Cleanup rule does not match any packages.
owner.settings.cleanuprules.enabled = Enabled
owner.settings.cleanuprules.pattern_full_match = Apply pattern to full package name
owner.settings.cleanuprules.keep.title = Versions that match these rules are kept, even if they match a removal rule below.
owner.settings.cleanuprules.keep.count = Keep the most recent
owner.settings.cleanuprules.keep.count.1 = 1 version per package
owner.settings.cleanuprules.keep.count.n = %d versions per package
owner.settings.cleanuprules.keep.pattern = Keep versions matching
owner.settings.cleanuprules.keep.pattern.container = The <code>latest</code> version is always kept for Container packages.
owner.settings.cleanuprules.remove.title = Versions that match these rules are removed, unless a rule above says to keep them.
owner.settings.cleanuprules.remove.days = Remove versions older than
owner.settings.cleanuprules.remove.pattern = Remove versions matching
owner.settings.cleanuprules.success.update = Cleanup rule has been updated.
owner.settings.cleanuprules.success.delete = Cleanup rule has been deleted.
2023-02-06 09:49:21 +08:00
owner.settings.chef.title = Chef Registry
owner.settings.chef.keypair = Generate key pair
2023-08-08 23:25:05 +08:00
owner.settings.chef.keypair.description = A key pair is necessary to authenticate to the Chef registry. If you have generated a key pair before, generating a new key pair will discard the old key pair.
2022-12-20 17:07:13 +08:00
[secrets]
secrets = Secrets
description = Secrets will be passed to certain actions and cannot be read otherwise.
none = There are no secrets yet.
creation = Add Secret
creation.name_placeholder = case-insensitive, alphanumeric characters or underscores only, cannot start with GITEA_ or GITHUB_
creation.value_placeholder = Input any content. Whitespace at the start and end will be omitted.
2023-04-18 06:04:26 +08:00
creation.success = The secret "%s" has been added.
2022-12-20 17:07:13 +08:00
creation.failed = Failed to add secret.
deletion = Remove secret
2023-02-01 20:53:04 +08:00
deletion.description = Removing a secret is permanent and cannot be undone. Continue?
2022-12-20 17:07:13 +08:00
deletion.success = The secret has been removed.
deletion.failed = Failed to remove secret.
2023-04-28 08:08:47 +08:00
management = Secrets Management
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00
[actions]
actions = Actions
unit.desc = Manage actions
status.unknown = "Unknown"
status.waiting = "Waiting"
status.running = "Running"
status.success = "Success"
status.failure = "Failure"
2023-08-08 23:25:05 +08:00
status.cancelled = "Canceled"
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00
status.skipped = "Skipped"
status.blocked = "Blocked"
runners = Runners
runners.runner_manage_panel = Runners Management
runners.new = Create new Runner
runners.new_notice = How to start a runner
runners.status = Status
runners.id = ID
runners.name = Name
runners.owner_type = Type
runners.description = Description
runners.labels = Labels
runners.last_online = Last Online Time
runners.runner_title = Runner
runners.task_list = Recent tasks on this runner
2023-06-13 22:28:31 +08:00
runners.task_list.no_tasks = There is no task yet.
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00
runners.task_list.run = Run
runners.task_list.status = Status
runners.task_list.repository = Repository
runners.task_list.commit = Commit
runners.task_list.done_at = Done At
runners.edit_runner = Edit Runner
runners.update_runner = Update Changes
runners.update_runner_success = Runner updated successfully
runners.update_runner_failed = Failed to update runner
runners.delete_runner = Delete this runner
runners.delete_runner_success = Runner deleted successfully
runners.delete_runner_failed = Failed to delete runner
runners.delete_runner_header = Confirm to delete this runner
runners.delete_runner_notice = If a task is running on this runner, it will be terminated and mark as failed. It may break building workflow.
runners.none = No runners available
runners.status.unspecified = Unknown
runners.status.idle = Idle
runners.status.active = Active
runners.status.offline = Offline
2023-03-20 10:19:40 +08:00
runners.version = Version
2023-09-25 02:12:21 +08:00
runners.reset_registration_token = Reset registration token
2023-03-29 09:20:48 +08:00
runners.reset_registration_token_success = Runner registration token reset successfully
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00
runs.all_workflows = All Workflows
runs.commit = Commit
2023-09-08 23:01:19 +08:00
runs.scheduled = Scheduled
2023-07-04 17:59:47 +08:00
runs.pushed_by = pushed by
2023-03-14 15:27:03 +08:00
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
2023-12-19 00:06:19 +08:00
runs.no_matching_online_runner_helper = No matching online runner with label: %s
2024-03-22 11:19:17 +08:00
runs.no_job_without_needs = The workflow must contain at least one job without dependencies.
2024-05-27 13:21:00 +08:00
runs.no_job = The workflow must contain at least one job
2023-06-21 12:25:14 +08:00
runs.actor = Actor
runs.status = Status
runs.actors_no_select = All actors
runs.status_no_select = All status
runs.no_results = No results matched.
2023-11-21 16:27:33 +08:00
runs.no_workflows = There are no workflows yet.
2024-01-03 18:42:56 +08:00
runs.no_workflows.quick_start = Don't know how to start with Gitea Actions? See <a target="_blank" rel="noopener noreferrer" href="%s">the quick start guide</a>.
runs.no_workflows.documentation = For more information on Gitea Actions, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-06-21 12:25:14 +08:00
runs.no_runs = The workflow has no runs yet.
2023-11-21 11:00:59 +08:00
runs.empty_commit_message = (empty commit message)
2024-08-02 08:42:08 +08:00
runs.expire_log_message = Logs have been purged because they were too old.
2023-02-24 15:58:49 +08:00
2023-08-14 23:14:30 +08:00
workflow.disable = Disable Workflow
workflow.disable_success = Workflow '%s' disabled successfully.
workflow.enable = Enable Workflow
workflow.enable_success = Workflow '%s' enabled successfully.
2023-08-22 10:30:02 +08:00
workflow.disabled = Workflow is disabled.
Actions support workflow dispatch event (#28163)
fix #23668
My plan:
* In the `actions.list` method, if workflow is selected and IsAdmin,
check whether the on event contains `workflow_dispatch`. If so, display
a `Run workflow` button to allow the user to manually trigger the run.
* Providing a form that allows users to select target brach or tag, and
these parameters can be configured in yaml
* Simple form validation, `required` input cannot be empty
* Add a route `/actions/run`, and an `actions.Run` method to handle
* Add `WorkflowDispatchPayload` struct to pass the Webhook event payload
to the runner when triggered, this payload carries the `inputs` values
and other fields, doc: [workflow_dispatch
payload](https://docs.github.com/en/webhooks/webhook-events-and-payloads#workflow_dispatch)
Other PRs
* the `Workflow.WorkflowDispatchConfig()` method still return non-nil
when workflow_dispatch is not defined. I submitted a PR
https://gitea.com/gitea/act/pulls/85 to fix it. Still waiting for them
to process.
Behavior should be same with github, but may cause confusion. Here's a
quick reminder.
*
[Doc](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch)
Said: This event will `only` trigger a workflow run if the workflow file
is `on the default branch`.
* If the workflow yaml file only exists in a non-default branch, it
cannot be triggered. (It will not even show up in the workflow list)
* If the same workflow yaml file exists in each branch at the same time,
the version of the default branch is used. Even if `Use workflow from`
selects another branch
![image](https://github.com/go-gitea/gitea/assets/3114995/4bf596f3-426b-48e8-9b8f-0f6d18defd79)
```yaml
name: Docker Image CI
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
boolean_default_true:
description: 'Test scenario tags'
required: true
type: boolean
default: true
boolean_default_false:
description: 'Test scenario tags'
required: false
type: boolean
default: false
environment:
description: 'Environment to run tests against'
type: environment
required: true
default: 'environment values'
number_required_1:
description: 'number '
type: number
required: true
default: '100'
number_required_2:
description: 'number'
type: number
required: true
default: '100'
number_required_3:
description: 'number'
type: number
required: true
default: '100'
number_1:
description: 'number'
type: number
required: false
number_2:
description: 'number'
type: number
required: false
number_3:
description: 'number'
type: number
required: false
env:
inputs_logLevel: ${{ inputs.logLevel }}
inputs_tags: ${{ inputs.tags }}
inputs_boolean_default_true: ${{ inputs.boolean_default_true }}
inputs_boolean_default_false: ${{ inputs.boolean_default_false }}
inputs_environment: ${{ inputs.environment }}
inputs_number_1: ${{ inputs.number_1 }}
inputs_number_2: ${{ inputs.number_2 }}
inputs_number_3: ${{ inputs.number_3 }}
inputs_number_required_1: ${{ inputs.number_required_1 }}
inputs_number_required_2: ${{ inputs.number_required_2 }}
inputs_number_required_3: ${{ inputs.number_required_3 }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ls -la
- run: env | grep inputs
- run: echo ${{ inputs.logLevel }}
- run: echo ${{ inputs.boolean_default_false }}
```
![image](https://github.com/go-gitea/gitea/assets/3114995/a58a842d-a0ff-4618-bc6d-83a9596d07c8)
![image](https://github.com/go-gitea/gitea/assets/3114995/44a7cca5-7bd4-42a9-8723-91751a501c88)
---------
Co-authored-by: TKaxv_7S <954067342@qq.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Denys Konovalov <kontakt@denyskon.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2024-08-19 10:38:40 +08:00
workflow.run = Run Workflow
workflow.not_found = Workflow '%s' not found.
workflow.run_success = Workflow '%s' run successfully.
workflow.from_ref = Use workflow from
workflow.has_workflow_dispatch = This workflow has a workflow_dispatch event trigger.
2023-08-14 23:14:30 +08:00
2023-02-24 15:58:49 +08:00
need_approval_desc = Need approval to run workflows for fork pull request.
2023-04-22 05:15:17 +08:00
2023-06-21 06:54:15 +08:00
variables = Variables
variables.management = Variables Management
variables.creation = Add Variable
variables.none = There are no variables yet.
variables.deletion = Remove variable
variables.deletion.description = Removing a variable is permanent and cannot be undone. Continue?
variables.description = Variables will be passed to certain actions and cannot be read otherwise.
2024-01-03 18:43:38 +08:00
variables.id_not_exist = Variable with ID %d does not exist.
2023-06-21 06:54:15 +08:00
variables.edit = Edit Variable
variables.deletion.failed = Failed to remove variable.
variables.deletion.success = The variable has been removed.
variables.creation.failed = Failed to add variable.
variables.creation.success = The variable "%s" has been added.
variables.update.failed = Failed to edit variable.
variables.update.success = The variable has been edited.
2023-04-22 05:15:17 +08:00
[projects]
2024-07-30 12:37:43 +08:00
deleted.display_name = Deleted Project
2023-04-22 05:15:17 +08:00
type-1.display_name = Individual Project
type-2.display_name = Repository Project
type-3.display_name = Organization Project
2023-08-07 03:52:34 +08:00
[git.filemode]
changed_filemode = %[1]s → %[2]s
2023-10-22 19:59:31 +08:00
; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
2023-08-07 03:52:34 +08:00
directory = Directory
normal_file = Normal file
executable_file = Executable file
symbolic_link = Symbolic link
submodule = Submodule