2024-01-21 20:35:58 +01:00
[common]
2014-07-26 06:24:27 +02:00
home = Home
dashboard = Dashboard
explore = Explore
help = Help
2022-06-05 11:41:51 +02:00
logo = Logo
2014-07-26 06:24:27 +02:00
sign_in = Sign In
2023-06-08 18:35:29 +02:00
sign_in_with_provider = Sign in with %s
sign_in_or = or
2014-07-26 06:24:27 +02:00
sign_out = Sign Out
2018-04-19 16:24:31 +02:00
sign_up = Register
2017-02-22 08:14:37 +01:00
link_account = Link Account
2014-07-26 06:24:27 +02:00
register = Register
version = Version
2020-01-04 21:27:19 +01:00
powered_by = Powered by %s
2014-07-26 06:24:27 +02:00
page = Page
template = Template
language = Language
2016-12-30 19:49:54 +01:00
notifications = Notifications
2024-06-11 19:42:33 +02:00
active_stopwatch = Active time tracker
2023-10-19 16:08:31 +02:00
tracked_time_summary = Summary of tracked time based on filters of issue list
2018-02-16 15:02:40 +01:00
create_new = Create…
2024-06-11 19:42:33 +02:00
user_profile_and_more = Profile and settings…
2015-08-10 16:59:12 +02:00
signed_in_as = Signed in as
2023-03-24 11:35:52 +01:00
enable_javascript = This website requires JavaScript.
2020-04-24 15:22:36 +02:00
toc = Table of Contents
2020-06-12 13:26:37 +02:00
licenses = Licenses
2024-05-20 20:44:33 +02:00
return_to_forgejo = Return to Forgejo
2024-06-11 19:42:33 +02:00
toggle_menu = Toggle menu
2024-03-26 18:39:46 +01:00
more_items = More items
2014-07-26 06:24:27 +02:00
username = Username
2024-02-27 14:39:59 +01:00
email = Email address
2014-07-26 06:24:27 +02:00
password = Password
2024-02-27 14:39:59 +01:00
access_token = Access token
re_type = Confirm password
2018-04-19 16:24:31 +02:00
captcha = CAPTCHA
2024-03-17 17:04:11 +01:00
twofa = Two-factor authentication
twofa_scratch = Two-factor scratch code
2017-01-16 03:14:29 +01:00
passcode = Passcode
2014-07-26 06:24:27 +02:00
2022-01-14 16:03:31 +01: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 16:12:37 +02:00
2014-07-26 06:24:27 +02:00
repository = Repository
organization = Organization
mirror = Mirror
2024-03-17 17:04:11 +01:00
new_repo = New repository
new_migrate = New migration
new_mirror = New mirror
new_fork = New repository fork
new_org = New organization
new_project = New project
new_project_column = New column
admin_panel = Site administration
2014-07-26 06:24:27 +02:00
settings = Settings
2018-04-19 16:24:31 +02:00
your_profile = Profile
your_starred = Starred
your_settings = Settings
2014-07-26 06:24:27 +02:00
2017-08-17 03:31:34 +02:00
all = All
sources = Sources
mirrors = Mirrors
collaborative = Collaborative
2017-08-18 08:56:04 +02:00
forks = Forks
2017-08-17 03:31:34 +02:00
2016-02-15 02:26:49 +01:00
activities = Activities
2024-03-17 17:04:11 +01:00
pull_requests = Pull requests
2014-07-26 06:24:27 +02:00
issues = Issues
2019-12-15 15:20:08 +01:00
milestones = Milestones
2014-07-26 06:24:27 +02:00
2021-02-11 18:32:25 +01:00
ok = OK
2014-07-26 06:24:27 +02:00
cancel = Cancel
2023-08-04 04:21:32 +02:00
retry = Retry
2023-05-09 01:59:59 +02:00
rerun = Re-run
2023-05-22 06:17:24 +02:00
rerun_all = Re-run all jobs
2020-06-11 23:06:20 +02:00
save = Save
2019-11-09 01:39:37 +01:00
add = Add
2024-06-11 19:42:33 +02:00
add_all = Add all
2019-11-09 01:39:37 +01:00
remove = Remove
2024-06-11 19:42:33 +02:00
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 03:52:01 +01:00
remove_label_str = Remove item "%s"
2021-06-25 16:28:55 +02:00
edit = Edit
2023-10-22 14:34:16 +02:00
view = View
2024-06-17 21:22:39 +02:00
test = Test
2014-07-26 06:24:27 +02:00
2022-11-20 15:08:38 +01:00
enabled = Enabled
disabled = Disabled
2023-08-09 14:24:07 +02:00
locked = Locked
2022-11-20 15:08:38 +01:00
2021-11-16 09:16:05 +01:00
copy = Copy
2024-04-17 19:32:18 +02:00
copy_generic = Copy to clipboard
2021-11-16 09:16:05 +01:00
copy_url = Copy URL
2023-10-02 06:04:32 +02:00
copy_hash = Copy hash
2022-11-04 20:33:50 +01:00
copy_content = Copy content
2021-11-16 09:16:05 +01:00
copy_branch = Copy branch name
copy_success = Copied!
copy_error = Copy failed
2023-01-08 19:25:28 +01:00
copy_type_unsupported = This file type cannot be copied
2021-11-16 09:16:05 +01:00
2018-08-06 06:43:22 +02:00
write = Write
preview = Preview
loading = Loading…
2021-06-14 19:20:43 +02:00
error = Error
2020-02-10 20:23:35 +01: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 09:42:39 +02:00
go_back = Go Back
2024-03-21 16:07:35 +01:00
invalid_data = Invalid data: %v
2020-02-10 20:23:35 +01:00
2021-06-14 19:20:43 +02:00
never = Never
2023-04-27 10:44:38 +02:00
unknown = Unknown
2021-06-14 19:20:43 +02:00
2024-06-11 19:42:33 +02:00
rss_feed = RSS feed
2022-04-24 22:03:39 +02:00
2023-05-25 15:17:19 +02:00
pin = Pin
unpin = Unpin
2023-05-19 15:37:57 +02:00
artifacts = Artifacts
2024-02-27 14:39:59 +01:00
confirm_delete_artifact = Are you sure you want to delete the artifact "%s" ?
2023-05-19 15:37:57 +02:00
2023-09-18 06:54:05 +02:00
archived = Archived
2023-05-12 10:43:27 +02:00
concept_system_global = Global
concept_user_individual = Individual
concept_code_repository = Repository
concept_user_organization = Organization
2023-05-30 22:38:55 +02:00
show_timestamps = Show timestamps
show_log_seconds = Show seconds
show_full_screen = Show full screen
2023-06-29 04:58:56 +02:00
download_logs = Download logs
2023-05-30 22:38:55 +02:00
2023-06-19 09:46:50 +02:00
confirm_delete_selected = Confirm to delete all selected items?
2023-06-21 00:54:15 +02:00
name = Name
value = Value
2024-03-03 11:18:34 +01:00
filter = Filter
2024-03-30 16:54:04 +01:00
filter.clear = Clear filters
2024-03-03 11:18:34 +01:00
filter.is_archived = Archived
2024-03-30 16:54:04 +01:00
filter.not_archived = Not archived
2024-05-02 20:09:45 +02:00
filter.is_fork = Forks
filter.not_fork = Not forks
filter.is_mirror = Mirrors
filter.not_mirror = Not mirrors
filter.is_template = Templates
filter.not_template = Not templates
2024-03-03 11:18:34 +01:00
filter.public = Public
filter.private = Private
2024-03-15 00:24:59 +01:00
[search]
search = Search...
type_tooltip = Search type
fuzzy = Fuzzy
fuzzy_tooltip = Include results that also match the search term closely
2024-06-17 20:58:24 +02:00
exact = Exact
exact_tooltip = Include only results that match the exact search term
2024-03-15 00:24:59 +01: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-04-06 20:06:39 +02:00
code_search_by_git_grep = Current code search results are provided by "git grep". There might be better results if site administrator enables code indexer.
2024-03-15 00:24:59 +01:00
package_kind = Search packages...
project_kind = Search projects...
branch_kind = Search branches...
commit_kind = Search commits...
runner_kind = Search runners...
no_results = No matching results found.
2024-06-17 20:58:24 +02:00
issue_kind = Search issues...
pull_kind = Search pulls...
2024-03-15 00:24:59 +01:00
keyword_search_unavailable = Searching by keyword is currently not available. Please contact the site administrator.
2023-01-29 02:29:10 +01:00
[aria]
2024-06-11 19:42:33 +02:00
navbar = Navigation bar
2023-01-29 02:29:10 +01:00
footer = Footer
2024-06-11 19:42:33 +02:00
footer.software = About this software
2023-01-29 02:29:10 +01:00
footer.links = Links
2023-04-17 20:26:01 +02:00
[heatmap]
number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
2024-03-19 10:37:03 +01:00
contributions_zero = No contributions
contributions_format = {contributions} on {month} {day}, {year}
contributions_one = contribution
contributions_few = contributions
2023-04-17 20:26:01 +02:00
less = Less
more = More
2023-04-11 09:26:18 +02: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
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-13 21:05:06 +02:00
buttons.enable_monospace_font = Enable monospace font
buttons.disable_monospace_font = Disable monospace font
2024-06-30 15:03:32 +02:00
buttons.indent.tooltip = Nest items by one level
buttons.unindent.tooltip = Unnest items by one level
2023-04-11 09:26:18 +02:00
2022-10-23 03:18:15 +02:00
[filter]
string.asc = A - Z
string.desc = Z - A
2020-04-28 01:03:15 +02:00
[error]
2021-12-28 14:28:27 +01:00
occurred = An error occurred
2024-01-21 18:25:58 +01:00
report_message = If you believe that this is a Forgejo bug, please search for issues on <a href="https://codeberg.org/forgejo/forgejo/issues" target="_blank">Codeberg</a> or open a new issue if necessary.
2021-07-08 15:57:24 +02:00
missing_csrf = Bad Request: no CSRF token present
2021-12-28 14:28:27 +01:00
invalid_csrf = Bad Request: invalid CSRF token
not_found = The target couldn't be found.
network_error = Network error
2024-03-30 16:54:04 +01:00
server_internal = Internal server error
2020-04-28 01:03:15 +02:00
2019-10-20 11:06:53 +02:00
[startpage]
app_desc = A painless, self-hosted Git service
install = Easy to install
2024-01-21 18:25:58 +01:00
install_desc = Simply <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#installation-from-binary">run the binary</a> for your platform, ship it with <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#container-image">Docker</a>, or get it <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">packaged</a>.
2019-10-20 11:06:53 +02:00
platform = Cross-platform
2024-01-21 18:25:58 +01:00
platform_desc = Forgejo runs anywhere <a target="_blank" rel="noopener noreferrer" href="https://go.dev/">Go</a> can compile for: Windows, macOS, Linux, ARM, etc. Choose the one you love!
2019-10-20 11:06:53 +02:00
lightweight = Lightweight
2024-01-21 18:25:58 +01:00
lightweight_desc = Forgejo has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!
2019-10-20 11:06:53 +02:00
license = Open Source
2024-01-21 18:25:58 +01:00
license_desc = Go get <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">Forgejo</a>! Join us by <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/forgejo/forgejo">contributing</a> to make this project even better. Don't be shy to be a contributor!
2019-10-20 11:06:53 +02:00
2014-09-08 01:02:58 +02:00
[install]
install = Installation
2024-03-10 15:10:29 +01:00
title = Initial configuration
2024-01-21 18:25:58 +01:00
docker_helper = If you run Forgejo inside Docker, please read the <a target="_blank" rel="noopener noreferrer" href="%s">documentation</a> before changing any settings.
2024-04-04 18:02:24 +02:00
require_db_desc = Forgejo requires MySQL, PostgreSQL, SQLite3 or TiDB (MySQL protocol).
2024-03-10 15:10:29 +01:00
db_title = Database settings
db_type = Database type
2014-09-08 01:02:58 +02:00
host = Host
2018-04-19 16:24:31 +02:00
user = Username
2014-09-08 01:02:58 +02:00
password = Password
2024-03-10 15:10:29 +01:00
db_name = Database name
2020-01-20 16:45:14 +01:00
db_schema = Schema
db_schema_helper = Leave blank for database default ("public").
2018-04-19 16:24:31 +02:00
ssl_mode = SSL
2014-09-08 01:02:58 +02:00
path = Path
2024-01-21 18:25:58 +01:00
sqlite_helper = File path for the SQLite3 database.<br>Enter an absolute path if you run Forgejo as a service.
reinstall_error = You are trying to install into an existing Forgejo database
reinstall_confirm_message = Re-installing with an existing Forgejo database can cause multiple problems. In most cases, you should use your existing "app.ini" to run Forgejo. If you know what you are doing, confirm the following:
2021-12-01 08:50:01 +01:00
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.
2024-01-21 18:25:58 +01:00
reinstall_confirm_check_3 = You confirm that you are absolutely sure that this Forgejo 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 16:42:40 +02:00
err_empty_db_path = The SQLite3 database path cannot be empty.
2018-04-19 16:24:31 +02: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 08:18:40 +02: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 10:53:30 +01:00
err_admin_name_pattern_not_allowed = Administrator username is invalid, the username matches a reserved pattern
2019-05-28 08:18:40 +02:00
err_admin_name_is_invalid = Administrator Username is invalid
2018-04-19 16:24:31 +02:00
2024-03-10 15:10:29 +01:00
general_title = General settings
2024-03-17 17:04:11 +01:00
app_name = Instance title
2024-06-18 11:49:56 +02:00
app_name_helper = Enter your instance name here. It will be displayed on every page.
2024-06-07 19:12:48 +02:00
app_slogan = Instance slogan
app_slogan_helper = Enter your instance slogan here. Leave empty to disable.
2024-03-10 15:10:29 +01:00
repo_path = Repository root path
2018-04-19 16:24:31 +02:00
repo_path_helper = Remote Git repositories will be saved to this directory.
2024-03-10 15:10:29 +01:00
lfs_path = Git LFS root path
2018-04-19 16:24:31 +02:00
lfs_path_helper = Files tracked by Git LFS will be stored in this directory. Leave empty to disable.
2024-03-10 15:10:29 +01:00
run_user = User to run as
2024-01-21 18:25:58 +01:00
run_user_helper = The operating system username that Forgejo runs as. Note that this user must have access to the repository root path.
2024-03-10 15:10:29 +01:00
domain = Server domain
2021-11-05 20:23:55 +01:00
domain_helper = Domain or host address for the server.
2024-03-10 15:10:29 +01:00
ssh_port = SSH server port
ssh_port_helper = Port number that will be used by the SSH server. Leave empty to disable SSH server.
http_port = HTTP listen port
http_port_helper = Port number that will be used by the Forgejo web server.
app_url = Base URL
2018-04-19 16:24:31 +02:00
app_url_helper = Base address for HTTP(S) clone URLs and email notifications.
2024-03-10 15:10:29 +01:00
log_root_path = Log path
2018-04-19 16:24:31 +02:00
log_root_path_helper = Log files will be written to this directory.
2015-07-08 13:47:56 +02:00
2024-03-10 15:10:29 +01:00
optional_title = Optional settings
email_title = Email settings
smtp_addr = SMTP host
smtp_port = SMTP port
smtp_from = Send email as
2024-02-24 00:02:14 +01:00
smtp_from_invalid = The "Send Email As" address is invalid
2024-01-21 18:25:58 +01:00
smtp_from_helper = Email address Forgejo will use. Enter a plain email address or use the "Name" <email@example.com> format.
2024-03-10 15:10:29 +01:00
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
2024-06-02 15:06:56 +02:00
offline_mode.description = Disable third-party content delivery networks and serve all resources locally.
2018-04-19 16:24:31 +02:00
disable_gravatar = Disable Gravatar
2024-06-02 15:06:56 +02:00
disable_gravatar.description = Disable usage of Gravatar or other third-party avatar sources. Default images will be used for user avatars unless they upload their own avatar to the instance.
2024-03-10 15:10:29 +01:00
federated_avatar_lookup = Enable federated avatars
2024-06-02 15:06:56 +02:00
federated_avatar_lookup.description = Look up avatars using Libravatar.
2024-03-10 15:10:29 +01:00
disable_registration = Disable self-registration
2024-06-02 15:06:56 +02:00
disable_registration.description = Only instance administrators will be able to create new user accounts. It is highly recommended to keep registration disabled unless you intend to host a public instance for everyone and ready to deal with large amounts of spam accounts.
allow_only_external_registration = Allow registration only via external services
allow_only_external_registration.description = Users will only be able to create new accounts by using configured external services.
2024-03-10 15:10:29 +01:00
openid_signin = Enable OpenID sign-in
2024-06-02 15:06:56 +02:00
openid_signin.description = Allow users to sign in via OpenID.
2024-03-10 15:10:29 +01:00
openid_signup = Enable OpenID self-registration
2024-06-02 15:06:56 +02:00
openid_signup.description = Allow users to create accounts via OpenID if self-registration is enabled.
2020-05-29 10:36:51 +02:00
enable_captcha = Enable registration CAPTCHA
2024-06-02 15:06:56 +02:00
enable_captcha.description = Require users to pass CAPTCHA in order to create accounts.
2024-03-10 15:10:29 +01:00
require_sign_in_view = Require to sign-in to view instance content
2024-06-02 15:06:56 +02:00
require_sign_in_view.description = Limit content access to signed-in users. Guests will only be able to visit the authentication pages.
default_keep_email_private = Hide email addresses by default
default_keep_email_private.description = Enable email address hiding for new users by default so that this information is not leaked immediately after signing up.
default_allow_create_organization = Allow creation of organizations by default
default_allow_create_organization.description = Allow new users to create organizations by default. When this option is disabled, an admin will have to grant a permission for creating organizations to new users.
default_enable_timetracking = Enable time tracking by default
default_enable_timetracking.description = Allow usage of time tracking feature for new repositories by default.
2024-03-10 15:10:29 +01:00
admin_title = Administrator account settings
2024-06-02 15:06:56 +02:00
admin_setting.description = Creating an administrator account is optional. The first registered user will automatically become an administrator.
2024-03-10 15:10:29 +01:00
admin_name = Administrator username
2014-09-08 01:02:58 +02:00
admin_password = Password
2024-03-10 15:10:29 +01:00
confirm_password = Confirm password
admin_email = Email address
config_location_hint = These configuration options will be saved in:
2024-01-21 18:25:58 +01:00
install_btn_confirm = Install Forgejo
2024-02-27 14:39:59 +01:00
test_git_failed = Could not test "git" command: %v
sqlite3_not_available = This Forgejo version does not support SQLite3. Please download the official binary version from %s (not the "gobuild" version).
2018-04-19 16:24:31 +02:00
invalid_db_setting = The database settings are invalid: %v
2023-04-18 00:04:26 +02:00
invalid_db_table = The database table "%s" is invalid: %v
2018-04-19 16:24:31 +02:00
invalid_repo_path = The repository root path is invalid: %v
2021-12-01 08:50:01 +01:00
invalid_app_data_path = The app data path is invalid: %v
2024-03-17 17:04:11 +01:00
run_user_not_match = The "user to run as" username is not the current username: %s -> %s
2021-12-01 08:50:01 +01:00
internal_token_failed = Failed to generate internal token: %v
secret_key_failed = Failed to generate secret key: %v
2017-05-18 03:03:43 +02:00
save_config_failed = Failed to save configuration: %v
2024-03-10 15:10:29 +01:00
enable_update_checker_helper_forgejo = It will periodically check for new Forgejo versions by checking a TXT DNS record at release.forgejo.org.
2018-04-19 16:24:31 +02:00
invalid_admin_setting = Administrator account setting is invalid: %v
invalid_log_root_path = The log path is invalid: %v
2024-01-21 18:25:58 +01:00
allow_dots_in_usernames = Allow users to use dots in their usernames. Doesn't affect existing accounts.
2024-03-10 15:10:29 +01:00
no_reply_address = Hidden email domain
2024-02-27 14:39:59 +01:00
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".
2024-03-10 15:10:29 +01:00
password_algorithm = Password hash algorithm
2023-03-04 03:12:02 +01:00
invalid_password_algorithm = Invalid password hash algorithm
2023-03-23 18:27:03 +01: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.
2024-03-10 15:10:29 +01:00
enable_update_checker = Enable update checker
2023-07-10 00:43:37 +02:00
env_config_keys = Environment Configuration
env_config_keys_prompt = The following environment variables will also be applied to your configuration file:
2014-09-08 01:02:58 +02:00
2014-07-26 06:24:27 +02:00
[home]
2024-05-26 13:06:28 +02:00
uname_holder = Username or email address
2014-07-26 06:24:27 +02:00
password_holder = Password
2024-05-26 13:06:28 +02:00
switch_dashboard_context = Switch dashboard context
2018-05-21 22:07:34 +02:00
my_repos = Repositories
2024-03-07 15:01:11 +01:00
my_orgs = Organizations
2018-02-16 15:02:40 +01:00
show_more_repos = Show more repositories…
2024-05-26 13:06:28 +02:00
collaborative_repos = Collaborative repositories
2015-08-25 18:01:06 +02:00
view_home = View %s
2024-05-26 13:06:28 +02:00
filter = Other filters
2020-12-27 20:58:03 +01:00
filter_by_team_repositories = Filter by team repositories
2021-10-16 16:21:16 +02:00
feed_of = Feed of "%s"
2020-05-16 22:07:01 +02: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 06:24:27 +02:00
2015-08-25 16:58:34 +02:00
issues.in_your_repos = In your repositories
2014-09-05 23:28:09 +02:00
[explore]
repos = Repositories
2016-03-11 21:33:12 +01:00
users = Users
2024-03-11 17:58:51 +01:00
stars_one = %d star
stars_few = %d stars
forks_one = %d fork
forks_few = %d forks
2016-09-01 15:08:05 +02:00
organizations = Organizations
2023-05-07 17:44:16 +02:00
go_to = Go to
2018-03-16 15:04:33 +01:00
code = Code
2020-02-20 20:53:55 +01:00
code_last_indexed_at = Last indexed %s
2022-08-25 20:38:41 +02: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 06:24:27 +02:00
[auth]
2024-05-26 13:06:28 +02:00
create_new_account = Register account
2017-02-07 16:30:20 +01:00
register_helper_msg = Already have an account? Sign in now!
2018-04-19 16:24:31 +02:00
social_register_helper_msg = Already have an account? Link it now!
disable_register_prompt = Registration is disabled. Please contact your site administrator.
disable_register_mail = Email confirmation for registration is disabled.
2022-03-18 10:57:07 +01:00
manual_activation_only = Contact your site administrator to complete activation.
2024-02-27 14:39:59 +01:00
remember_me = Remember this device
2023-10-14 02:56:41 +02:00
remember_me.compromised = The login token is not valid anymore which may indicate a compromised account. Please check your account for unusual activities.
2024-05-26 13:06:28 +02:00
forgot_password_title = Forgot password
2017-02-20 19:27:20 +01:00
forgot_password = Forgot password?
2018-04-19 16:24:31 +02:00
sign_up_now = Need an account? Register now.
2023-08-08 17:25:05 +02:00
sign_up_successful = Account was successfully created. Welcome!
2024-01-21 18:25:58 +01:00
confirmation_mail_sent_prompt = 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 the email is incorrect, you can log in, and request another confirmation email to be sent to a different address.
2018-09-13 14:04:25 +02:00
must_change_password = Update your password
2018-09-13 18:34:36 +02:00
allow_password_change = Require user to change password (recommended)
2019-04-18 09:23:59 +02: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.
2024-05-26 13:06:28 +02:00
active_your_account = Activate your account
2018-07-25 19:54:56 +02:00
account_activated = Account has been activated
2024-03-17 17:04:11 +01:00
prohibit_login = Signing in is prohibited
2023-08-08 17:25:05 +02:00
prohibit_login_desc = Your account is prohibited from signing in, please contact your site administrator.
2018-04-19 16:24:31 +02:00
resent_limit_prompt = You have already requested an activation email recently. Please wait 3 minutes and try again.
2015-12-02 05:21:24 +01: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-01-21 18:25:58 +01:00
change_unconfirmed_email_summary = Change the email address activation mail is sent to.
change_unconfirmed_email = If you have given the wrong email address during registration, you can change it below, and a confirmation will be sent to the new address instead.
change_unconfirmed_email_error = Unable to change the email address: %v
2015-12-02 05:21:24 +01:00
resend_mail = Click here to resend your activation email
2017-05-18 03:03:43 +02:00
email_not_associate = The email address is not associated with any account.
2024-05-26 13:06:28 +02:00
send_reset_mail = Send recovery email
reset_password = Account recovery
2018-04-19 16:24:31 +02:00
invalid_code = Your confirmation code is invalid or has expired.
2023-09-01 18:15:39 +02: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 08:59:46 +01:00
invalid_password = Your password does not match the password that was used to create the account.
2019-04-18 09:23:59 +02:00
reset_password_helper = Recover Account
2023-08-08 17:25:05 +02:00
reset_password_wrong_user = You are signed in as %s, but the account recovery link is meant for %s
2018-06-11 09:12:38 +02:00
password_too_short = Password length cannot be less than %d characters.
2024-01-21 18:25:58 +01:00
non_local_account = Non-local users cannot update their password through the Forgejo web interface.
2017-01-16 03:14:29 +01: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 16:24:31 +02:00
twofa_passcode_incorrect = Your passcode is incorrect. If you misplaced your device, use your scratch code to sign in.
2017-06-02 02:41:52 +02:00
twofa_scratch_token_incorrect = Your scratch code is incorrect.
2018-04-19 16:24:31 +02:00
login_userpass = Sign In
2024-03-13 17:03:09 +01:00
tab_signin = Sign In
tab_signup = Sign Up
tab_openid = OpenID
2024-05-26 13:06:28 +02:00
oauth_signup_tab = Register new account
oauth_signup_title = Complete new account
oauth_signup_submit = Complete account
2024-05-13 14:05:49 +02:00
oauth_signin_tab = Link to an existing account
oauth_signin_title = Sign in to authorize linked account
2024-05-26 13:06:28 +02:00
oauth_signin_submit = Link account
2022-01-07 22:02:09 +01: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.
2017-03-17 15:16:08 +01:00
openid_connect_submit = Connect
openid_connect_title = Connect to an existing account
2018-04-19 16:24:31 +02:00
openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2017-03-17 15:16:08 +01:00
openid_register_title = Create new account
2018-04-19 16:24:31 +02:00
openid_register_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2023-08-08 17:25:05 +02:00
openid_signin_desc = Enter your OpenID URI. For example: alice.openid.example.org or https://openid.example.org/alice.
2021-06-26 06:16:36 +02: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 02:00:04 +01:00
email_domain_blacklisted = You cannot register with your email address.
2019-03-08 17:42:50 +01:00
authorize_application = Authorize Application
2019-10-23 23:04:22 +02:00
authorize_redirect_notice = You will be redirected to %s if you authorize this application.
2019-03-08 17:42:50 +01:00
authorize_application_created_by = This application was created by %s.
2024-06-11 19:42:33 +02:00
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 organizations.
2019-03-08 17:42:50 +01:00
authorize_title = Authorize "%s" to access your account?
authorization_failed = Authorization failed
2023-08-08 17:25:05 +02: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 00:33:31 +01:00
sspi_auth_failed = SSPI authentication failed
2023-08-08 17:25:05 +02:00
password_pwned = The password you chose is on a <a target="_blank" rel="noopener noreferrer" href="https://haveibeenpwned.com/Passwords">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 00:06:39 +02:00
password_pwned_err = Could not complete request to HaveIBeenPwned
2024-01-15 07:51:43 +01:00
last_admin = You cannot remove the last admin. There must be at least one admin.
2014-07-26 06:24:27 +02:00
2015-09-17 07:54:12 +02:00
[mail]
2021-06-23 14:33:21 +02:00
view_it_on = View it on %s
2023-01-16 21:58:01 +01:00
reply = or reply to this email directly
2024-02-29 19:09:29 +01:00
link_not_working_do_paste = Does the link not work? Try copying and pasting it into your browser's URL bar.
2021-06-23 14:33:21 +02:00
hi_user_x = Hi <b>%s</b>,
2015-09-17 07:54:12 +02:00
activate_account = Please activate your account
2021-07-10 19:40:14 +02: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 14:33:21 +02:00
2015-12-02 05:21:24 +01:00
activate_email = Verify your email address
2021-06-23 14:33:21 +02:00
activate_email.text = Please click the following link to verify your email address within <b>%s</b>:
2024-01-21 18:25:58 +01:00
admin.new_user.subject = New user %s just signed up
2024-03-17 17:04:11 +01:00
admin.new_user.user_info = User information
2024-02-06 19:45:48 +01:00
admin.new_user.text = Please <a href="%s">click here</a> to manage this user from the admin panel.
2024-01-21 18:25:58 +01:00
register_notify = Welcome to Forgejo
2021-06-23 14:33:21 +02:00
register_notify.text_1 = this is your registration confirmation email for %s!
2024-02-29 19:09:29 +01:00
register_notify.text_2 = You can sign into your account using your username: %s
register_notify.text_3 = If someone else made this account for you, you will need to <a href="%s">set your password</a> first.
2021-06-23 14:33:21 +02:00
2019-04-18 09:23:59 +02:00
reset_password = Recover your account
2024-02-29 19:09:29 +01:00
reset_password.text = If this was you, please click the following link to recover your account within <b>%s</b>:
2021-06-23 14:33:21 +02:00
2017-03-09 14:24:57 +01:00
register_success = Registration successful
2021-06-23 14:33:21 +02:00
2021-09-30 01:20:18 +02: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 14:33:21 +02: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 15:06:09 +02:00
issue.action.push_1 = <b>@%[1]s</b> pushed %[3]d commit to %[2]s
2021-06-23 19:43:33 +02:00
issue.action.push_n = <b>@%[1]s</b> pushed %[3]d commits to %[2]s
2021-06-23 14:33:21 +02:00
issue.action.close = <b>@%[1]s</b> closed #%[2]d.
issue.action.reopen = <b>@%[1]s</b> reopened #%[2]d.
2021-06-23 19:43:33 +02:00
issue.action.merge = <b>@%[1]s</b> merged #%[2]d into %[3]s.
2021-06-23 14:33:21 +02: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-23 19:43:33 +02:00
issue.action.new = <b>@%[1]s</b> created #%[2]d.
2021-06-23 14:33:21 +02:00
issue.in_tree_path = In %s:
2015-09-17 07:54:12 +02:00
2021-04-02 12:25:13 +02:00
release.new.subject = %s in %s released
2021-06-23 14:33:21 +02: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 12:25:13 +02:00
2024-03-10 15:10:29 +01:00
repo.transfer.subject_to = %s wants to transfer repository "%s" to %s
repo.transfer.subject_to_you = %s wants to transfer repository "%s" to you
2021-04-02 12:25:13 +02:00
repo.transfer.to_you = you
2021-06-23 14:33:21 +02:00
repo.transfer.body = To accept or reject it visit %s or just ignore it.
2021-04-02 12:25:13 +02:00
2024-03-10 15:10:29 +01:00
repo.collaborator.added.subject = %s added you to %s as collaborator
repo.collaborator.added.text = You have been added as a collaborator to repository:
2021-04-02 12:25:13 +02:00
2022-10-19 14:40:28 +02: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 17:13:42 +02:00
[modal]
yes = Yes
no = No
2023-04-23 11:24:19 +02:00
confirm = Confirm
cancel = Cancel
2018-04-19 16:24:31 +02:00
modify = Update
2015-07-24 17:13:42 +02:00
2014-07-26 06:24:27 +02:00
[form]
UserName = Username
2024-04-06 20:06:39 +02:00
FullName = Full name
Description = Description
Pronouns = Pronouns
Biography = Biography
Website = Website
Location = Location
2014-08-02 19:47:33 +02:00
RepoName = Repository name
2015-12-02 05:21:24 +01:00
Email = Email address
2014-07-26 06:24:27 +02:00
Password = Password
2024-03-17 17:04:11 +01:00
Retype = Confirm password
2014-07-26 06:24:27 +02:00
SSHTitle = SSH key name
2014-08-01 06:06:19 +02:00
HttpsUrl = HTTPS URL
2014-08-10 00:40:10 +02:00
PayloadUrl = Payload URL
2014-08-16 10:21:17 +02:00
TeamName = Team name
2014-08-29 14:50:43 +02:00
AuthName = Authorization name
2015-12-02 05:21:24 +01:00
AdminEmail = Admin email
2024-04-06 20:06:39 +02:00
To = Branch name
2024-04-08 17:51:39 +02:00
AccessToken = Access token
2014-07-26 06:24:27 +02:00
2016-08-11 14:48:08 +02:00
NewBranchName = New branch name
CommitSummary = Commit summary
CommitMessage = Commit message
CommitChoice = Commit choice
TreeName = File path
Content = Content
2019-11-23 00:33:31 +01:00
SSPISeparatorReplacement = Separator
2024-05-18 07:24:39 +02:00
SSPIDefaultLanguage = Default language
2019-11-23 00:33:31 +01:00
2014-07-26 06:24:27 +02:00
require_error = ` cannot be empty.`
2024-02-27 14:39:59 +01: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.`
2018-04-19 16:24:31 +02:00
git_ref_name_error = ` must be a well-formed Git reference name.`
2017-05-11 03:03:34 +02:00
size_error = ` must be size %s.`
2014-07-26 06:24:27 +02:00
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
2015-12-02 05:21:24 +01:00
email_error = ` is not a valid email address.`
2023-04-18 00:04:26 +02:00
url_error = `"%s" is not a valid URL.`
include_error = ` must contain substring "%s".`
2019-09-09 07:48:21 +02:00
glob_pattern_error = ` glob pattern is invalid: %s.`
2021-06-25 16:28:55 +02:00
regex_pattern_error = ` regex pattern is invalid: %s.`
2024-02-27 14:39:59 +01: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.`
username_error_no_dots = ` can only contain alphanumeric chars ("0-9","a-z","A-Z"), dash ("-") and underscore ("_"). It cannot begin or end with non-alphanumeric chars, and consecutive non-alphanumeric chars are also forbidden.`
2023-02-08 07:44:42 +01:00
invalid_group_team_map_error = ` mapping is invalid: %s`
2014-07-26 06:24:27 +02:00
unknown_error = Unknown error:
2018-04-19 16:24:31 +02:00
captcha_incorrect = The CAPTCHA code is incorrect.
password_not_match = The passwords do not match.
2019-11-23 00:33:31 +01:00
lang_select_error = Select a language from the list.
2018-04-19 16:24:31 +02:00
username_been_taken = The username is already taken.
2021-01-10 13:14:02 +01:00
username_change_not_local_user = Non-local users are not allowed to change their username.
2023-05-21 17:13:47 +02:00
username_has_not_been_changed = Username has not been changed
2018-04-19 16:24:31 +02:00
repo_name_been_taken = The repository name is already used.
2021-12-14 06:08:09 +01:00
repository_force_private = Force Private is enabled: private repositories cannot be made public.
2020-09-25 06:09:23 +02: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 03:12:51 +02:00
visit_rate_limit = Remote visit addressed rate limitation.
2fa_auth_required = Remote visit required two factors authentication.
2018-04-19 16:24:31 +02: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-14 17:53:43 +01:00
email_invalid = The email address is invalid.
2023-04-18 00:04:26 +02:00
openid_been_used = The OpenID address "%s" is already used.
2018-04-19 16:24:31 +02:00
username_password_incorrect = Username or password is incorrect.
2019-11-19 23:44:58 +01: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 16:24:31 +02:00
enterred_invalid_repo_name = The repository name you entered is incorrect.
2021-03-01 15:33:05 +01:00
enterred_invalid_org_name = The organization name you entered is incorrect.
2018-04-19 16:24:31 +02:00
enterred_invalid_owner_name = The new owner name is not valid.
enterred_invalid_password = The password you entered is incorrect.
2024-03-08 05:28:21 +01: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 03:03:43 +02:00
user_not_exist = The user does not exist.
2019-09-23 22:08:03 +02:00
team_not_exist = The team does not exist.
2024-02-27 14:39:59 +01: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 16:24:31 +02:00
cannot_add_org_to_team = An organization cannot be added as a team member.
2022-10-19 14:40:28 +02:00
duplicate_invite_to_team = The user was already invited as a team member.
2022-11-30 10:00:00 +01:00
organization_leave_success = You have successfully left the organization %s.
2017-05-18 03:03:43 +02:00
2023-01-08 19:25:28 +01:00
invalid_ssh_key = Cannot verify your SSH key: %s
invalid_gpg_key = Cannot verify your GPG key: %s
2020-10-11 02:38:09 +02:00
invalid_ssh_principal = Invalid principal: %s
2023-02-02 19:25:54 +01: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.
2024-02-25 13:03:09 +01:00
unable_verify_ssh_key = Cannot verify the SSH key, double-check it for mistakes.
2014-08-01 06:06:19 +02:00
auth_failed = Authentication failed: %v
2014-07-26 06:24:27 +02:00
2024-02-25 13:03:09 +01: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 06:24:27 +02:00
2015-03-19 20:26:04 +01:00
target_branch_not_exist = Target branch does not exist.
2014-11-07 04:06:41 +01:00
2024-01-15 07:51:43 +01:00
admin_cannot_delete_self = You cannot delete yourself when you are an admin. Please remove your admin privileges first.
2024-03-13 16:49:48 +01:00
required_prefix = Input must start with "%s"
2014-09-26 01:33:39 +02:00
[user]
2018-04-19 16:24:31 +02:00
change_avatar = Change your avatar…
2023-05-06 12:10:30 +02:00
joined_on = Joined on %s
2014-09-26 01:33:39 +02:00
repositories = Repositories
2024-03-17 17:04:11 +01:00
activity = Public activity
2024-06-18 17:53:27 +02:00
followers.title.one = Follower
followers.title.few = Followers
following.title.one = Following
following.title.few = Following
2024-04-01 19:30:18 +02:00
followers_one = %d follower
followers_few = %d followers
following_one = %d following
following_few = %d following
follow = Follow
unfollow = Unfollow
2024-03-17 17:04:11 +01:00
block_user = Block user
2024-06-22 10:02:34 +02:00
block_user.detail = Please note that blocking a user has other effects, such as:
block_user.detail_1 = You will stop following each other and will not be able to follow each other.
block_user.detail_2 = This user will not be able to interact with the repositories you own, or the issues and comments you have created.
block_user.detail_3 = You will not be able to add each other as repository collaborators.
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
follow_blocked_user = You cannot follow this user because you have blocked this user or this user has blocked you.
2024-03-17 17:04:11 +01:00
starred = Starred repositories
watched = Watched repositories
2022-10-11 01:12:03 +02:00
code = Code
2020-08-17 05:07:38 +02:00
projects = Projects
2023-05-09 07:57:24 +02:00
overview = Overview
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
block = Block
unblock = Unblock
2019-03-19 03:28:10 +01:00
user_bio = Biography
2023-04-08 12:05:21 +02:00
email_visibility.limited = Your email address is visible to all authenticated users
2023-07-31 10:44:45 +02:00
show_on_map = Show this place on a map
2024-03-17 17:04:11 +01:00
settings = User settings
2014-09-26 01:33:39 +02:00
2024-06-24 10:19:11 +02:00
disabled_public_activity = This user has disabled the public visibility of the activity.
public_activity.visibility_hint.self_public = Your activity is visible to everyone, except for interactions in private spaces. <a href="%s">Configure</a>.
public_activity.visibility_hint.admin_public = This activity is visible to everyone, but as an administrator you can also see interactions in private spaces.
public_activity.visibility_hint.self_private = Your activity is only visible to you and the instance administrators. <a href="%s">Configure</a>.
public_activity.visibility_hint.admin_private = This activity is visible to you because you're an administrator, but the user wants it to remain private.
2023-04-18 00:04:26 +02:00
form.name_reserved = The username "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a username.
2024-02-06 19:45:48 +01:00
form.name_chars_not_allowed = Username "%s" contains invalid characters.
2015-03-26 22:11:47 +01:00
2014-07-26 06:24:27 +02:00
[settings]
profile = Profile
2018-05-15 12:07:32 +02:00
account = Account
2021-10-27 17:40:08 +02:00
appearance = Appearance
2014-07-26 06:24:27 +02:00
password = Password
2017-10-16 11:14:12 +02:00
security = Security
2016-08-07 19:27:38 +02:00
avatar = Avatar
2024-03-17 17:04:11 +01:00
ssh_gpg_keys = SSH / GPG keys
2024-05-13 14:05:49 +02:00
social = Social accounts
2018-05-15 12:07:32 +02:00
applications = Applications
2024-05-13 14:05:49 +02:00
orgs = Organizations
2017-09-14 13:46:14 +02:00
repos = Repositories
2014-08-14 10:51:55 +02:00
delete = Delete Account
2024-03-17 17:04:11 +01:00
twofa = Two-factor authentication (TOTP)
2024-05-13 14:05:49 +02:00
account_link = Linked accounts
2018-04-19 16:24:31 +02:00
organization = Organizations
2023-08-08 17:25:05 +02:00
uid = UID
2024-03-17 17:04:11 +01:00
webauthn = Two-factor authentication (Security keys)
blocked_users = Blocked users
2014-07-26 06:24:27 +02:00
2024-02-27 14:39:59 +01:00
public_profile = Public profile
2023-08-08 17:25:05 +02:00
biography_placeholder = Tell us a little bit about yourself! (You can use Markdown)
2023-07-31 10:44:45 +02:00
location_placeholder = Share your approximate location with others
2024-02-06 19:45:48 +01:00
profile_desc = Control how your profile is shown to other users. Your primary email address will be used for notifications, password recovery and web-based Git operations.
2018-04-19 16:24:31 +02:00
password_username_disabled = Non-local users are not allowed to change their username. Please contact your site administrator for more details.
2024-03-17 17:04:11 +01:00
full_name = Full name
2014-07-26 06:24:27 +02:00
website = Website
location = Location
2023-09-26 04:39:12 +02:00
pronouns = Pronouns
2023-09-26 07:34:09 +02:00
pronouns_custom = Custom
2023-09-26 08:21:52 +02:00
pronouns_unspecified = Unspecified
2024-03-17 17:04:11 +01:00
update_theme = Change theme
update_profile = Update profile
update_language = Change language
2023-04-18 00:04:26 +02:00
update_language_not_found = Language "%s" is not available.
2021-10-27 17:40:08 +02:00
update_language_success = Language has been updated.
2017-05-18 03:03:43 +02:00
update_profile_success = Your profile has been updated.
2018-04-19 16:24:31 +02:00
change_username = Your username has been changed.
2023-07-25 13:00:32 +02:00
change_username_prompt = Note: Changing your username also changes your account URL.
2023-07-24 06:17:32 +02:00
change_username_redirect_prompt = The old username will redirect until someone claims it.
2014-09-27 04:33:30 +02:00
continue = Continue
cancel = Cancel
2018-05-05 02:28:30 +02:00
language = Language
2024-05-13 14:05:49 +02:00
language.title = Default language
2019-01-09 18:22:57 +01:00
ui = Theme
2024-03-01 13:22:40 +01:00
hints = Hints
2024-05-08 05:58:25 +02:00
additional_repo_units_hint = Suggest to enable additional repository units
2024-03-01 13:22:40 +01:00
additional_repo_units_hint_description = Display an "Add more units..." button for repositories that do not have all available units enabled.
update_hints = Update hints
update_hints_success = Hints have been updated.
2022-01-21 18:59:26 +01:00
hidden_comment_types = Hidden comment types
2023-04-12 13:59:17 +02: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.
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-21 18:59:26 +01: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
2024-03-17 17:04:11 +01:00
comment_type_group_time_tracking = Time tracking
2022-01-21 18:59:26 +01:00
comment_type_group_deadline = Deadline
comment_type_group_dependency = Dependency
2024-03-17 17:04:11 +01:00
comment_type_group_lock = Lock status
2022-01-21 18:59:26 +01:00
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-05 22:01:53 +02:00
privacy = Privacy
2024-03-17 17:04:11 +01:00
keep_activity_private = Hide activity from profile page
keep_activity_private_popup = Your activity will only be visible to you and the instance admins
2014-11-21 18:51:36 +01:00
2024-03-17 17:04:11 +01:00
lookup_avatar_by_mail = Lookup avatar by email address
federated_avatar_lookup = Federated avatar lookup
2024-02-27 14:39:59 +01:00
enable_custom_avatar = Use custom avatar
2014-11-21 16:58:08 +01:00
choose_new_avatar = Choose new avatar
2024-03-17 17:04:11 +01:00
update_avatar = Update avatar
delete_current_avatar = Delete current avatar
2018-04-19 16:24:31 +02:00
uploaded_avatar_not_a_image = The uploaded file is not an image.
2023-09-07 15:35:45 +02:00
uploaded_avatar_is_too_big = The uploaded file size (%d KiB) exceeds the maximum size (%d KiB).
2018-04-19 16:24:31 +02:00
update_avatar_success = Your avatar has been updated.
2021-11-16 20:13:13 +01:00
update_user_avatar_success = The user's avatar has been updated.
2014-07-26 06:24:27 +02:00
2024-02-22 18:33:22 +01:00
change_password = Change password
2024-03-17 17:04:11 +01:00
update_password = Update password
2024-02-22 18:33:22 +01:00
old_password = Current password
new_password = New password
retype_new_password = Confirm new password
2018-04-19 16:24:31 +02: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.
2024-01-21 18:25:58 +01:00
password_change_disabled = Non-local users cannot update their password through the Forgejo web interface.
2014-07-26 06:24:27 +02:00
2024-02-22 18:33:22 +01:00
manage_emails = Manage email addresses
2024-05-13 14:05:49 +02:00
manage_themes = Default theme
manage_openid = OpenID addresses
2023-08-08 17:25:05 +02: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-09 18:22:57 +01:00
theme_desc = This will be your default theme across the site.
2014-12-22 08:41:29 +01:00
primary = Primary
2020-03-02 19:25:36 +01:00
activated = Activated
requires_activation = Requires activation
2024-05-18 07:24:39 +02:00
primary_email = Make primary
activate_email = Send activation
activations_pending = Activations pending
2023-06-26 06:52:49 +02: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 16:24:31 +02:00
delete_email = Remove
2024-05-18 07:24:39 +02:00
email_deletion = Remove email address
2018-04-19 16:24:31 +02:00
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-09 18:22:57 +01:00
theme_update_success = Your theme was updated.
theme_update_error = The selected theme does not exist.
2018-04-19 16:24:31 +02: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.
2024-02-22 18:33:22 +01:00
add_new_email = Add email address
2024-05-13 14:05:49 +02:00
add_new_openid = Add new OpenID URI
2024-03-17 17:04:11 +01:00
add_email = Add email address
2017-03-17 15:16:08 +01:00
add_openid = Add OpenID URI
2023-04-18 00:04:26 +02: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 16:24:31 +02:00
add_email_success = The new email address has been added.
2020-04-09 19:22:17 +02:00
email_preference_set_success = Email preference has been set successfully.
2018-04-19 16:24:31 +02:00
add_openid_success = The new OpenID address has been added.
2024-02-27 14:39:59 +01:00
keep_email_private = Hide email address
2023-10-25 13:12:36 +02: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 16:24:31 +02:00
openid_desc = OpenID lets you delegate authentication to an external provider.
2014-12-22 08:11:30 +01:00
2024-02-27 14:39:59 +01:00
manage_ssh_keys = Manage SSH keys
2020-10-11 02:38:09 +02:00
manage_ssh_principals = Manage SSH Certificate Principals
2024-02-27 14:39:59 +01:00
manage_gpg_keys = Manage GPG keys
2024-03-17 17:04:11 +01:00
add_key = Add key
2024-02-19 13:25:48 +01:00
ssh_desc = These public SSH keys are associated with your account. The corresponding private keys allow full access to your repositories. SSH keys that have been verified can be used to verify SSH-signed Git commits.
2020-10-11 02:38:09 +02:00
principal_desc = These SSH certificate principals are associated with your account and allow full access to your repositories.
2024-02-22 18:33:22 +01:00
gpg_desc = These public GPG keys are associated with your account and used to verify your commits. Keep your private keys safe as they allow to sign commits with your identity.
2024-01-21 18:25:58 +01:00
ssh_helper = <strong>Need help?</strong> Have a look at the 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 the guide <a href="%s">about GPG</a>.
2024-03-17 17:04:11 +01:00
add_new_key = Add SSH key
add_new_gpg_key = Add GPG key
2024-02-27 14:39:59 +01: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"
key_content_gpg_placeholder = Begins with "-----BEGIN PGP PUBLIC KEY BLOCK-----"
2024-05-18 07:24:39 +02:00
add_new_principal = Add principal
2019-02-04 00:56:53 +01:00
ssh_key_been_used = This SSH key has already been added to the server.
2020-10-11 02:38:09 +02: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 16:24:31 +02:00
gpg_key_id_used = A public GPG key with same ID already exists.
2021-07-13 15:28:07 +02: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 12:50:39 +02: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.
2024-03-17 17:04:11 +01:00
gpg_key_verified = Verified key
2021-07-13 15:28:07 +02:00
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_code = echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature = Armored GPG signature
2024-02-27 14:39:59 +01:00
key_signature_gpg_placeholder = Begins with "-----BEGIN PGP SIGNATURE-----"
2023-04-18 00:04:26 +02:00
verify_gpg_key_success = GPG key "%s" has been verified.
2024-03-17 17:04:11 +01:00
ssh_key_verified = Verified key
2021-12-19 06:37:18 +01:00
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
2024-02-27 14:39:59 +01:00
key_signature_ssh_placeholder = Begins with "-----BEGIN SSH SIGNATURE-----"
2023-04-18 00:04:26 +02:00
verify_ssh_key_success = SSH key "%s" has been verified.
2017-04-26 15:10:43 +02:00
subkeys = Subkeys
key_id = Key ID
2024-02-27 14:39:59 +01:00
key_name = Key name
2014-07-26 06:24:27 +02:00
key_content = Content
2020-10-11 02:38:09 +02:00
principal_content = Content
2023-04-18 00:04:26 +02: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 16:24:31 +02:00
delete_key = Remove
2024-03-17 17:04:11 +01:00
ssh_key_deletion = Remove SSH key
gpg_key_deletion = Remove GPG key
2020-10-11 02:38:09 +02:00
ssh_principal_deletion = Remove SSH Certificate Principal
2018-04-19 16:24:31 +02: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 02:38:09 +02:00
ssh_principal_deletion_desc = Removing a SSH Certificate Principal revokes its access to your account. Continue?
2018-04-19 16:24:31 +02:00
ssh_key_deletion_success = The SSH key has been removed.
gpg_key_deletion_success = The GPG key has been removed.
2020-10-11 02:38:09 +02:00
ssh_principal_deletion_success = The principal has been removed.
2023-05-06 15:11:27 +02:00
added_on = Added on %s
2023-05-06 14:37:02 +02:00
valid_until_date = Valid until %s
2017-06-24 08:37:03 +02:00
valid_forever = Valid forever
2014-07-26 06:24:27 +02:00
last_used = Last used on
no_activity = No recent activity
2018-01-06 23:55:53 +01:00
can_read_info = Read
can_write_info = Write
2017-05-18 03:03:43 +02: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 02:38:09 +02:00
principal_state_desc = This principal has been used in the last 7 days
2017-03-20 09:31:08 +01:00
show_openid = Show on profile
hide_openid = Hide from profile
2024-05-18 07:24:39 +02:00
ssh_disabled = SSH is disabled
2023-04-10 19:22:51 +02:00
ssh_signonly = SSH is currently disabled so these keys are only used for commit signature verification.
2020-12-26 05:24:47 +01:00
ssh_externally_managed = This SSH key is externally managed for this user
2014-07-26 06:24:27 +02:00
manage_social = Manage Associated Social Accounts
2023-08-08 17:25:05 +02: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 16:24:31 +02:00
unbind = Unlink
2023-08-08 17:25:05 +02:00
unbind_success = The social account has been removed successfully.
2014-08-10 02:25:02 +02:00
2024-05-13 14:05:49 +02:00
manage_access_token = Access tokens
2024-02-27 14:39:59 +01:00
generate_new_token = Generate new token
2024-01-21 18:25:58 +01:00
tokens_desc = These tokens grant access to your account using the Forgejo API.
2024-02-27 14:39:59 +01:00
token_name = Token name
2024-03-17 17:04:11 +01:00
generate_token = Generate token
2018-04-19 16:24:31 +02:00
generate_token_success = Your new token has been generated. Copy it now as it will not be shown again.
2020-04-13 21:02:48 +02:00
generate_token_name_duplicate = <strong>%s</strong> has been used as an application name already. Please use a new one.
2014-11-12 12:48:50 +01:00
delete_token = Delete
2024-03-17 17:04:11 +01:00
access_token_deletion = Delete access token
2022-06-08 02:28:10 +02: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 16:24:31 +02: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-04 20:57:16 +02: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-03-30 16:54:04 +01:00
permission_no_access = No access
2023-06-13 09:55:48 +02:00
permission_read = Read
2024-03-30 16:54:04 +01:00
permission_write = Read and write
2023-06-13 09:55:48 +02:00
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-04 20:57:16 +02:00
at_least_one_permission = You must select at least one permission to create a token
permissions_list = Permissions:
2014-11-12 12:48:50 +01:00
2024-02-27 14:39:59 +01:00
manage_oauth2_applications = Manage OAuth2 applications
2019-03-08 17:42:50 +01:00
edit_oauth2_application = Edit OAuth2 Application
2024-01-21 18:25:58 +01:00
oauth2_applications_desc = OAuth2 applications enables your third-party application to securely authenticate users at this Forgejo instance.
2019-03-08 17:42:50 +01:00
remove_oauth2_application = Remove OAuth2 Application
2019-06-05 16:16:06 +02:00
remove_oauth2_application_desc = Removing an OAuth2 application will revoke access to all signed access tokens. Continue?
2019-03-08 17:42:50 +01:00
remove_oauth2_application_success = The application has been deleted.
2024-02-27 14:39:59 +01:00
create_oauth2_application = Create a new OAuth2 application
2024-03-17 17:04:11 +01:00
create_oauth2_application_button = Create application
2023-08-08 17:25:05 +02:00
create_oauth2_application_success = You have successfully created a new OAuth2 application.
update_oauth2_application_success = You have successfully updated the OAuth2 application.
2024-02-27 14:39:59 +01:00
oauth2_application_name = Application name
2024-03-17 17:04:11 +01: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.
2023-06-05 09:00:12 +02:00
oauth2_redirect_uris = Redirect URIs. Please use a new line for every URI.
2019-03-08 17:42:50 +01:00
save_application = Save
oauth2_client_id = Client ID
2024-03-30 16:54:04 +01:00
oauth2_client_secret = Client secret
oauth2_regenerate_secret = Regenerate secret
2019-03-08 17:42:50 +01:00
oauth2_regenerate_secret_hint = Lost your secret?
2023-08-08 17:25:05 +02: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-08 17:42:50 +01: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 17:25:05 +02:00
oauth2_application_remove_description = Removing an OAuth2 application will prevent it from accessing authorized user accounts on this instance. Continue?
2024-01-21 18:25:58 +01:00
oauth2_application_locked = Forgejo 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-08 17:42:50 +01:00
2024-02-27 14:39:59 +01:00
authorized_oauth2_applications = Authorized OAuth2 applications
2024-02-22 18:33:22 +01:00
authorized_oauth2_applications_description = You have granted access to your personal Forgejo account to these third party applications. Please revoke access for applications that are no longer in use.
2019-04-17 10:18:16 +02:00
revoke_key = Revoke
2024-03-30 16:54:04 +01:00
revoke_oauth2_grant = Revoke access
2019-04-17 10:18:16 +02:00
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 17:25:05 +02:00
revoke_oauth2_grant_success = Access revoked successfully.
2019-04-17 10:18:16 +02:00
2023-12-07 23:38:55 +01: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 03:03:43 +02:00
twofa_is_enrolled = Your account is currently <strong>enrolled</strong> in two-factor authentication.
2017-03-09 14:24:57 +01:00
twofa_not_enrolled = Your account is not currently enrolled in two-factor authentication.
2024-03-17 17:04:11 +01:00
twofa_disable = Disable two-factor authentication
twofa_scratch_token_regenerate = Regenerate single-use recovery key
2023-12-07 23:38:55 +01:00
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.
2024-03-17 17:04:11 +01:00
twofa_enroll = Enroll into two-factor authentication
2018-04-19 16:24:31 +02:00
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-07 23:38:55 +01: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 03:14:29 +01: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 16:24:31 +02:00
then_enter_passcode = And enter the passcode shown in the application:
passcode_invalid = The passcode is incorrect. Try again.
2023-12-07 23:38:55 +01: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-18 21:38:41 +01:00
twofa_failed_get_secret = Failed to get secret.
2017-01-16 03:14:29 +01:00
2022-01-15 17:52:56 +01: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="https://w3c.github.io/webauthn/#webauthn-authenticator">WebAuthn Authenticator</a> standard.
2024-03-17 17:04:11 +01:00
webauthn_register_key = Add security key
2022-01-14 16:03:31 +01:00
webauthn_nickname = Nickname
2024-03-17 17:04:11 +01:00
webauthn_delete_key = Remove security key
2022-01-14 16:03:31 +01:00
webauthn_delete_key_desc = If you remove a security key you can no longer sign in with it. Continue?
2023-12-07 23:38:55 +01: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 16:12:37 +02:00
2024-05-13 14:05:49 +02:00
manage_account_links = Linked accounts
2024-01-21 18:25:58 +01:00
manage_account_links_desc = These external accounts are linked to your Forgejo account.
account_links_not_available = There are currently no external accounts linked to your Forgejo account.
2024-05-13 14:05:49 +02:00
link_account = Link account
remove_account_link = Remove linked account
2024-01-21 18:25:58 +01:00
remove_account_link_desc = Removing a linked account will revoke its access to your Forgejo account. Continue?
2018-04-19 16:24:31 +02:00
remove_account_link_success = The linked account has been removed.
2017-02-22 08:14:37 +01:00
2023-08-08 17:25:05 +02:00
hooks.desc = Add webhooks which will be triggered for <strong>all repositories</strong> that you own.
2023-03-10 15:28:32 +01:00
2017-06-02 10:43:44 +02:00
orgs_none = You are not a member of any organizations.
2023-08-08 17:25:05 +02:00
repos_none = You do not own any repositories.
2024-02-22 18:33:22 +01:00
blocked_users_none = There are no blocked users.
2017-06-02 10:43:44 +02:00
2024-03-17 17:04:11 +01:00
delete_account = Delete your account
2023-01-08 19:25:28 +01:00
delete_prompt = This operation will permanently delete your user account. It <strong>CANNOT</strong> be undone.
2021-01-22 03:56:19 +01:00
delete_with_all_comments = Your account is younger than %s. To avoid ghost comments, all issue/PR comments will be deleted with it.
2024-03-17 17:04:11 +01:00
confirm_delete_account = Confirm deletion
delete_account_title = Delete user account
2018-04-19 16:24:31 +02:00
delete_account_desc = Are you sure you want to permanently delete this user account?
2014-07-26 06:24:27 +02:00
2024-03-17 17:04:11 +01: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
email_notifications.andyourown = And your own notifications
2019-08-29 16:05:42 +02:00
2021-06-26 21:53:14 +02:00
visibility = User visibility
visibility.public = Public
2023-04-08 12:05:21 +02:00
visibility.public_tooltip = Visible to everyone
2021-06-26 21:53:14 +02:00
visibility.limited = Limited
2023-08-08 17:25:05 +02:00
visibility.limited_tooltip = Visible only to authenticated users
2021-06-26 21:53:14 +02:00
visibility.private = Private
2023-08-08 17:25:05 +02:00
visibility.private_tooltip = Visible only to members of organizations you have joined
2021-06-26 21:53:14 +02:00
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
blocked_since = Blocked since %s
user_unblock_success = The user has been unblocked successfully.
user_block_success = The user has been blocked successfully.
2014-07-26 06:24:27 +02:00
[repo]
2024-01-21 18:25:58 +01:00
rss.must_be_on_branch = You must be on a branch to have an RSS feed.
admin.manage_flags = Manage flags
admin.enabled_flags = Flags enabled for the repository:
admin.update_flags = Update flags
admin.failed_to_replace_flags = Failed to replace repository flags
admin.flags_replaced = Repository flags replaced
2023-10-22 13:59:31 +02: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 06:24:27 +02:00
owner = Owner
2020-12-21 14:12:13 +01:00
owner_helper = Some organizations may not show up in the dropdown due to a maximum repository count limit.
2024-02-27 14:39:59 +01:00
repo_name = Repository name
2018-04-19 16:24:31 +02:00
repo_name_helper = Good repository names use short, memorable and unique keywords.
2019-11-15 00:52:18 +01:00
repo_size = Repository Size
2024-04-02 15:43:12 +02:00
size_format = %[1]s: %[2]s, %[3]s: %[4]s
2019-11-11 16:15:29 +01: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 06:24:27 +02:00
visibility = Visibility
2019-09-05 11:13:51 +02:00
visibility_description = Only the owner or the organization members if they have rights, will be able to see it.
2023-08-08 17:25:05 +02:00
visibility_helper = Make repository private
2018-07-04 13:43:21 +02:00
visibility_helper_forced = Your site administrator forces new repositories to be private.
2024-03-17 17:04:11 +01:00
visibility_fork_helper = (Changing this will affect visibility of all forks.)
2018-07-04 01:52:36 +02:00
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener noreferrer" href="%s">Help</a>.
2024-03-17 17:04:11 +01:00
fork_repo = Fork repository
fork_from = Fork from
2021-12-13 02:59:09 +01:00
already_forked = You've already forked %s
fork_to_different_account = Fork to a different account
2018-07-04 13:43:21 +02:00
fork_visibility_helper = The visibility of a forked repository cannot be changed.
2023-09-29 03:48:39 +02:00
fork_branch = Branch to be cloned to the fork
all_branches = All branches
2023-07-14 09:56:20 +02:00
fork_no_valid_owners = This repository can not be forked because there are no valid owners.
2019-11-11 16:15:29 +01:00
use_template = Use this template
2024-02-24 14:12:17 +01:00
open_with_editor = Open with %s
2021-08-12 14:21:34 +02:00
download_zip = Download ZIP
download_tar = Download TAR.GZ
2021-08-24 18:47:09 +02:00
download_bundle = Download BUNDLE
2024-03-17 17:04:11 +01:00
generate_repo = Generate repository
generate_from = Generate from
2014-07-26 06:24:27 +02:00
repo_desc = Description
2021-02-21 10:59:31 +01:00
repo_desc_helper = Enter short description (optional)
2014-07-26 06:24:27 +02:00
repo_lang = Language
2018-04-19 16:24:31 +02:00
repo_gitignore_helper = Select .gitignore templates.
2021-02-21 10:59:31 +01: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.
2024-03-17 17:04:11 +01:00
issue_labels = Issue labels
2019-09-08 10:28:40 +02:00
issue_labels_helper = Select an issue label set.
2014-07-26 06:24:27 +02:00
license = License
2018-04-19 16:24:31 +02:00
license_helper = Select a license file.
2021-02-21 10:59:31 +01: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-03-17 17:04:11 +01:00
object_format = Object format
2024-07-12 15:09:13 +02:00
object_format_helper = Object format of the repository. Cannot be changed later. SHA1 is the most compatible.
2018-04-19 16:24:31 +02:00
readme = README
readme_helper = Select a README file template.
2021-02-21 10:59:31 +01:00
readme_helper_desc = This is the place where you can write a complete description for your project.
2024-03-17 17:04:11 +01:00
auto_init = Initialize repository (Adds .gitignore, License and README)
create_repo = Create repository
default_branch = Default branch
2023-08-29 14:15:19 +02:00
default_branch_label = default
2021-02-21 10:59:31 +01:00
default_branch_helper = The default branch is the base branch for pull requests and code commits.
2016-07-09 07:42:05 +02:00
mirror_prune = Prune
2018-04-19 16:24:31 +02:00
mirror_prune_desc = Remove obsolete remote-tracking references
2024-03-17 17:04:11 +01:00
mirror_interval = Mirror interval (valid time units are "h", "m", "s"). 0 to disable periodic sync. (Minimum interval: %s)
2018-04-19 16:24:31 +02:00
mirror_interval_invalid = The mirror interval is not valid.
2024-01-18 11:27:07 +01:00
mirror_sync = synced
2022-07-08 21:45:12 +02:00
mirror_sync_on_commit = Sync when commits are pushed
2024-03-17 17:04:11 +01:00
mirror_address = Clone from URL
2021-06-14 19:20:43 +02:00
mirror_address_desc = Put any required credentials in the Authorization section.
2024-02-06 19:45:48 +01:00
mirror_address_url_invalid = The provided URL is invalid. You must escape all components of the URL correctly.
2023-08-08 17:25:05 +02:00
mirror_address_protocol_invalid = The provided URL is invalid. Only http(s):// or git:// locations can be used for mirroring.
2021-04-09 17:00:32 +02:00
mirror_lfs = Large File Storage (LFS)
2021-04-09 00:25:57 +02:00
mirror_lfs_desc = Activate mirroring of LFS data.
2024-03-17 17:04:11 +01:00
mirror_lfs_endpoint = LFS endpoint
2021-04-09 00:25:57 +02:00
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.
2024-03-17 17:04:11 +01:00
mirror_last_synced = Last synchronized
2021-05-31 12:46:20 +02:00
mirror_password_placeholder = (Unchanged)
mirror_password_blank_placeholder = (Unset)
mirror_password_help = Change the username to erase a stored password.
2015-11-17 05:28:46 +01:00
watchers = Watchers
stargazers = Stargazers
2023-06-05 15:25:43 +02:00
stars_remove_warning = This will remove all stars from this repository.
2015-11-17 05:28:46 +01:00
forks = Forks
2024-03-21 18:04:03 +01:00
stars = Stars
2017-12-04 00:14:26 +01:00
reactions_more = and %d more
2020-01-17 08:34:37 +01:00
unit_disabled = The site administrator has disabled this repository section.
2020-02-11 10:34:17 +01:00
language_other = Other
2020-09-25 06:09:23 +02:00
adopt_search = Enter username to search for unadopted repositories... (leave blank to find all)
2024-03-17 17:04:11 +01:00
adopt_preexisting_label = Adopt files
2020-09-25 06:09:23 +02:00
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 01:13:20 +02:00
blame_prior = View blame prior to this change
2023-09-16 19:42:34 +02: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 02:11:02 +02:00
author_search_tooltip = Shows a maximum of 30 users
2014-07-26 06:24:27 +02:00
2023-09-29 09:42:39 +02: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
2024-03-17 17:04:11 +01:00
transfer.accept = Accept transfer
2023-10-22 13:59:31 +02:00
transfer.accept_desc = Transfer to "%s"
2024-03-17 17:04:11 +01:00
transfer.reject = Reject transfer
2023-10-22 13:59:31 +02:00
transfer.reject_desc = Cancel transfer to "%s"
2023-08-08 17:25:05 +02: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 01:47:30 +01:00
2020-06-22 22:20:51 +02:00
desc.private = Private
desc.public = Public
2023-10-16 23:06:15 +02:00
desc.template = Template
2020-06-22 22:20:51 +02:00
desc.internal = Internal
desc.archived = Archived
2024-01-19 17:05:02 +01:00
desc.sha256 = SHA256
2020-06-22 22:20:51 +02:00
2024-03-17 17:04:11 +01:00
template.items = Template items
template.git_content = Git content (Default branch)
template.git_hooks = Git hooks
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-24 18:57:52 +01:00
template.webhooks = Webhooks
2019-11-11 16:15:29 +01:00
template.topics = Topics
2019-11-25 06:17:51 +01:00
template.avatar = Avatar
2024-03-17 17:04:11 +01:00
template.issue_labels = Issue labels
2019-11-11 16:15:29 +01:00
template.one_item = Must select at least one template item
template.invalid = Must select a template repository
2023-08-08 17:25:05 +02: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-23 19:58:38 +01: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 10:19:12 +01: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 00:04:26 +02: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.
2024-05-24 13:28:15 +02:00
form.string_too_long = The given string is longer than %d characters.
2015-03-26 22:11:47 +01:00
2021-06-14 19:20:43 +02:00
need_auth = Authorization
2024-02-27 14:39:59 +01:00
migrate_options = Migration options
2022-07-12 11:04:15 +02:00
migrate_options_mirror_helper = This repository will be a mirror
2021-04-09 00:25:57 +02:00
migrate_options_lfs = Migrate LFS files
2024-03-17 17:04:11 +01:00
migrate_options_lfs_endpoint.label = LFS endpoint
2021-04-09 00:25:57 +02:00
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 17:25:05 +02:00
migrate_options_lfs_endpoint.placeholder = If left blank, the endpoint will be derived from the clone URL
2024-02-27 14:39:59 +01:00
migrate_items = Migration items
2019-05-07 03:12:51 +02:00
migrate_items_wiki = Wiki
migrate_items_milestones = Milestones
migrate_items_labels = Labels
migrate_items_issues = Issues
2024-03-17 17:04:11 +01:00
migrate_items_pullrequests = Pull requests
migrate_items_merge_requests = Merge requests
2019-05-07 03:12:51 +02:00
migrate_items_releases = Releases
2024-03-17 17:04:11 +01:00
migrate_repo = Migrate repository
2024-02-27 14:39:59 +01: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 04:56:57 +01: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 16:24:31 +02:00
migrate.clone_local_path = or a local server path
2015-11-04 00:40:52 +01:00
migrate.permission_denied = You are not allowed to import local repositories.
2023-01-08 19:25:28 +01:00
migrate.permission_denied_blocked = You cannot import from disallowed hosts, please ask the admin to check ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS settings.
2024-02-25 13:03:09 +01:00
migrate.invalid_local_path = The local path is invalid. It doesn't exist or is not a directory.
2021-04-09 00:25:57 +02:00
migrate.invalid_lfs_endpoint = The LFS endpoint is not valid.
2015-11-19 19:45:07 +01:00
migrate.failed = Migration failed: %v
2024-03-17 17:04:11 +01:00
migrate.migrate_items_options = Access token is required to migrate additional items
2019-07-08 04:14:12 +02:00
migrated_from = Migrated from <a href="%[1]s">%[2]s</a>
2024-03-17 17:04:11 +01:00
migrated_from_fake = Migrated from %[1]s
migrate.migrate = Migrate from %s
2019-10-13 15:23:14 +02:00
migrate.migrating = Migrating from <b>%s</b> ...
migrate.migrating_failed = Migrating from <b>%s</b> failed.
2023-05-11 10:25:46 +02:00
migrate.migrating_failed.error = Failed to migrate: %s
2021-11-13 12:28:50 +01:00
migrate.migrating_failed_no_addr = Migration failed.
2024-03-17 17:04:11 +01:00
migrate.github.description = Migrate data from github.com or GitHub Enterprise server.
2021-08-25 15:47:05 +02:00
migrate.git.description = Migrate a repository only from any Git service.
migrate.gitlab.description = Migrate data from gitlab.com or other GitLab instances.
2024-01-21 18:25:58 +01:00
migrate.forgejo.description = Migrate data from codeberg.org or other Forgejo instances.
2021-08-25 15:47:05 +02:00
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-02 23:24:02 +01:00
migrate.codebase.description = Migrate data from codebasehq.com.
2021-11-16 00:12:09 +01:00
migrate.gitbucket.description = Migrate data from GitBucket instances.
2024-03-17 17:04:11 +01: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
migrate.cancel_migrating_title = Cancel migration
2023-05-11 10:25:46 +02:00
migrate.cancel_migrating_confirm = Do you want to cancel this migration?
2014-08-01 06:06:19 +02:00
2016-02-01 21:59:48 +01:00
mirror_from = mirror of
2015-07-23 22:50:05 +02:00
forked_from = forked from
2019-11-11 16:15:29 +01:00
generated_from = generated from
2018-04-19 16:24:31 +02:00
fork_from_self = You cannot fork a repository you own.
2019-01-11 05:25:14 +01:00
fork_guest_user = Sign in to fork this repository.
2020-09-11 13:01:51 +02:00
watch_guest_user = Sign in to watch this repository.
star_guest_user = Sign in to star this repository.
2024-06-11 07:54:35 +02:00
subscribe.issue.guest.tooltip = Sign in to subscribe to this issue.
subscribe.pull.guest.tooltip = Sign in to subscribe to this pull request.
2014-08-11 05:11:18 +02:00
watch = Watch
2024-06-11 07:54:35 +02:00
unwatch = Unwatch
2014-08-11 05:11:18 +02:00
star = Star
2024-06-11 07:54:35 +02:00
unstar = Unstar
2014-08-11 05:11:18 +02:00
fork = Fork
2024-03-17 17:04:11 +01:00
download_archive = Download repository
more_operations = More operations
2014-08-11 05:11:18 +02:00
2024-03-17 17:04:11 +01:00
no_desc = No description
quick_guide = Quick guide
2014-08-31 15:03:16 +02:00
clone_this_repo = Clone this repository
2022-11-11 18:02:50 +01:00
cite_this_repo = Cite this repository
2017-05-18 03:03:43 +02: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 01:01:04 +01:00
empty_message = This repository does not contain any content.
2021-12-24 04:56:57 +01: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 01:58:36 +02:00
2015-12-02 23:00:23 +01:00
code = Code
2018-04-19 16:24:31 +02:00
code.desc = Access source code, files, commits and branches.
2014-09-23 19:47:54 +02:00
branch = Branch
tree = Tree
2020-09-08 18:29:51 +02:00
clear_ref = `Clear current reference`
2015-11-14 10:34:01 +01:00
filter_branch_and_tag = Filter branch or tag
2021-05-03 19:27:48 +02:00
find_tag = Find tag
2014-09-23 19:47:54 +02:00
branches = Branches
2024-05-29 19:46:36 +02:00
tag = Tag
2014-09-23 19:47:54 +02:00
tags = Tags
issues = Issues
2024-03-17 17:04:11 +01:00
pulls = Pull requests
2024-05-27 10:59:54 +02:00
project = Projects
2022-05-08 17:51:50 +02:00
packages = Packages
2023-04-03 06:05:37 +02:00
actions = Actions
2024-05-29 19:46:36 +02:00
release = Release
releases = Releases
2015-07-23 22:50:05 +02:00
labels = Labels
2024-05-29 19:46:36 +02:00
milestones = Milestones
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 06:14:46 +02:00
org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization
org_labels_desc_manage = manage
2014-09-23 19:47:54 +02:00
commits = Commits
2017-12-03 21:52:30 +01:00
commit = Commit
2024-03-24 10:09:04 +01:00
n_commit_one = %s commit
n_commit_few = %s commits
n_branch_one = %s branch
n_branch_few = %s branches
n_tag_one = %s tag
n_tag_few = %s tags
2024-05-29 19:46:36 +02:00
n_release_one = %s release
n_release_few = %s releases
2024-03-24 10:09:04 +01:00
2020-11-03 00:10:22 +01:00
released_this = released this
2023-10-22 13:59:31 +02:00
file.title = %s at %s
2014-10-12 00:02:48 +02:00
file_raw = Raw
2024-03-30 16:54:04 +01:00
file_follow = Follow symlink
2014-10-12 00:02:48 +02:00
file_history = History
2024-03-30 16:54:04 +01:00
file_view_source = View source
file_view_rendered = View rendered
file_view_raw = View raw
2015-05-14 00:14:24 +02:00
file_permalink = Permalink
2018-04-19 16:24:31 +02:00
file_too_large = The file is too large to be shown.
2023-08-03 16:16:06 +02: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.`
2024-06-11 19:42:33 +02:00
invisible_runes_line = `This line has invisible Unicode characters`
ambiguous_runes_line = `This line has ambiguous Unicode characters`
2023-05-24 16:39:33 +02:00
ambiguous_character = `%[1]c [U+%04[1]X] can be confused with %[2]c [U+%04[2]X]`
2022-01-07 02:18:52 +01:00
escape_control_characters = Escape
unescape_control_characters = Unescape
2024-03-17 17:04:11 +01:00
file_copy_permalink = Copy permalink
view_git_blame = View git blame
2024-02-27 14:39:59 +01:00
video_not_supported_in_browser = Your browser does not support the HTML5 "video" tag.
audio_not_supported_in_browser = Your browser does not support the HTML5 "audio" tag.
2016-12-26 02:16:37 +01:00
stored_lfs = Stored with Git LFS
2020-02-22 00:04:20 +01:00
symbolic_link = Symbolic link
2024-03-17 17:04:11 +01:00
executable_file = Executable file
2024-01-24 06:51:37 +01:00
vendored = Vendored
generated = Generated
2024-03-17 17:04:11 +01:00
commit_graph = Commit graph
2020-11-08 18:21:54 +01:00
commit_graph.select = Select branches
2024-03-17 17:04:11 +01:00
commit_graph.hide_pr_refs = Hide pull requests
2020-08-06 10:04:08 +02:00
commit_graph.monochrome = Mono
2021-10-21 23:51:03 +02:00
commit_graph.color = Color
2023-07-27 12:47:41 +02: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 04:47:00 +02:00
blame = Blame
2021-11-15 02:05:12 +01:00
download_file = Download file
2019-04-20 04:47:00 +02:00
normal_view = Normal View
2019-10-08 01:38:41 +02:00
line = line
2019-10-07 06:59:17 +02: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 10:02:57 +02:00
from_comment = (comment)
2014-09-23 19:47:54 +02:00
2024-03-17 17:04:11 +01:00
editor.add_file = Add file
editor.new_file = New file
editor.upload_file = Upload file
editor.edit_file = Edit file
editor.preview_changes = Preview changes
2019-02-12 16:09:43 +01:00
editor.cannot_edit_lfs_files = LFS files cannot be edited in the web interface.
2018-04-19 16:24:31 +02:00
editor.cannot_edit_non_text_files = Binary files cannot be edited in the web interface.
2024-03-17 17:04:11 +01:00
editor.edit_this_file = Edit file
2019-10-29 22:32:21 +01:00
editor.this_file_locked = File is locked
2018-04-19 16:24:31 +02: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.
2024-03-17 17:04:11 +01:00
editor.delete_this_file = Delete file
2018-04-19 16:24:31 +02:00
editor.must_have_write_access = You must have write access to make or propose changes to this file.
2023-04-18 00:04:26 +02:00
editor.file_delete_success = File "%s" has been deleted.
2018-02-16 15:02:40 +01:00
editor.name_your_file = Name your file…
2024-02-27 14:39:59 +01: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 13:31:42 +02:00
editor.or = or
2018-04-19 16:24:31 +02:00
editor.cancel_lower = Cancel
2024-03-30 16:54:04 +01:00
editor.commit_signed_changes = Commit signed changes
editor.commit_changes = Commit changes
2024-02-27 14:39:59 +01:00
editor.add_tmpl = Add "<filename>"
2023-04-18 00:04:26 +02:00
editor.add = Add %s
editor.update = Update %s
editor.delete = Delete %s
2024-05-18 07:24:39 +02:00
editor.patch = Apply patch
2022-02-09 21:28:55 +01:00
editor.patching = Patching:
2023-04-18 00:04:26 +02:00
editor.fail_to_apply_patch = Unable to apply patch "%s"
2024-05-18 07:24:39 +02:00
editor.new_patch = New patch
2018-02-16 15:02:40 +01:00
editor.commit_message_desc = Add an optional extended description…
2021-01-29 09:57:45 +01:00
editor.signoff_desc = Add a Signed-off-by trailer by the committer at the end of the commit log message.
2017-11-01 17:03:10 +01:00
editor.commit_directly_to_this_branch = Commit directly to the <strong class="branch-name">%s</strong> branch.
2016-08-15 08:02:14 +02:00
editor.create_new_branch = Create a <strong>new branch</strong> for this commit and start a pull request.
2019-10-05 04:09:19 +02:00
editor.create_new_branch_np = Create a <strong>new branch</strong> for this commit.
2019-07-17 20:40:28 +02:00
editor.propose_file_change = Propose file change
2023-02-01 02:43:06 +01:00
editor.new_branch_name = Name the new branch for this commit
2018-02-16 15:02:40 +01:00
editor.new_branch_name_desc = New branch name…
2016-08-28 10:41:44 +02:00
editor.cancel = Cancel
2018-04-19 16:24:31 +02:00
editor.filename_cannot_be_empty = The filename cannot be empty.
2023-04-18 00:04:26 +02:00
editor.filename_is_invalid = The filename is invalid: "%s".
2024-01-21 18:25:58 +01:00
editor.invalid_commit_mail = Invalid mail for creating a commit.
2023-04-18 00:04:26 +02:00
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-04 20:46:47 +02:00
editor.file_is_a_symlink = `"%s" is a symbolic link. Symbolic links cannot be edited in the web editor`
2023-04-18 00:04:26 +02: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.
2024-03-30 16:54:04 +01: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 00:04:26 +02:00
editor.file_already_exists = A file named "%s" already exists in this repository.
2024-05-08 05:58:25 +02:00
editor.commit_id_not_matching = The file was changed while you were editing it. Commit to a new branch and then merge.
2024-03-18 03:23:08 +01:00
editor.push_out_of_date = The push appears to be out of date.
2019-10-16 21:28:41 +02:00
editor.commit_empty_file_header = Commit an empty file
2020-09-06 18:24:24 +02:00
editor.commit_empty_file_text = The file you're about to commit is empty. Proceed?
2016-08-15 08:02:14 +02:00
editor.no_changes_to_show = There are no changes to show.
2023-04-18 00:04:26 +02:00
editor.fail_to_update_file = Failed to update/create file "%s".
2024-05-18 07:24:39 +02:00
editor.fail_to_update_file_summary = Error message:
2024-03-17 17:04:11 +01: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.
2024-05-18 07:24:39 +02:00
editor.push_rejected_summary = Full rejection message:
2018-04-19 16:24:31 +02:00
editor.add_subdir = Add a directory…
2023-04-18 00:04:26 +02: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 09:32:57 +01: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-09 21:28:55 +01:00
editor.cherry_pick = Cherry-pick %s onto:
editor.revert = Revert %s onto:
2016-08-11 14:48:08 +02:00
2018-04-19 16:24:31 +02:00
commits.desc = Browse source code change history.
2014-09-23 21:30:04 +02:00
commits.commits = Commits
2023-04-18 00:04:26 +02:00
commits.no_commits = No commits in common. "%s" and "%s" have entirely different histories.
2021-07-29 04:32:48 +02:00
commits.nothing_to_compare = These branches are equal.
2023-03-23 18:27:03 +01:00
commits.search.tooltip = You can prefix keywords with "author:", "committer:", "after:", or "before:", e.g. "revert author:Alice before:2019-01-13".
2024-05-18 07:24:39 +02:00
commits.search_branch = This branch
commits.search_all = All branches
2014-09-23 21:30:04 +02:00
commits.author = Author
commits.message = Message
2024-01-21 18:25:58 +01:00
commits.browse_further = Browse further
commits.renamed_from = Renamed from %s
2014-09-23 21:30:04 +02:00
commits.date = Date
commits.older = Older
commits.newer = Newer
2017-07-10 03:46:06 +02:00
commits.signed_by = Signed by
2020-02-27 20:20:55 +01: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
2024-03-17 17:04:11 +01:00
commits.gpg_key_id = GPG key ID
commits.ssh_key_fingerprint = SSH key fingerprint
2023-10-02 06:04:32 +02:00
commits.view_path = View at this point in history
2014-09-23 21:30:04 +02:00
2022-12-08 14:14:09 +01:00
commit.operations = Operations
2022-02-09 21:28:55 +01: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 09:26:10 +02:00
commitstatus.error = Error
commitstatus.failure = Failure
commitstatus.pending = Pending
commitstatus.success = Success
2024-03-17 17:04:11 +01:00
ext_issues = Access to external issues
2018-04-19 16:24:31 +02:00
ext_issues.desc = Link to an external issue tracker.
2017-05-18 16:54:24 +02:00
2020-08-17 17:58:23 +02:00
projects = Projects
2021-02-16 23:37:20 +01:00
projects.desc = Manage issues and pulls in project boards.
2021-01-23 11:30:28 +01:00
projects.description = Description (optional)
projects.description_placeholder = Description
2024-03-17 17:04:11 +01:00
projects.create = Create project
2020-08-17 05:07:38 +02:00
projects.title = Title
2024-03-17 17:04:11 +01:00
projects.new = New project
2020-08-17 05:07:38 +02:00
projects.new_subheader = Coordinate, track, and update your work in one place, so projects stay transparent and on schedule.
2023-04-18 00:04:26 +02:00
projects.create_success = The project "%s" has been created.
2024-03-17 17:04:11 +01:00
projects.deletion = Delete project
2020-08-17 05:07:38 +02:00
projects.deletion_desc = Deleting a project removes it from all related issues. Continue?
projects.deletion_success = The project has been deleted.
2024-03-17 17:04:11 +01:00
projects.edit = Edit project
2020-08-17 05:07:38 +02:00
projects.edit_subheader = Projects organize issues and track progress.
2024-03-17 17:04:11 +01:00
projects.modify = Edit project
2023-04-18 00:04:26 +02:00
projects.edit_success = Project "%s" has been updated.
2024-02-25 13:03:09 +01:00
projects.type.none = None
2024-03-30 16:54:04 +01:00
projects.type.basic_kanban = Basic kanban
projects.type.bug_triage = Bug triage
2024-02-25 13:03:09 +01:00
projects.template.desc = Template
projects.template.desc_helper = Select a project template to get started
2024-03-30 16:54:04 +01:00
projects.column.edit = Edit column
2024-02-25 13:03:09 +01:00
projects.column.edit_title = Name
projects.column.new_title = Name
2024-03-30 16:54:04 +01:00
projects.column.new_submit = Create column
projects.column.new = New column
projects.column.set_default = Set default
2024-02-25 13:03:09 +01:00
projects.column.set_default_desc = Set this column as default for uncategorized issues and pulls
2024-03-30 16:54:04 +01:00
projects.column.delete = Delete column
2024-03-27 21:54:32 +01:00
projects.column.deletion_desc = Deleting a project column moves all related issues to the default column. Continue?
2024-02-25 13:03:09 +01:00
projects.column.color = Color
2020-08-17 05:07:38 +02:00
projects.open = Open
projects.close = Close
2023-02-25 00:10:50 +01:00
projects.column.assigned_to = Assigned to
2024-03-30 16:54:04 +01: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 05:07:38 +02:00
2018-04-19 16:24:31 +02:00
issues.desc = Organize bug reports, tasks and milestones.
2020-04-04 07:39:48 +02:00
issues.filter_assignees = Filter Assignee
issues.filter_milestones = Filter Milestone
2020-08-17 05:07:38 +02:00
issues.filter_projects = Filter Project
2020-04-04 07:39:48 +02:00
issues.filter_labels = Filter Label
2020-04-06 18:33:34 +02:00
issues.filter_reviewers = Filter Reviewer
2024-03-17 17:04:11 +01:00
issues.new = New issue
2019-01-21 12:45:32 +01:00
issues.new.title_empty = Title cannot be empty
2015-08-10 08:42:50 +02:00
issues.new.labels = Labels
2024-03-30 16:54:04 +01:00
issues.new.no_label = No labels
2015-08-10 08:42:50 +02:00
issues.new.clear_labels = Clear labels
2020-08-17 05:07:38 +02:00
issues.new.projects = Projects
issues.new.clear_projects = Clear projects
issues.new.no_projects = No project
2024-03-17 17:04:11 +01:00
issues.new.open_projects = Open projects
issues.new.closed_projects = Closed projects
2020-04-04 07:39:48 +02:00
issues.new.no_items = No items
2015-08-10 08:42:50 +02:00
issues.new.milestone = Milestone
2024-03-17 17:04:11 +01:00
issues.new.no_milestone = No milestone
2015-08-10 12:57:57 +02:00
issues.new.clear_milestone = Clear milestone
2024-03-17 17:04:11 +01:00
issues.new.open_milestone = Open milestones
issues.new.closed_milestone = Closed milestones
2018-05-09 18:29:04 +02:00
issues.new.assignees = Assignees
issues.new.clear_assignees = Clear assignees
2024-03-17 17:04:11 +01:00
issues.new.no_assignees = No assignees
2020-04-06 18:33:34 +02:00
issues.new.no_reviewers = No reviewers
2024-05-27 17:34:18 +02: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-17 17:04:11 +01:00
issues.choose.get_started = Get started
2023-03-28 20:22:07 +02:00
issues.choose.open_external_link = Open
2020-09-16 04:07:09 +02:00
issues.choose.blank = Default
2020-10-14 13:17:40 +02:00
issues.choose.blank_about = Create an issue from default template.
2022-09-02 09:58:49 +02:00
issues.choose.ignore_invalid_templates = Invalid templates have been ignored
issues.choose.invalid_templates = %v invalid template(s) found
2023-03-28 20:22:07 +02:00
issues.choose.invalid_config = The issue config contains errors:
2024-03-17 17:04:11 +01:00
issues.no_ref = No Branch/Tag specified
issues.create = Create issue
issues.new_label = New label
2018-04-19 16:24:31 +02:00
issues.new_label_placeholder = Label name
issues.new_label_desc_placeholder = Description
2024-03-17 17:04:11 +01:00
issues.create_label = Create label
issues.label_templates.title = Load a label preset
issues.label_templates.info = No labels exist yet. Create a label with "New label" or use a label preset:
issues.label_templates.helper = Select a label preset
issues.label_templates.use = Use label preset
2023-04-18 00:04:26 +02:00
issues.label_templates.fail_to_load_file = Failed to load label template file "%s": %v
2020-10-25 22:49:48 +01: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 03:36:08 +01:00
issues.add_milestone_at = `added this to the <b>%s</b> milestone %s`
2020-08-17 05:07:38 +02:00
issues.add_project_at = `added this to the <b>%s</b> project %s`
2017-02-01 03:36:08 +01:00
issues.change_milestone_at = `modified the milestone from <b>%s</b> to <b>%s</b> %s`
2020-08-17 05:07:38 +02:00
issues.change_project_at = `modified the project from <b>%s</b> to <b>%s</b> %s`
2017-02-01 03:36:08 +01:00
issues.remove_milestone_at = `removed this from the <b>%s</b> milestone %s`
2020-08-17 05:07:38 +02:00
issues.remove_project_at = `removed this from the <b>%s</b> project %s`
2017-06-17 06:51:28 +02:00
issues.deleted_milestone = `(deleted)`
2020-08-17 05:07:38 +02:00
issues.deleted_project = `(deleted)`
2017-02-03 16:09:10 +01:00
issues.self_assign_at = `self-assigned this %s`
issues.add_assignee_at = `was assigned by <b>%s</b> %s`
2019-01-19 20:16:46 +01:00
issues.remove_assignee_at = `was unassigned by <b>%s</b> %s`
issues.remove_self_assignment = `removed their assignment %s`
2019-09-02 18:11:23 +02:00
issues.change_title_at = `changed title from <b><strike>%s</strike></b> to <b>%s</b> %s`
2021-11-19 10:54:31 +01: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 05:00:29 +01:00
issues.delete_branch_at = `deleted branch <b>%s</b> %s`
2015-07-23 22:50:05 +02:00
issues.filter_label = Label
2019-10-23 18:29:14 +02:00
issues.filter_label_exclude = `Use <code>alt</code> + <code>click/enter</code> to exclude labels`
2018-04-19 16:24:31 +02:00
issues.filter_label_no_select = All labels
2023-07-26 15:00:50 +02:00
issues.filter_label_select_no_label = No label
2015-07-23 22:50:05 +02:00
issues.filter_milestone = Milestone
2023-04-30 15:12:49 +02: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 04:45:29 +01:00
issues.filter_project = Project
2023-02-04 15:35:08 +01:00
issues.filter_project_all = All projects
issues.filter_project_none = No project
2015-07-23 22:50:05 +02:00
issues.filter_assignee = Assignee
2018-04-19 16:24:31 +02:00
issues.filter_assginee_no_select = All assignees
2023-05-17 11:21:35 +02:00
issues.filter_assginee_no_assignee = No assignee
2022-08-08 22:03:58 +02:00
issues.filter_poster = Author
issues.filter_poster_no_select = All authors
2015-07-23 22:50:05 +02: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-17 17:34:19 +01:00
issues.filter_type.review_requested = Review requested
2023-02-25 03:55:50 +01:00
issues.filter_type.reviewed_by_you = Reviewed by you
2015-08-15 06:07:08 +02:00
issues.filter_sort = Sort
2015-08-15 10:30:24 +02:00
issues.filter_sort.latest = Newest
2015-08-15 06:07:08 +02:00
issues.filter_sort.oldest = Oldest
2015-08-15 10:30:24 +02: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 15:39:41 +01:00
issues.filter_sort.nearduedate = Nearest due date
issues.filter_sort.farduedate = Farthest due date
2018-05-24 03:03:42 +02: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 02:10:35 +01: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 02:43:06 +01:00
issues.action_check = Check/Uncheck
issues.action_check_all = Check/Uncheck all items
2017-11-01 17:03:10 +01:00
issues.opened_by = opened %[1]s by <a href="%[2]s">%[3]s</a>
2021-12-14 02:45:39 +01: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-23 18:57:52 +02:00
issues.opened_by_fake = opened %[1]s by %[2]s
2021-12-14 02:45:39 +01:00
issues.closed_by_fake = by %[2]s was closed %[1]s
2015-07-27 21:14:37 +02:00
issues.previous = Previous
issues.next = Next
2015-08-12 11:04:23 +02:00
issues.open_title = Open
issues.closed_title = Closed
2022-07-10 00:17:04 +02:00
issues.draft_title = Draft
2023-07-05 21:53:38 +02:00
issues.num_comments_1 = %d comment
2015-08-12 11:04:23 +02:00
issues.num_comments = %d comments
2017-11-01 17:03:10 +01:00
issues.commented_at = `commented <a href="#%s">%s</a>`
2016-07-25 20:48:17 +02:00
issues.delete_comment_confirm = Are you sure you want to delete this comment?
2024-03-17 17:04:11 +01:00
issues.context.copy_link = Copy link
issues.context.quote_reply = Quote reply
issues.context.reference_issue = Reference in a new issue
2019-11-19 19:33:42 +01:00
issues.context.edit = Edit
issues.context.delete = Delete
2023-07-22 11:32:50 +02:00
issues.no_content = No description provided.
2024-03-17 17:04:11 +01:00
issues.close = Close issue
2023-05-03 15:52:19 +02: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-03-17 17:04:11 +01:00
issues.close_comment_issue = Comment and close
2015-08-13 17:21:43 +02:00
issues.reopen_issue = Reopen
2024-03-17 17:04:11 +01:00
issues.reopen_comment_issue = Comment and reopen
2015-08-12 12:44:09 +02:00
issues.create_comment = Comment
2020-04-30 15:49:12 +02: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-01 17:03:10 +01:00
issues.commit_ref_at = `referenced this issue from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2019-11-18 14:13:07 +01: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>`
2024-07-12 15:09:13 +02:00
issues.ref_closing_from = `<a href="%[3]s">referenced this issue from a pull request %[4]s that will close it</a>, <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopening_from = `<a href="%[3]s">referenced this issue from a pull request %[4]s that will reopen it</a>, <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2019-11-18 14:13:07 +01:00
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 07:06:17 +02:00
issues.author = Author
2024-06-24 17:18:27 +02:00
issues.author.tooltip.issue = This user is the author of this issue.
issues.author.tooltip.pr = This user is the author of this pull request.
2023-08-24 07:06:17 +02:00
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
2024-05-26 13:06:28 +02:00
issues.role.contributor_helper = This user has previously committed in this repository.
2020-04-06 18:33:34 +02:00
issues.re_request_review = Re-request review
2020-09-04 18:36:37 +02:00
issues.is_stale = There have been changes to this PR since this review
2020-04-06 18:33:34 +02:00
issues.remove_request_review = Remove review request
issues.remove_request_review_block = Can't remove review request
2024-03-30 16:54:04 +01:00
issues.dismiss_review = Dismiss review
2021-02-11 18:32:25 +01:00
issues.dismiss_review_warning = Are you sure you want to dismiss this review?
2017-11-01 17:03:10 +01:00
issues.sign_in_require_desc = <a href="%s">Sign in</a> to join this conversation.
2015-08-15 08:14:55 +02:00
issues.edit = Edit
2015-08-19 17:14:57 +02:00
issues.cancel = Cancel
2015-08-15 08:14:55 +02: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-18 20:17:39 +01:00
issues.label_title = Name
issues.label_description = Description
issues.label_color = Color
issues.label_exclusive = Exclusive
2024-03-17 17:04:11 +01:00
issues.label_archive = Archive label
2023-10-01 15:04:39 +02: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-18 20:17:39 +01: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 15:02:49 +02:00
issues.label_count = %d labels
2023-01-13 12:40:39 +01:00
issues.label_open_issues = %d open issues/pull requests
2015-07-24 15:02:49 +02:00
issues.label_edit = Edit
issues.label_delete = Delete
2024-03-17 17:04:11 +01:00
issues.label_modify = Edit label
issues.label_deletion = Delete label
2018-04-19 16:24:31 +02:00
issues.label_deletion_desc = Deleting a label removes it from all issues. Continue?
issues.label_deletion_success = The label has been deleted.
2024-03-29 19:17:00 +01:00
issues.archived_label_description = (Archived) %s
2016-12-24 15:41:09 +01:00
issues.label.filter_sort.alphabetically = Alphabetically
issues.label.filter_sort.reverse_alphabetically = Reverse alphabetically
2020-03-03 18:27:38 +01:00
issues.label.filter_sort.by_size = Smallest size
issues.label.filter_sort.reverse_by_size = Largest size
2024-03-19 12:27:01 +01:00
issues.num_participants_one = %d participant
issues.num_participants_few = %d participants
2016-08-12 01:16:36 +02:00
issues.attachment.open_tab = `Click to see "%s" in a new tab`
issues.attachment.download = `Click to download "%s"`
2017-03-31 00:10:30 +02:00
issues.subscribe = Subscribe
issues.unsubscribe = Unsubscribe
2024-03-17 17:04:11 +01:00
issues.unpin_issue = Unpin issue
2024-02-25 13:03:09 +01:00
issues.max_pinned = You can't pin more issues
issues.pin_comment = pinned this %s
issues.unpin_comment = unpinned this %s
2019-02-18 21:55:04 +01: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.
2024-02-25 13:03:09 +01:00
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
2019-02-18 21:55:04 +01:00
issues.lock_confirm = Lock
issues.unlock_confirm = Unlock
2024-02-27 14:39:59 +01:00
issues.lock.notice_1 = - Other users can't add new comments to this issue.
2019-02-18 21:55:04 +01:00
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 01:38:11 +01: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-03-17 17:04:11 +01:00
issues.tracker = Time tracker
issues.start_tracking_short = Start timer
issues.start_tracking = Start time tracking
2017-09-12 08:48:13 +02:00
issues.start_tracking_history = `started working %s`
2019-02-05 12:38:11 +01:00
issues.tracker_auto_close = Timer will be stopped automatically when this issue gets closed
2020-12-21 07:11:39 +01:00
issues.tracking_already_started = `You have already started time tracking on <a href="%s">another issue</a>!`
2024-03-17 17:04:11 +01:00
issues.stop_tracking = Stop timer
2017-09-12 08:48:13 +02:00
issues.stop_tracking_history = `stopped working %s`
2021-01-21 15:51:52 +01:00
issues.cancel_tracking = Discard
2023-08-08 17:25:05 +02:00
issues.cancel_tracking_history = `canceled time tracking %s`
2024-03-17 17:04:11 +01:00
issues.add_time = Manually add time
2021-02-19 11:52:11 +01:00
issues.del_time = Delete this time log
2024-03-17 17:04:11 +01:00
issues.add_time_short = Add time
2017-09-12 08:48:13 +02:00
issues.add_time_cancel = Cancel
issues.add_time_history = `added spent time %s`
2019-12-27 21:30:58 +01:00
issues.del_time_history = `deleted spent time %s`
2017-09-12 08:48:13 +02:00
issues.add_time_hours = Hours
issues.add_time_minutes = Minutes
2018-04-19 16:24:31 +02:00
issues.add_time_sum_to_small = No time was entered.
2024-03-17 17:04:11 +01:00
issues.time_spent_total = Total time spent
issues.time_spent_from_all_authors = `Total time spent: %s`
issues.due_date = Due date
2024-02-27 14:39:59 +01:00
issues.invalid_due_date_format = Due date format must be "yyyy-mm-dd".
2024-02-25 13:03:09 +01:00
issues.error_modifying_due_date = Failed to modify the due date.
issues.error_removing_due_date = Failed to remove the due date.
issues.push_commit_1 = added %d commit %s
issues.push_commits_n = added %d commits %s
2021-04-10 04:24:59 +02: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-01 20:19:47 +01:00
issues.force_push_compare = Compare
2024-02-25 13:03:09 +01:00
issues.due_date_form = yyyy-mm-dd
issues.due_date_form_add = Add due date
issues.due_date_form_edit = Edit
issues.due_date_form_remove = Remove
issues.due_date_not_writer = You need write access to this repository in order to update the due date of an issue.
issues.due_date_not_set = No due date set.
issues.due_date_added = added the due date %s %s
issues.due_date_modified = modified the due date from %[2]s to %[1]s %[3]s
issues.due_date_remove = removed the due date %s %s
issues.due_date_overdue = Overdue
2024-02-27 14:39:59 +01:00
issues.due_date_invalid = The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
2018-07-17 23:23:58 +02:00
issues.dependency.title = Dependencies
2022-03-23 17:46:50 +01:00
issues.dependency.issue_no_dependencies = No dependencies set.
issues.dependency.pr_no_dependencies = No dependencies set.
2024-02-25 13:03:09 +01: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 11:02:08 +02:00
issues.dependency.add = Add dependency…
2018-07-17 23:23:58 +02:00
issues.dependency.cancel = Cancel
issues.dependency.remove = Remove
2018-09-07 04:32:46 +02:00
issues.dependency.remove_info = Remove this dependency
2020-04-19 02:15:07 +02:00
issues.dependency.added_dependency = `added a new dependency %s`
issues.dependency.removed_dependency = `removed a dependency %s`
2021-08-21 01:13:45 +02: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-17 23:23:58 +02: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-20 18:40:08 +02:00
issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it.
2024-02-25 13:03:09 +01:00
issues.dependency.issue_batch_close_blocked = Cannot batch close chosen issues, because issue #%d still has open dependencies
2018-07-20 18:40:08 +02:00
issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it.
2018-07-17 23:23:58 +02:00
issues.dependency.blocks_short = Blocks
issues.dependency.blocked_by_short = Depends on
issues.dependency.remove_header = Remove Dependency
2018-07-20 18:40:08 +02: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?
2024-03-17 17:04:11 +01:00
issues.dependency.setting = Enable dependencies for issues and pull requests
2018-07-20 18:40:08 +02:00
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 07:04:01 +02: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.
2024-02-25 13:03:09 +01:00
issues.review.approve = approved these changes %s
issues.review.comment = reviewed %s
2024-02-27 14:39:59 +01:00
issues.review.dismissed = dismissed %s's review %s
2021-02-11 18:32:25 +01:00
issues.review.dismissed_label = Dismissed
2020-04-11 00:01:41 +02:00
issues.review.left_comment = left a comment
2018-08-07 19:15:41 +02:00
issues.review.content.empty = You need to leave a comment indicating the requested change(s).
2024-02-25 13:03:09 +01:00
issues.review.reject = requested changes %s
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 06:43:22 +02:00
issues.review.pending = Pending
2023-04-18 00:04:26 +02: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 06:43:22 +02:00
issues.review.review = Review
2018-11-22 14:17:36 +01:00
issues.review.reviewers = Reviewers
2020-10-15 10:17:48 +02:00
issues.review.outdated = Outdated
2023-06-21 18:08:12 +02: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 06:43:22 +02:00
issues.review.show_outdated = Show outdated
issues.review.hide_outdated = Hide outdated
2020-04-18 15:50:25 +02: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
2021-01-21 14:51:17 +01:00
issues.reference_issue.body = Body
2021-10-11 00:40:03 +02: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-05 20:58:37 +02:00
issues.reference_link = Reference: %s
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
issues.blocked_by_user = You cannot create a issue on this repository because you are blocked by the repository owner.
issues.comment.blocked_by_user = You cannot create a comment on this issue because you are blocked by the repository owner or the poster of the issue.
2015-07-23 22:50:05 +02:00
2021-05-07 23:10:05 +02:00
compare.compare_base = base
compare.compare_head = compare
2019-08-27 22:33:48 +02:00
pulls.desc = Enable pull requests and code reviews.
2024-03-17 17:04:11 +01:00
pulls.new = New pull request
pulls.view = View pull request
2024-05-27 17:34:18 +02: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
2024-03-17 17:04:11 +01:00
pulls.compare_changes = New pull request
2022-04-28 17:45:33 +02: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 16:24:31 +02:00
pulls.compare_changes_desc = Select the branch to merge into and the branch to pull from.
2022-05-07 20:28:10 +02: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 15:11:02 +02:00
pulls.expand_files = Expand all files
pulls.collapse_files = Collapse all files
2018-04-19 16:24:31 +02:00
pulls.compare_base = merge into
pulls.compare_compare = pull from
2021-09-27 14:19:34 +02:00
pulls.switch_comparison_type = Switch comparison type
pulls.switch_head_and_base = Switch head and base
2015-09-02 10:08:05 +02:00
pulls.filter_branch = Filter branch
2015-08-09 19:04:23 +02:00
pulls.no_results = No results found.
2023-07-28 21:18:12 +02: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 16:24:31 +02:00
pulls.nothing_to_compare = These branches are equal. There is no need to create a pull request.
2024-01-21 16:13:00 +01:00
pulls.nothing_to_compare_have_tag = The selected branch/tag are equal.
2021-03-04 04:41:23 +01:00
pulls.nothing_to_compare_and_allow_empty_pr = These branches are equal. This PR will be empty.
2021-11-16 19:18:25 +01:00
pulls.has_pull_request = `A pull request between these branches already exists: <a href="%[1]s">%[2]s#%[3]d</a>`
2024-03-17 17:04:11 +01:00
pulls.create = Create pull request
2024-03-09 12:36:42 +01:00
pulls.title_desc_one = wants to merge %[1]d commit from <code>%[2]s</code> into <code id="branch_target">%[3]s</code>
pulls.title_desc_few = wants to merge %[1]d commits from <code>%[2]s</code> into <code id="branch_target">%[3]s</code>
pulls.merged_title_desc_one = merged %[1]d commit from <code>%[2]s</code> into <code>%[3]s</code> %[4]s
pulls.merged_title_desc_few = merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s
2019-12-16 07:20:25 +01:00
pulls.change_target_branch_at = `changed target branch from <b>%s</b> to <b>%s</b> %s`
2015-09-02 01:07:02 +02:00
pulls.tab_conversation = Conversation
pulls.tab_commits = Commits
2024-03-17 17:04:11 +01:00
pulls.tab_files = Files changed
2017-03-09 14:24:57 +01:00
pulls.reopen_to_merge = Please reopen this pull request to perform a merge.
2019-04-20 22:50:34 +02:00
pulls.cant_reopen_deleted_branch = This pull request cannot be reopened because the branch was deleted.
2015-09-02 15:26:56 +02:00
pulls.merged = Merged
2023-04-23 20:12:36 +02:00
pulls.merged_success = Pull request successfully merged and closed
pulls.closed = Pull request closed
2021-03-04 04:41:23 +01:00
pulls.manually_merged = Manually merged
2023-04-23 20:12:36 +02:00
pulls.merged_info_text = The branch %s can now be deleted.
2019-12-16 07:20:25 +01:00
pulls.is_closed = The pull request has been closed.
2018-08-13 21:04:39 +02: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 12:46:20 +02:00
pulls.cannot_merge_work_in_progress = This pull request is marked as a work in progress.
2021-05-27 22:02:04 +02:00
pulls.still_in_progress = Still in progress?
pulls.add_prefix = Add <strong>%s</strong> prefix
2024-03-14 16:59:57 +01:00
pulls.ready_for_review = Ready for review?
2021-05-27 22:02:04 +02:00
pulls.remove_prefix = Remove <strong>%s</strong> prefix
2018-04-19 16:24:31 +02:00
pulls.data_broken = This pull request is broken due to missing fork information.
2019-02-05 12:54:49 +01:00
pulls.files_conflicted = This pull request has changes conflicting with the target branch.
2024-02-25 13:03:09 +01:00
pulls.is_checking = Merge conflict checking is in progress. Try again in few moments.
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 07:39:45 +02:00
pulls.required_status_check_failed = Some required checks were not successful.
2020-04-15 22:35:18 +02:00
pulls.required_status_check_missing = Some required checks are missing.
2019-09-18 07:39:45 +02:00
pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
2024-02-25 13:03:09 +01:00
pulls.blocked_by_approvals = This pull request doesn't have enough approvals yet. %d of %d approvals granted.
pulls.blocked_by_rejection = This pull request has changes requested by an official reviewer.
pulls.blocked_by_official_review_requests = This pull request is blocked because it is missing approval from one or more official reviewers.
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-09 23:12:21 +01:00
pulls.can_auto_merge_desc = This pull request can be merged automatically.
2018-04-19 16:24:31 +02: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.
2024-02-25 13:03:09 +01:00
pulls.num_conflicting_files_1 = %d conflicting file
pulls.num_conflicting_files_n = %d conflicting files
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
pulls.waiting_count_1 = %d waiting review
pulls.waiting_count_n = %d waiting reviews
pulls.wrong_commit_id = commit id must be a commit id on the target branch
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
pulls.blocked_by_user = You cannot create a pull request on this repository because you are blocked by the repository owner.
2020-03-06 04:44:06 +01:00
2018-04-19 16:24:31 +02: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-08 19:25:28 +01:00
pulls.no_merge_wip = This pull request cannot be merged because it is marked as being a work in progress.
2020-01-11 08:29:34 +01: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-02 21:23:57 +02: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-12 23:37:23 +01:00
pulls.fast_forward_only_merge_pull_request = Fast-forward only
2021-03-04 04:41:23 +01:00
pulls.merge_manually = Manually merged
pulls.merge_commit_id = The merge commit ID
2020-01-15 09:32:57 +01:00
pulls.require_signed_wont_sign = The branch requires signed commits but this merge will not be signed
2022-06-11 16:44:20 +02:00
2018-04-19 16:24:31 +02:00
pulls.invalid_merge_option = You cannot use this merge option for this pull request.
2024-05-18 07:24:39 +02: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
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.
pulls.head_out_of_date = Merge failed: Whilst generating the merge, the head was updated. Hint: Try again.
2023-09-06 04:13:08 +02:00
pulls.has_merged = Failed: The pull request has been merged, you cannot merge again or change the target branch.
2024-05-26 13:06:28 +02:00
pulls.push_rejected = Push failed: The push was rejected. Review the Git hooks for this repository.
2024-05-18 07:24:39 +02:00
pulls.push_rejected_summary = Full rejection message
2024-05-26 13:06:28 +02: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 16:24:31 +02: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 09:57:59 +02:00
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
2020-04-16 21:08:20 +02: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 09:29:50 +02:00
pulls.status_checks_requested = Required
pulls.status_checks_details = Details
2023-11-02 15:49:02 +01:00
pulls.status_checks_hide_all = Hide all checks
pulls.status_checks_show_all = Show all checks
2021-08-31 16:03:45 +02:00
pulls.update_branch = Update branch by merge
pulls.update_branch_rebase = Update branch by rebase
2020-01-17 07:03:40 +01: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
2024-03-17 17:04:11 +01:00
pulls.close = Close pull request
2020-04-30 15:49:12 +02: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>`
2024-01-28 20:17:46 +01:00
pulls.commit_ref_at = `referenced this pull request from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2024-07-12 15:09:13 +02:00
pulls.cmd_instruction_hint = View command line instructions
2023-10-25 17:01:31 +02:00
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
2024-01-21 18:25:58 +01:00
pulls.cmd_instruction_merge_desc = Merge the changes and update on Forgejo.
2022-11-23 11:24:03 +01: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 …".
2024-02-17 15:30:41 +01:00
pulls.reopen_failed.head_branch = The pull request cannot be reopened, because the head branch doesn't exist anymore.
pulls.reopen_failed.base_branch = The pull request cannot be reopened, because the base branch doesn't exist anymore.
2022-06-11 16:44:20 +02:00
2024-02-27 13:35:21 +01:00
pulls.made_using_agit = AGit
pulls.agit_explanation = Created using the AGit workflow. AGit lets contributors propose changes using "git push" without creating a fork or a new branch.
2022-06-11 16:44:20 +02: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 16:43:14 +02:00
2022-06-19 12:05:15 +02: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)
2024-01-21 18:25:58 +01:00
pulls.recently_pushed_new_branches = You pushed on branch <a href="%[3]s"><strong>%[1]s</strong></a> %[2]s
2023-07-08 05:19:00 +02:00
2023-08-04 00:07:15 +02:00
pull.deleted_branch = (deleted):%s
2024-05-27 17:34:18 +02: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
2024-03-17 17:04:11 +01:00
milestones.new = New milestone
2015-08-03 11:42:09 +02:00
milestones.closed = Closed %s
2023-04-12 19:05:53 +02:00
milestones.update_ago = Updated %s
2016-01-02 00:30:00 +01:00
milestones.no_due_date = No due date
2015-08-03 11:42:09 +02:00
milestones.open = Open
milestones.close = Close
2023-08-08 17:25:05 +02:00
milestones.new_subheader = Milestones can help you organize issues and track their progress.
2023-06-05 08:25:46 +02:00
milestones.completeness = <strong>%d%%</strong> Completed
2024-03-17 17:04:11 +01:00
milestones.create = Create milestone
2015-08-05 09:24:26 +02:00
milestones.title = Title
milestones.desc = Description
2024-03-17 17:04:11 +01:00
milestones.due_date = Due date (optional)
2015-08-05 12:26:18 +02:00
milestones.clear = Clear
2024-02-27 14:39:59 +01:00
milestones.invalid_due_date_format = Due date format must be "yyyy-mm-dd".
2023-04-18 00:04:26 +02:00
milestones.create_success = The milestone "%s" has been created.
2024-03-17 17:04:11 +01:00
milestones.edit = Edit milestone
2018-04-19 16:24:31 +02:00
milestones.edit_subheader = Milestones organize issues and track progress.
2015-08-05 12:26:18 +02:00
milestones.cancel = Cancel
2024-03-17 17:04:11 +01:00
milestones.modify = Update milestone
2023-04-18 00:04:26 +02:00
milestones.edit_success = Milestone "%s" has been updated.
2024-03-17 17:04:11 +01:00
milestones.deletion = Delete milestone
2018-04-19 16:24:31 +02:00
milestones.deletion_desc = Deleting a milestone removes it from all related issues. Continue?
milestones.deletion_success = The milestone has been deleted.
2024-03-10 15:10:29 +01:00
milestones.filter_sort.earliest_due_data = Nearest due date
milestones.filter_sort.latest_due_date = Farthest due date
2016-12-24 15:41:09 +01: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 11:42:09 +02:00
2023-08-08 17:25:05 +02: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.
2024-04-07 12:00:43 +02:00
signing.wont_sign.nokey = This instance has no key to sign this commit with.
2023-08-08 17:25:05 +02:00
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 09:32:57 +01:00
2024-03-30 16:54:04 +01:00
ext_wiki = Access to external Wiki
2018-04-19 16:24:31 +02:00
ext_wiki.desc = Link to an external wiki.
2017-05-18 16:54:24 +02:00
2015-11-26 02:10:25 +01:00
wiki = Wiki
2018-04-19 16:24:31 +02: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.
2024-04-30 05:59:06 +02:00
wiki.create_first_page = Create the first page
2015-11-27 07:50:38 +01:00
wiki.page = Page
wiki.filter_page = Filter page
2018-04-19 16:24:31 +02:00
wiki.new_page = Page
2023-04-10 17:56:57 +02:00
wiki.page_title = Page title
wiki.page_content = Page content
2017-03-09 14:24:57 +01:00
wiki.default_commit_message = Write a note about this page update (optional).
2024-04-30 05:59:06 +02:00
wiki.save_page = Save page
2024-01-21 18:25:58 +01:00
wiki.cancel = Cancel
2015-11-27 06:24:24 +01:00
wiki.last_commit_info = %s edited this page %s
2015-11-27 07:50:38 +01:00
wiki.edit_page_button = Edit
2024-04-30 05:59:06 +02:00
wiki.new_page_button = New page
wiki.file_revision = Page revision
wiki.wiki_page_revisions = Page revisions
2019-07-08 10:20:22 +02:00
wiki.back_to_wiki = Back to wiki page
2024-04-30 05:59:06 +02:00
wiki.delete_page_button = Delete page
2023-04-18 00:04:26 +02:00
wiki.delete_page_notice_1 = Deleting the wiki page "%s" cannot be undone. Continue?
2017-02-06 16:17:18 +01:00
wiki.page_already_exists = A wiki page with the same name already exists.
2023-04-18 00:04:26 +02:00
wiki.reserved_page = The wiki page name "%s" is reserved.
2015-11-27 08:16:12 +01:00
wiki.pages = Pages
wiki.last_updated = Last updated %s
2024-02-27 14:39:59 +01:00
wiki.page_name_desc = Enter a name for this Wiki page. Some special names are: "Home", "_Sidebar" and "_Footer".
2023-04-19 19:50:10 +02:00
wiki.original_git_entry_tooltip = View original Git file instead of using friendly link.
2024-05-20 14:23:27 +02:00
wiki.search = Search wiki
wiki.no_search_results = No results
2015-11-26 02:10:25 +01:00
2017-10-15 01:17:39 +02:00
activity = Activity
2024-02-15 23:21:13 +01:00
activity.navbar.pulse = Pulse
2024-03-17 17:04:11 +01:00
activity.navbar.code_frequency = Code frequency
2024-02-24 11:22:51 +01:00
activity.navbar.contributors = Contributors
2024-03-17 17:04:11 +01:00
activity.navbar.recent_commits = Recent commits
2017-10-15 01:17:39 +02: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 06:45:48 +01:00
activity.period.quarterly = 3 months
activity.period.semiyearly = 6 months
activity.period.yearly = 1 year
2017-10-15 01:17:39 +02:00
activity.overview = Overview
2024-05-26 13:06:28 +02:00
activity.active_prs_count_1 = <strong>%d</strong> active pull request
activity.active_prs_count_n = <strong>%d</strong> active pull requests
2024-03-17 17:04:11 +01:00
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
2017-10-15 01:17:39 +02:00
activity.title.user_1 = %d user
activity.title.user_n = %d users
2024-03-17 17:04:11 +01:00
activity.title.prs_1 = %d pull request
activity.title.prs_n = %d pull requests
2017-10-15 01:17:39 +02:00
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
2024-03-17 17:04:11 +01:00
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 08:54:12 +01:00
activity.title.issues_closed_from = %s closed from %s
2017-10-15 01:17:39 +02:00
activity.title.issues_created_by = %s created by %s
activity.closed_issue_label = Closed
2024-03-17 17:04:11 +01:00
activity.new_issues_count_1 = New issue
activity.new_issues_count_n = New issues
2017-10-15 01:17:39 +02:00
activity.new_issue_label = Opened
2024-03-17 17:04:11 +01:00
activity.title.unresolved_conv_1 = %d unresolved conversation
activity.title.unresolved_conv_n = %d unresolved conversations
2018-04-19 16:24:31 +02:00
activity.unresolved_conv_desc = These recently changed issues and pull requests have not been resolved yet.
2017-10-15 01:17:39 +02:00
activity.unresolved_conv_label = Open
2024-03-17 17:04:11 +01:00
activity.title.releases_1 = %d release
activity.title.releases_n = %d releases
2017-10-15 01:17:39 +02:00
activity.title.releases_published_by = %s published by %s
activity.published_release_label = Published
2019-05-04 14:39:03 +02: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-04 22:32:37 +02:00
activity.git_stats_pushed_1 = has pushed
activity.git_stats_pushed_n = have pushed
2019-05-04 14:39:03 +02: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-04 22:32:37 +02: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 14:39:03 +02: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
2024-07-18 22:05:02 +02:00
activity.commit = Commit activity
2017-10-15 01:17:39 +02:00
2024-02-15 23:21:13 +01: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-02 19:47:33 +02:00
settings = Settings
2017-05-23 10:01:27 +02:00
settings.desc = Settings is where you can manage the settings for the repository
2018-04-19 16:24:31 +02:00
settings.options = Repository
settings.collaboration = Collaborators
settings.collaboration.admin = Administrator
2016-06-27 18:22:30 +02:00
settings.collaboration.write = Write
settings.collaboration.read = Read
2019-09-23 22:08:03 +02:00
settings.collaboration.owner = Owner
2016-06-27 18:22:30 +02:00
settings.collaboration.undefined = Undefined
2014-08-02 19:47:33 +02:00
settings.hooks = Webhooks
2024-03-17 17:04:11 +01:00
settings.githooks = Git hooks
settings.basic_settings = Basic settings
2024-05-24 13:28:15 +02:00
settings.federation_settings = Federation Settings
settings.federation_apapiurl = Federation URL of this repository. Copy and paste this into Federation Settings of another repository as an URL of a Following Repository.
settings.federation_following_repos = URLs of Following Repositories. Separated by ";", no whitespace.
settings.federation_not_enabled = Federation is not enabled on your instance.
2024-03-17 17:04:11 +01:00
settings.mirror_settings = Mirror settings
2023-05-29 13:32:52 +02: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 17:25:05 +02:00
settings.mirror_settings.docs.more_information_if_disabled = You can find out more about push and pull mirrors here:
2023-05-29 13:32:52 +02:00
settings.mirror_settings.docs.doc_link_title = How do I mirror repositories?
2023-08-08 17:25:05 +02:00
settings.mirror_settings.docs.doc_link_pull_section = the "Pulling from a remote repository" section of the documentation.
2023-05-29 13:32:52 +02:00
settings.mirror_settings.docs.pulling_remote_title = Pulling from a remote repository
2021-06-14 19:20:43 +02:00
settings.mirror_settings.mirrored_repository = Mirrored repository
2024-02-01 01:04:23 +01:00
settings.mirror_settings.pushed_repository = Pushed repository
2021-06-14 19:20:43 +02: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
2024-03-17 17:04:11 +01:00
settings.mirror_settings.push_mirror.remote_url = Git remote repository URL
settings.mirror_settings.push_mirror.add = Add push mirror
2023-08-01 18:00:59 +02:00
settings.mirror_settings.push_mirror.edit_sync_time = Edit mirror sync interval
2024-03-17 17:04:11 +01:00
settings.units.units = Repository units
2024-01-23 10:46:34 +01:00
settings.units.overview = Overview
2024-01-23 10:57:49 +01:00
settings.units.add_more = Add more...
2024-01-23 10:46:34 +01:00
2024-03-17 17:04:11 +01:00
settings.sync_mirror = Synchronize now
2023-10-02 16:52:18 +02: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 16:24:31 +02:00
settings.site = Website
2024-04-06 20:06:39 +02:00
settings.update_settings = Save settings
2024-03-17 17:04:11 +01:00
settings.update_mirror_settings = Update mirror settings
settings.branches.switch_default_branch = Switch default branch
settings.branches.update_default_branch = Update default branch
settings.branches.add_new_rule = Add new rule
settings.advanced_settings = Advanced settings
settings.wiki_desc = Enable repository wiki
settings.wiki_globally_editable = Allow anyone to edit the wiki
settings.use_internal_wiki = Use built-in wiki
settings.use_external_wiki = Use external wiki
settings.external_wiki_url = External wiki URL
2018-04-19 16:24:31 +02: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.
2024-03-17 17:04:11 +01:00
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
settings.external_tracker_url = External issue tracker URL
2018-04-19 16:24:31 +02: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.
2024-03-17 17:04:11 +01:00
settings.tracker_url_format = External issue tracker URL Format
2018-08-15 08:29:37 +02:00
settings.tracker_url_format_error = The external issue tracker URL format is not a valid URL.
2024-03-17 17:04:11 +01:00
settings.tracker_issue_style = External issue tracker Number Format
2016-07-25 10:55:51 +02:00
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
2022-06-10 07:39:53 +02: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 16:24:31 +02: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.
2024-03-10 15:10:29 +01:00
settings.enable_timetracker = Enable time tracking
settings.allow_only_contributors_to_track_time = Let only contributors track time
2024-03-17 17:04:11 +01:00
settings.pulls_desc = Enable repository pull requests
settings.pulls.ignore_whitespace = Ignore whitespace for conflicts
2021-03-04 04:41:23 +01:00
settings.pulls.enable_autodetect_manual_merge = Enable autodetect manual merge (Note: In some special cases, misjudgments can occur)
2022-03-04 09:30:49 +01:00
settings.pulls.allow_rebase_update = Enable updating pull request branch by rebase
2021-07-13 01:26:25 +02:00
settings.pulls.default_delete_branch_after_merge = Delete pull request branch after merge by default
2023-02-13 07:09:52 +01:00
settings.pulls.default_allow_edits_from_maintainers = Allow edits from maintainers by default
2024-03-17 17:04:11 +01:00
settings.releases_desc = Enable repository releases
settings.packages_desc = Enable repository package registry
settings.projects_desc = Enable repository projects
2024-04-30 05:59:06 +02:00
settings.actions_desc = Enable integrated CI/CD pipelines with Forgejo Actions
2024-03-17 17:04:11 +01:00
settings.admin_settings = Administrator settings
settings.admin_enable_health_check = Enable repository health checks (git fsck)
settings.admin_code_indexer = Code indexer
2024-02-27 14:39:59 +01:00
settings.admin_stats_indexer = Code statistics indexer
2024-04-30 05:59:06 +02:00
settings.admin_indexer_commit_sha = Last indexed commit
2021-12-16 16:55:12 +01:00
settings.admin_indexer_unindexed = Unindexed
2024-03-17 17:04:11 +01:00
settings.reindex_button = Add to reindex queue
settings.reindex_requested = Reindex requested
2019-02-10 20:27:19 +01:00
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
2024-03-17 17:04:11 +01:00
settings.danger_zone = Danger zone
2015-03-19 20:26:04 +01:00
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
settings.new_owner_blocked_doer = The new owner has blocked you.
2024-03-17 17:04:11 +01:00
settings.convert = Convert to regular repository
2018-04-19 16:24:31 +02:00
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.
2024-03-17 17:04:11 +01:00
settings.convert_confirm = Convert repository
2018-04-19 16:24:31 +02:00
settings.convert_succeed = The mirror has been converted into a regular repository.
2024-03-17 17:04:11 +01:00
settings.convert_fork = Convert to regular repository
2020-07-02 16:09:09 +02:00
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.
2024-03-17 17:04:11 +01:00
settings.convert_fork_confirm = Convert repository
2020-07-02 16:09:09 +02:00
settings.convert_fork_succeed = The fork has been converted into a regular repository.
2024-05-13 20:22:16 +02:00
settings.transfer.title = Transfer ownership
settings.transfer.button = Transfer ownership
settings.transfer.modal.title = Transfer ownership
2021-03-01 01:47:30 +01:00
settings.transfer.rejected = Repository transfer was rejected.
settings.transfer.success = Repository transfer was successful.
settings.transfer_abort = Cancel transfer
settings.transfer_abort_invalid = You cannot cancel a non existent repository transfer.
2023-08-08 17:25:05 +02:00
settings.transfer_abort_success = The repository transfer to %s was successfully canceled.
2018-04-19 16:24:31 +02:00
settings.transfer_desc = Transfer this repository to a user or to an organization for which you have administrator rights.
2024-02-26 15:41:15 +01:00
settings.enter_repo_name = Enter the owner and repository name exactly as shown:
2024-02-27 14:39:59 +01:00
settings.confirmation_string = Confirmation string
2021-03-01 01:47:30 +01:00
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 16:24:31 +02: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-14 20:30:35 +02: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-03-17 17:04:11 +01:00
settings.transfer_owner = New owner
settings.transfer_perform = Perform transfer
2021-03-01 01:47:30 +01:00
settings.transfer_started = This repository has been marked for transfer and awaits confirmation from "%s"
settings.transfer_succeed = The repository has been transferred.
2024-03-17 17:04:11 +01:00
settings.signing_settings = Signing verification settings
settings.trust_model = Signature trust model
settings.trust_model.default = Default trust model
2020-09-19 18:44:55 +02:00
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
2024-01-21 18:25:58 +01:00
settings.trust_model.committer.long = Committer: Trust signatures that match committers (This matches GitHub and will force Forgejo signed commits to have Forgejo as the committer)
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 Forgejo 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 Forgejo key must match a User in the database.
2020-09-19 18:44:55 +02:00
settings.trust_model.collaboratorcommitter = Collaborator+Committer
settings.trust_model.collaboratorcommitter.long = Collaborator+Committer: Trust signatures by collaborators which match the committer
2024-01-21 18:25:58 +01: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 Forgejo 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 Forgejo key must match a User in the database.
[GITEA] Allow changing the repo Wiki branch to main
Previously, the repo wiki was hardcoded to use `master` as its branch,
this change makes it possible to use `main` (or something else, governed
by `[repository].DEFAULT_BRANCH`, a setting that already exists and
defaults to `main`).
The way it is done is that a new column is added to the `repository`
table: `wiki_branch`. The migration will make existing repositories
default to `master`, for compatibility's sake, even if they don't have a
Wiki (because it's easier to do that). Newly created repositories will
default to `[repository].DEFAULT_BRANCH` instead.
The Wiki service was updated to use the branch name stored in the
database, and fall back to the default if it is empty.
Old repositories with Wikis using the older `master` branch will have
the option to do a one-time transition to `main`, available via the
repository settings in the "Danger Zone". This option will only be
available for repositories that have the internal wiki enabled, it is
not empty, and the wiki branch is not `[repository].DEFAULT_BRANCH`.
When migrating a repository with a Wiki, Forgejo will use the same
branch name for the wiki as the source repository did. If that's not the
same as the default, the option to normalize it will be available after
the migration's done.
Additionally, the `/api/v1/{owner}/{repo}` endpoint was updated: it will
now include the wiki branch name in `GET` requests, and allow changing
the wiki branch via `PATCH`.
Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>
(cherry picked from commit d87c526d2a313fa45093ab49b78bb30322b33298)
2024-01-30 12:18:53 +01:00
settings.wiki_rename_branch_main = Normalize the Wiki branch name
2024-07-12 15:09:13 +02:00
settings.wiki_rename_branch_main_desc = Rename the branch used internally by the Wiki to "%s". This change is permanent and cannot be undone.
[GITEA] Allow changing the repo Wiki branch to main
Previously, the repo wiki was hardcoded to use `master` as its branch,
this change makes it possible to use `main` (or something else, governed
by `[repository].DEFAULT_BRANCH`, a setting that already exists and
defaults to `main`).
The way it is done is that a new column is added to the `repository`
table: `wiki_branch`. The migration will make existing repositories
default to `master`, for compatibility's sake, even if they don't have a
Wiki (because it's easier to do that). Newly created repositories will
default to `[repository].DEFAULT_BRANCH` instead.
The Wiki service was updated to use the branch name stored in the
database, and fall back to the default if it is empty.
Old repositories with Wikis using the older `master` branch will have
the option to do a one-time transition to `main`, available via the
repository settings in the "Danger Zone". This option will only be
available for repositories that have the internal wiki enabled, it is
not empty, and the wiki branch is not `[repository].DEFAULT_BRANCH`.
When migrating a repository with a Wiki, Forgejo will use the same
branch name for the wiki as the source repository did. If that's not the
same as the default, the option to normalize it will be available after
the migration's done.
Additionally, the `/api/v1/{owner}/{repo}` endpoint was updated: it will
now include the wiki branch name in `GET` requests, and allow changing
the wiki branch via `PATCH`.
Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>
(cherry picked from commit d87c526d2a313fa45093ab49b78bb30322b33298)
2024-01-30 12:18:53 +01:00
settings.wiki_rename_branch_main_notices_1 = This operation <strong>CANNOT</strong> be undone.
2024-03-17 17:04:11 +01:00
settings.wiki_rename_branch_main_notices_2 = This will permanently rename the the internal branch of %s's repository wiki. Existing checkouts will need to be updated.
[GITEA] Allow changing the repo Wiki branch to main
Previously, the repo wiki was hardcoded to use `master` as its branch,
this change makes it possible to use `main` (or something else, governed
by `[repository].DEFAULT_BRANCH`, a setting that already exists and
defaults to `main`).
The way it is done is that a new column is added to the `repository`
table: `wiki_branch`. The migration will make existing repositories
default to `master`, for compatibility's sake, even if they don't have a
Wiki (because it's easier to do that). Newly created repositories will
default to `[repository].DEFAULT_BRANCH` instead.
The Wiki service was updated to use the branch name stored in the
database, and fall back to the default if it is empty.
Old repositories with Wikis using the older `master` branch will have
the option to do a one-time transition to `main`, available via the
repository settings in the "Danger Zone". This option will only be
available for repositories that have the internal wiki enabled, it is
not empty, and the wiki branch is not `[repository].DEFAULT_BRANCH`.
When migrating a repository with a Wiki, Forgejo will use the same
branch name for the wiki as the source repository did. If that's not the
same as the default, the option to normalize it will be available after
the migration's done.
Additionally, the `/api/v1/{owner}/{repo}` endpoint was updated: it will
now include the wiki branch name in `GET` requests, and allow changing
the wiki branch via `PATCH`.
Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>
(cherry picked from commit d87c526d2a313fa45093ab49b78bb30322b33298)
2024-01-30 12:18:53 +01:00
settings.wiki_branch_rename_success = The repository wiki's branch name has been successfully normalized.
settings.wiki_branch_rename_failure = Failed to normalize the repository wiki's branch name.
settings.confirm_wiki_branch_rename = Rename the wiki branch
2024-03-17 17:04:11 +01:00
settings.wiki_delete = Delete wiki data
2018-04-19 16:24:31 +02:00
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.
2024-03-17 17:04:11 +01:00
settings.confirm_wiki_delete = Delete wiki data
2018-04-19 16:24:31 +02:00
settings.wiki_deletion_success = The repository wiki data has been deleted.
2024-03-17 17:04:11 +01:00
settings.delete = Delete this repository
2018-04-19 16:24:31 +02:00
settings.delete_desc = Deleting a repository is permanent and cannot be undone.
2015-09-01 12:31:47 +02:00
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
2018-04-19 16:24:31 +02: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 11:39:06 +02:00
settings.update_settings_no_unit = The repository should allow at least some sort of interaction.
2024-03-17 17:04:11 +01:00
settings.confirm_delete = Delete repository
settings.add_collaborator = Add collaborator
2018-04-19 16:24:31 +02:00
settings.add_collaborator_success = The collaborator has been added.
2023-01-08 19:25:28 +01: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 12:01:06 +02:00
settings.add_collaborator_duplicate = The collaborator is already added to this repository.
[MODERATION] User blocking
- Add the ability to block a user via their profile page.
- This will unstar their repositories and visa versa.
- Blocked users cannot create issues or pull requests on your the doer's repositories (mind that this is not the case for organizations).
- Blocked users cannot comment on the doer's opened issues or pull requests.
- Blocked users cannot add reactions to doer's comments.
- Blocked users cannot cause a notification trough mentioning the doer.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/540
(cherry picked from commit 687d852480388897db4d7b0cb397cf7135ab97b1)
(cherry picked from commit 0c32a4fde531018f74e01d9db6520895fcfa10cc)
(cherry picked from commit 1791130e3cb8470b9b39742e0004d5e4c7d1e64d)
(cherry picked from commit 37858b7e8fb6ba6c6ea0ac2562285b3b144efa19)
(cherry picked from commit a3e2bfd7e9eab82cc2c17061f6bb4e386a108c46)
(cherry picked from commit 7009b9fe87696b6182fab65ae82bf5a25cd39971)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
templates/user/profile.tmpl
(cherry picked from commit b2aec3479177e725cfc7cbbb9d94753226928d1c)
(cherry picked from commit e2f1b73752f6bd3f830297d8f4ac438837471226)
[MODERATION] organization blocking a user (#802)
- Resolves #476
- Follow up for: #540
- Ensure that the doer and blocked person cannot follow each other.
- Ensure that the block person cannot watch doer's repositories.
- Add unblock button to the blocked user list.
- Add blocked since information to the blocked user list.
- Add extra testing to moderation code.
- Blocked user will unwatch doer's owned repository upon blocking.
- Add flash messages to let the user know the block/unblock action was successful.
- Add "You haven't blocked any users" message.
- Add organization blocking a user.
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/802
(cherry picked from commit 0505a1042197bd9136b58bc70ec7400a23471585)
(cherry picked from commit 37b4e6ef9b85e97d651cf350c9f3ea272ee8d76a)
(cherry picked from commit c17c121f2cf1f00e2a8d6fd6847705df47d0771e)
[MODERATION] organization blocking a user (#802) (squash)
Changes to adapt to:
6bbccdd177 Improve AJAX link and modal confirm dialog (#25210)
Refs: https://codeberg.org/forgejo/forgejo/pulls/882/files#issuecomment-945962
Refs: https://codeberg.org/forgejo/forgejo/pulls/882#issue-330561
(cherry picked from commit 523635f83cb2a1a4386769b79326088c5c4bbec7)
(cherry picked from commit 4743eaa6a0be0ef47de5b17c211dfe8bad1b7af9)
(cherry picked from commit eff5b43d2e843d5d537756d4fa58a8a010b6b527)
Conflicts: https://codeberg.org/forgejo/forgejo/pulls/1014
routers/web/user/profile.go
(cherry picked from commit 9d359be5ed11237088ccf6328571939af814984e)
(cherry picked from commit b1f3069a22a03734cffbfcd503ce004ba47561b7)
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7e34038363c9ce8e1ef957ec1e22b06)
(cherry picked from commit 6d754db3e5faff93a58fab2867737f81f40f6599)
(cherry picked from commit 2a89ddc0acffa9aea0f02b721934ef9e2b496a88)
(cherry picked from commit 4a147bff7e963ab9dffcfaefa5c2c01c59b4c732)
Conflicts:
routers/api/v1/api.go
templates/swagger/v1_json.tmpl
(cherry picked from commit bb8c33918569f65f25b014f0d7fe6ac20f9036fc)
(cherry picked from commit 5a11569a011b7d0a14391e2b5c07d0af825d7b0e)
(cherry picked from commit 2373c801ee6b84c368b498b16e6ad18650b38f42)
[MODERATION] restore redirect on unblock
ctx.RedirectToFirst(ctx.FormString("redirect_to"), ctx.ContextUser.HomeLink())
was replaced by
ctx.JSONOK()
in 128d77a3a Following up fixes for "Fix inconsistent user profile layout across tabs" (#25739)
thus changing the behavior (nicely spotted by the tests). This
restores it.
(cherry picked from commit 597c243707c3c86e7256faf1e6ba727224554de3)
(cherry picked from commit cfa539e590127b4b953b010fba3dea21c82a1714)
[MODERATION] Add test case (squash)
- Add an test case, to test an property of the function.
(cherry picked from commit 70dadb1916bfef8ba8cbc4e9b042cc8740f45e28)
[MODERATION] Block adding collaborators
- Ensure that the doer and blocked user cannot add each other as
collaborators to repositories.
- The Web UI gets an detailed message of the specific situation, the API
gets an generic Forbidden code.
- Unit tests has been added.
- Integration testing for Web and API has been added.
- This commit doesn't introduce removing each other as collaborators on
the block action, due to the complexity of database calls that needs to
be figured out. That deserves its own commit and test code.
(cherry picked from commit 747be949a1b3cd06f6586512f1af4630e55d7ad4)
[MODERATION] move locale_en-US.ini strings to avoid conflicts
Conflicts:
web_src/css/org.css
web_src/css/user.css
https://codeberg.org/forgejo/forgejo/pulls/1180
(cherry picked from commit e53f955c888ebaafc863a6e463da87f70f5605da)
Conflicts:
services/issue/comments.go
https://codeberg.org/forgejo/forgejo/pulls/1212
(cherry picked from commit b4a454b576eee0c7738b2f7df1acaf5bf7810d12)
Conflicts:
models/forgejo_migrations/migrate.go
options/locale/locale_en-US.ini
services/pull/pull.go
https://codeberg.org/forgejo/forgejo/pulls/1264
[MODERATION] Remove blocked user collaborations with doer
- When the doer blocks an user, who is also an collaborator on an
repository that the doer owns, remove that collaboration.
- Added unit tests.
- Refactor the unit test to be more organized.
(cherry picked from commit ec8701617830152680d69d50d64cb43cc2054a89)
(cherry picked from commit 313e6174d832501c57724ae7a6285194b7b81aab)
[MODERATION] QoL improvements (squash)
- Ensure that organisations cannot be blocked. It currently has no
effect, as all blocked operations cannot be executed from an
organisation standpoint.
- Refactored the API route to make use of the `UserAssignmentAPI`
middleware.
- Make more use of `t.Run` so that the test code is more clear about
which block of code belongs to which test case.
- Added more integration testing (to ensure the organisations cannot be
blocked and some authorization/permission checks).
(cherry picked from commit e9d638d0756ee20b6bf1eb999c988533a5066a68)
[MODERATION] s/{{avatar/{{ctx.AvatarUtils.Avatar/
(cherry picked from commit ce8b30be1327ab98df2ba061dd7e2a278b278c5b)
(cherry picked from commit f911dc402508b04cd5d5fb2f3332c2d640e4556e)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1354
(cherry picked from commit c1b37b7fdaf06ee60da341dff76d703990c08082)
(cherry picked from commit 856a2e09036adf56d987c6eee364c431bc37fb2e)
[MODERATION] Show graceful error on comment creation
- When someone is blocked by the repository owner or issue poster and
try to comment on that issue, they get shown a graceful error.
- Adds integration test.
(cherry picked from commit 490646302e1e3dc3c59c9d75938b4647b6873ce7)
(cherry picked from commit d3d88667cbb928a6ff80658eba8ef0c6c508c9e0)
(cherry picked from commit 6818de13a921753e082b7c3d64c23917cc884e4b)
[MODERATION] Show graceful error on comment creation (squash) typo
(cherry picked from commit 1588d4834a37a744f092f2aeea6c9ef4795d7356)
(cherry picked from commit d510ea52d091503e841d66f2f604348add8b4535)
(cherry picked from commit 8249e93a14f628bb0e89fe3be678e4966539944e)
[MODERATION] Refactor integration testing (squash)
- Motivation for this PR is that I'd noticed that a lot of repeated
calls are happening between the test functions and that certain tests
weren't using helper functions like `GetCSRF`, therefor this refactor of
the integration tests to keep it: clean, small and hopefully more
maintainable and understandable.
- There are now three integration tests: `TestBlockUser`,
`TestBlockUserFromOrganization` and `TestBlockActions` (and has been
moved in that order in the source code).
- `TestBlockUser` is for doing blocking related actions as an user and
`TestBlockUserFromOrganization` as an organisation, even though they
execute the same kind of tests they do not share any database calls or
logic and therefor it currently doesn't make sense to merge them
together (hopefully such oppurtinutiy might be presented in the future).
- `TestBlockActions` now contain all tests for actions that should be
blocked after blocking has happened, most tests now share the same doer
and blocked users and a extra fixture has been added to make this
possible for the comment test.
- Less code, more comments and more re-use between tests.
(cherry picked from commit ffb393213d2f1269aad3c019d039cf60d0fe4b10)
(cherry picked from commit 85505e0f815fede589c272d301c95204f9596985)
(cherry picked from commit 0f3cf17761f6caedb17550f69de96990c2090af1)
[MODERATION] Fix network error (squash)
- Fix network error toast messages on user actions such as follow and
unfollow. This happened because the javascript code now expects an JSON
to be returned, but this wasn't the case due to
cfa539e590127b4953b010fba3dea21c82a1714.
- The integration testing has been adjusted to instead test for the
returned flash cookie.
(cherry picked from commit 112bc25e548d317a4ee00f9efa9068794a733e3b)
(cherry picked from commit 1194fe4899eb39dcb9a2410032ad0cc67a62b92b)
(cherry picked from commit 9abb95a8441e227874fe156095349a3173cc5a81)
[MODERATION] Modernize frontend (squash)
- Unify blocked users list.
- Use the new flex list classes for blocked users list to avoid using
the CSS helper classes and thereby be consistent in the design.
- Fix the modal by using the new modal class.
- Remove the icon in the modal as looks too big in the new design.
- Fix avatar not displaying as it was passing the context where the user
should've been passed.
- Don't use italics for 'Blocked since' text.
- Use namelink template to display the user's name and homelink.
(cherry picked from commit ec935a16a319b14e819ead828d1d9875280d9259)
(cherry picked from commit 67f37c83461aa393c53a799918e9708cb9b89b30)
Conflicts:
models/user/follow.go
models/user/user_test.go
routers/api/v1/user/follower.go
routers/web/shared/user/header.go
routers/web/user/profile.go
templates/swagger/v1_json.tmpl
https://codeberg.org/forgejo/forgejo/pulls/1468
(cherry picked from commit 6a9626839c6342cd2767ea12757ee2f78eaf443b)
Conflicts:
tests/integration/api_nodeinfo_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508#issuecomment-1242385
(cherry picked from commit 7378b251b481ed1e60e816caf8f649e8397ee5fc)
Conflicts:
models/fixtures/watch.yml
models/issues/reaction.go
models/issues/reaction_test.go
routers/api/v1/repo/issue_reaction.go
routers/web/repo/issue.go
services/issue/issue.go
https://codeberg.org/forgejo/forgejo/pulls/1547
(cherry picked from commit c2028930c101223820de0bbafc318e9394c347b8)
(cherry picked from commit d3f9134aeeef784586e8412e8dbba0a8fceb0cd4)
(cherry picked from commit 7afe154c5c40bcc65accdf51c9224b2f7627a684)
(cherry picked from commit 99ac7353eb1e834a77fe42aa89208791cc2364ff)
(cherry picked from commit a9cde00c5c25ea8c427967cb7ab57abb618e44cb)
Conflicts:
services/user/delete.go
https://codeberg.org/forgejo/forgejo/pulls/1736
(cherry picked from commit 008c0cc63d1a3b8eb694bffbf77a7b25c56afd57)
[DEADCODE] add exceptions
(cherry picked from commit 12ddd2b10e3309f6430b0af42855c6af832832ee)
[MODERATION] Remove deadcode (squash)
- Remove deadcode that's no longer used by Forgejo.
(cherry picked from commit 0faeab4fa9b0aa59f86760b24ecbc07815026c82)
[MODERATION] Add repo transfers to blocked functionality (squash)
- When someone gets blocked, remove all pending repository transfers
from the blocked user to the doer.
- Do not allow to start transferring repositories to the doer as blocked user.
- Added unit testing.
- Added integration testing.
(cherry picked from commit 8a3caac33013482ddbee2fa51510c6918ba54466)
(cherry picked from commit a92b4cfeb63b90eb2d90d0feb51cec62e0502d84)
(cherry picked from commit acaaaf07d999974dbe5f9c5e792621c597bfb542)
(cherry picked from commit 735818863c1793aa6f6983afedc4bd3b36026ca5)
(cherry picked from commit f50fa43b32160d0d88eca1dbdca09b5f575fb62b)
(cherry picked from commit e16683643388fb3c60ea478f1419a6af4f4aa283)
(cherry picked from commit 82a0e4a3814a66ce44be6a031bdf08484586c61b)
(cherry picked from commit ff233c19c4a5edcc2b99a6f41a2d19dbe8c08b3b)
(cherry picked from commit 8ad87d215f2b6adb978de77e53ba2bf7ea571430)
[MODERATION] Fix unblock action (squash)
- Pass the whole context instead of only giving pieces.
- This fixes CSRF not correctly being inserted into the unblock buttons.
(cherry picked from commit 2aa51922ba6a0ea2f8644277baa74fc8f34ab95a)
(cherry picked from commit 7ee8db0f018340bc97f125415503e3e5db5f5082)
(cherry picked from commit e4f8b999bcd3b68b3ef7f54f5b17c3ada0308121)
(cherry picked from commit 05aea60b1302bbd3ea574a9c6c34e1005a5d73bf)
(cherry picked from commit dc0d61b012cfaf2385f71e97cda5f220b58b9fa4)
(cherry picked from commit f53fa583de671ff60a0a1d0f3ab8c260e1ba4e1f)
(cherry picked from commit c65b89a58d11b32009c710c2f5e75f0cd3539395)
(cherry picked from commit 69e50b9969db3ab71cefaed520757876a9629a5c)
(cherry picked from commit ec127440b86cb5fcf51799d8bd76a9fd6b9cebcc)
[MODERATION] cope with shared fixtures
* There is one more issue in the fixtures and this breaks some tests
* The users in the shared fixtures were renamed for clarity and that
breaks some tests
(cherry picked from commit 707a4edbdf67d0eb168d7bb430cf85dd8cd63c52)
Conflicts:
modules/indexer/issues/indexer_test.go
https://codeberg.org/forgejo/forgejo/pulls/1508
(cherry picked from commit 82cc044366c749df80ffad44eed2988b8e64211e)
(cherry picked from commit 2776aec7e85850f1d7f01a090a72491550fb9d29)
(cherry picked from commit 1fbde36dc784b5b2cc6193f02ff0d436b0f2a629)
(cherry picked from commit 1293db3c4e5df218501f5add9f9d41101ffcb8aa)
(cherry picked from commit 6476802175bac3ef78dd8f24ff6bebc16f398a78)
(cherry picked from commit 5740f2fc830356acb7929a02fe304008b94a0ca5)
(cherry picked from commit afc12d7b6e9b773fa89718aa79cd95c0e0ce4406)
[MODERATION] Fix transfer confirmation (squash)
- Fix problem caused by the clearer confirmation for dangerous actions commit.
(cherry picked from commit 3488f4a9cb1f7f73103ae0017d644f13ca3ab798)
(cherry picked from commit ed7de91f6ace23a1459bc6552edf719d62c7c941)
(cherry picked from commit 2d97929b9b7b8d979eb12bf0994d3f169d41f7fd)
(cherry picked from commit 50d035a7b058b9c4486c38cd4be0b02a4e1bf4d9)
(cherry picked from commit 0a0c07d78a1dee3489b97ab359bb957e3f7fb94b)
(cherry picked from commit 85e55c4dbc2f513f3d5254dac20915e8c3c22886)
(cherry picked from commit d8282122ad6e8b497de35d1ed89e3093a2cd5ee2)
(cherry picked from commit 3f0b3b6cc582c3d672d371dd9fe1203a56cb88c0)
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
(cherry picked from commit a9eb7ac783b2c16ee3702a88203bf857cb4147fc)
[MODERATION] Purge issues on user deletion (squash) revert shared fixtures workarounds
(cherry picked from commit 7224653a40e32186892e89bfedd49edecf5b8f81)
(cherry picked from commit aa6e8672f9473a9100e7575051dec9eda37709a0)
(cherry picked from commit 58c7947e95648f50237ddcd46b6bd025b224a70f)
(cherry picked from commit f1aacb1851b232082febcd7870a40a56de3855a6)
(cherry picked from commit 0bf174af87f7de9a8d869304f709e2bf41f3dde9)
(cherry picked from commit f9706f4335df3b7688ed60853d917efa72fb464a)
[MODERATION] Prepare moderation for context locale changes (squash)
- Resolves https://codeberg.org/forgejo/forgejo/issues/1711
(cherry picked from commit 2e289baea943dcece88f02d110b03d344308a261)
(cherry picked from commit 97b16bc19ae680db62608d6020b00fe5ac451c60)
[MODERATION] User blocking (squash) do not use shared fixture
It conflicts with a fixtured added in the commit
Fix comment permissions (#28213) (#28216)
(cherry picked from commit ab40799dcab24e9f495d765268b791931da81684)
(cherry picked from commit 996c92cafdb5b33a6d2d05d94038e950d97eb7de)
(cherry picked from commit 259912e3a69071c5ad57871464d0b79f69a8e72c)
Conflicts:
options/locale/locale_en-US.ini
https://codeberg.org/forgejo/forgejo/pulls/1921
(cherry picked from commit 1e82abc032c18015b92c93a7617a5dd06d50bd2d)
(cherry picked from commit a176fee1607d571b25b345184f1c50d403029610)
(cherry picked from commit 0480b76dfeda968849e900da9454a3efd82590fa)
(cherry picked from commit 4bc06b7b3841c74e3d790b1ef635c2b382ca7123)
(cherry picked from commit 073094cf722a927a623408d66537c758d7d64e4c)
(cherry picked from commit ac6201c647a4d3a2cfb2b0303b851a8fe7a29444)
(cherry picked from commit 7e0812674da3fbd1e96bdda820962edad6826fbd)
(cherry picked from commit 068c741e5696957710b3d1c2e18c00be2ffaa278)
Conflicts:
models/repo_transfer.go
models/repo_transfer_test.go
routers/web/user/profile.go
https://codeberg.org/forgejo/forgejo/pulls/2298
2023-08-15 01:07:38 +02:00
settings.add_collaborator_blocked_our = Cannot add the collaborator, because the repository owner has blocked them.
settings.add_collaborator_blocked_them = Cannot add the collaborator, because they have blocked the repository owner.
2018-04-19 16:24:31 +02: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-23 22:08:03 +02: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 14:39:17 +02:00
settings.teams = Teams
2024-03-17 17:04:11 +01:00
settings.add_team = Add team
2019-09-23 22:08:03 +02: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 14:39:17 +02: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-23 22:08:03 +02:00
settings.remove_team_success = The team's access to the repository has been removed.
2024-03-17 17:04:11 +01:00
settings.add_webhook = Add webhook
2018-09-10 16:31:08 +02:00
settings.add_webhook.invalid_channel_name = Webhook channel name cannot be empty and cannot contain only a # character.
2024-03-13 16:49:48 +01:00
settings.add_webhook.invalid_path = Path must not contain a part that is "." or ".." or the empty string. It cannot start or end with a slash.
2024-01-21 18:25:58 +01:00
settings.hooks_desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
2024-03-17 17:04:11 +01:00
settings.webhook_deletion = Remove webhook
2018-04-19 16:24:31 +02:00
settings.webhook_deletion_desc = Removing a webhook deletes its settings and delivery history. Continue?
settings.webhook_deletion_success = The webhook has been removed.
2024-03-17 17:04:11 +01:00
settings.webhook.test_delivery = Test delivery
2018-04-19 16:24:31 +02:00
settings.webhook.test_delivery_desc = Test this webhook with a fake event.
2023-09-25 09:33:00 +02:00
settings.webhook.test_delivery_desc_disabled = To test this webhook with a fake event, activate it.
2015-08-27 17:06:14 +02:00
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
2018-04-19 16:24:31 +02:00
settings.webhook.payload = Content
2015-08-27 17:06:14 +02:00
settings.webhook.body = Body
2022-01-05 22:00:20 +01:00
settings.webhook.replay.description = Replay this webhook.
2023-09-25 09:33:00 +02:00
settings.webhook.replay.description_disabled = To replay this webhook, activate it.
2022-01-05 22:00:20 +01: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.
2024-03-17 17:04:11 +01:00
settings.githooks_desc = Git hooks are powered by Git itself. You can edit hook files below to set up custom operations.
2015-03-19 20:26:04 +01: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.
2024-03-17 17:04:11 +01:00
settings.githook_name = Hook name
settings.githook_content = Hook content
settings.update_githook = Update hook
settings.add_webhook_desc = Forgejo 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 16:24:31 +02:00
settings.payload_url = Target URL
2024-03-17 17:04:11 +01:00
settings.http_method = HTTP method
settings.content_type = POST content type
2014-08-10 00:40:10 +02:00
settings.secret = Secret
2015-08-29 05:49:59 +02:00
settings.slack_username = Username
settings.slack_icon_url = Icon URL
2021-10-21 23:51:03 +02:00
settings.slack_color = Color
2017-08-28 07:06:45 +02:00
settings.discord_username = Username
settings.discord_icon_url = Icon URL
2024-03-17 17:04:11 +01:00
settings.event_desc = Trigger on:
settings.event_push_only = Push events
settings.event_send_everything = All events
settings.event_choose = Custom events…
settings.event_header_repository = Repository events
2015-08-28 17:36:13 +02:00
settings.event_create = Create
2018-04-19 16:24:31 +02:00
settings.event_create_desc = Branch or tag created.
2018-05-16 16:01:55 +02:00
settings.event_delete = Delete
2020-03-06 06:10:48 +01:00
settings.event_delete_desc = Branch or tag deleted.
2018-05-16 16:01:55 +02:00
settings.event_fork = Fork
2020-03-06 06:10:48 +01:00
settings.event_fork_desc = Repository forked.
2022-09-04 21:54:23 +02:00
settings.event_wiki = Wiki
settings.event_wiki_desc = Wiki page created, renamed, edited or deleted.
2018-05-16 16:01:55 +02:00
settings.event_release = Release
2018-05-21 04:28:29 +02:00
settings.event_release_desc = Release published, updated or deleted in a repository.
2015-08-28 17:36:13 +02:00
settings.event_push = Push
2018-04-19 16:24:31 +02:00
settings.event_push_desc = Git push to a repository.
2017-09-03 10:20:24 +02:00
settings.event_repository = Repository
2018-04-19 16:24:31 +02:00
settings.event_repository_desc = Repository created or deleted.
2024-03-17 17:04:11 +01:00
settings.event_header_issue = Issue events
2020-03-06 06:10:48 +01:00
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, or edited.
2024-03-17 17:04:11 +01:00
settings.event_issue_assign = Issue assigned
2020-03-06 06:10:48 +01:00
settings.event_issue_assign_desc = Issue assigned or unassigned.
2024-03-17 17:04:11 +01:00
settings.event_issue_label = Issue labeled
2020-03-06 06:10:48 +01:00
settings.event_issue_label_desc = Issue labels updated or cleared.
2024-03-17 17:04:11 +01:00
settings.event_issue_milestone = Issue milestoned
2020-03-06 06:10:48 +01:00
settings.event_issue_milestone_desc = Issue milestoned or demilestoned.
2024-03-17 17:04:11 +01:00
settings.event_issue_comment = Issue comment
2020-03-06 06:10:48 +01:00
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
2024-03-17 17:04:11 +01:00
settings.event_header_pull_request = Pull request events
settings.event_pull_request = Pull request
2020-03-06 06:10:48 +01:00
settings.event_pull_request_desc = Pull request opened, closed, reopened, or edited.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_assign = Pull request assigned
2020-03-06 06:10:48 +01:00
settings.event_pull_request_assign_desc = Pull request assigned or unassigned.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_label = Pull request labeled
2020-03-06 06:10:48 +01:00
settings.event_pull_request_label_desc = Pull request labels updated or cleared.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_milestone = Pull request milestoned
2020-03-06 06:10:48 +01:00
settings.event_pull_request_milestone_desc = Pull request milestoned or demilestoned.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_comment = Pull request comment
2020-03-06 06:10:48 +01:00
settings.event_pull_request_comment_desc = Pull request comment created, edited, or deleted.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_review = Pull request reviewed
2020-03-06 06:10:48 +01:00
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comment.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_sync = Pull request synchronized
2020-03-06 06:10:48 +01:00
settings.event_pull_request_sync_desc = Pull request synchronized.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_review_request = Pull request review requested
2023-05-25 04:06:27 +02:00
settings.event_pull_request_review_request_desc = Pull request review requested or review request removed.
2024-03-17 17:04:11 +01:00
settings.event_pull_request_approvals = Pull request approvals
settings.event_pull_request_merge = Pull request merge
2024-03-28 21:41:52 +01:00
settings.event_pull_request_enforcement = Enforcement
2022-03-30 10:42:47 +02:00
settings.event_package = Package
settings.event_package_desc = Package created or deleted in a repository.
2020-03-06 06:10:48 +01:00
settings.branch_filter = Branch filter
2021-06-25 16:28:55 +02: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="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for syntax. Examples: <code>master</code>, <code>{master,release*}</code>.
2024-03-17 17:04:11 +01:00
settings.authorization_header = Authorization header
2022-11-03 19:23:20 +01:00
settings.authorization_header_desc = Will be included as authorization header for requests when present. Examples: %s.
2018-08-15 13:55:17 +02:00
settings.active = Active
settings.active_helper = Information about triggered events will be sent to this webhook URL.
2018-04-19 16:24:31 +02:00
settings.add_hook_success = The webhook has been added.
2024-03-17 17:04:11 +01:00
settings.update_webhook = Update webhook
2018-04-19 16:24:31 +02:00
settings.update_hook_success = The webhook has been updated.
2024-03-17 17:04:11 +01:00
settings.delete_webhook = Remove webhook
settings.recent_deliveries = Recent deliveries
settings.hook_type = Hook type
2014-08-24 14:59:47 +02:00
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
2022-01-24 12:36:54 +01:00
settings.add_web_hook_desc = Integrate <a target="_blank" rel="noreferrer" href="%s">%s</a> into your repository.
2024-04-08 17:50:36 +02:00
settings.graphql_url = GraphQL URL
2022-01-24 12:36:54 +01:00
settings.web_hook_name_gitea = Gitea
2024-01-21 18:25:58 +01:00
settings.web_hook_name_forgejo = Forgejo
2022-01-24 12:36:54 +01:00
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
2024-03-23 21:28:30 +01:00
settings.web_hook_name_feishu = Feishu / Lark Suite
settings.web_hook_name_feishu_only = Feishu
settings.web_hook_name_larksuite_only = Lark Suite
2022-01-24 12:36:54 +01:00
settings.web_hook_name_wechatwork = WeCom (Wechat Work)
settings.web_hook_name_packagist = Packagist
2022-01-23 14:46:30 +01:00
settings.packagist_username = Packagist username
settings.packagist_api_token = API token
settings.packagist_package_url = Packagist package URL
2024-03-13 16:49:48 +01:00
settings.web_hook_name_sourcehut_builds = SourceHut Builds
settings.sourcehut_builds.manifest_path = Build manifest path
settings.sourcehut_builds.visibility = Job visibility
settings.sourcehut_builds.secrets = Secrets
settings.sourcehut_builds.secrets_helper = Give the job access to the build secrets (requires the SECRETS:RO grant)
2024-04-08 17:51:39 +02:00
settings.sourcehut_builds.access_token_helper = Access token that has JOBS:RW grant. Generate a <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht token</a> or a <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht token with secrets access</a> on meta.sr.ht.
2024-03-17 17:04:11 +01:00
settings.deploy_keys = Deploy keys
settings.add_deploy_key = Add deploy key
2018-04-19 16:24:31 +02:00
settings.deploy_key_desc = Deploy keys have read-only pull access to the repository.
2024-03-17 17:04:11 +01:00
settings.is_writable = Enable write access
2018-04-19 16:24:31 +02:00
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 16:48:11 +02:00
settings.title = Title
settings.deploy_key_content = Content
2018-04-19 16:24:31 +02: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 00:04:26 +02:00
settings.add_key_success = The deploy key "%s" has been added.
2024-06-11 19:42:33 +02:00
settings.deploy_key_deletion = Remove deploy key
2018-04-19 16:24:31 +02:00
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
2024-03-17 17:04:11 +01:00
settings.protected_branch = Branch protection
settings.protected_branch.save_rule = Save rule
settings.protected_branch.delete_rule = Delete rule
2018-04-19 16:24:31 +02:00
settings.protected_branch_can_push = Allow push?
settings.protected_branch_can_push_yes = You can push
2023-01-08 19:25:28 +01:00
settings.protected_branch_can_push_no = You cannot push
2024-04-06 20:06:39 +02:00
settings.branch_protection = Protection rules for branch "<b>%s</b>"
2024-03-17 17:04:11 +01:00
settings.protect_this_branch = Enable branch protection
2019-12-04 02:08:56 +01:00
settings.protect_this_branch_desc = Prevents deletion and restricts Git pushing and merging to the branch.
2024-03-17 17:04:11 +01:00
settings.protect_disable_push = Disable push
2019-12-04 02:08:56 +01:00
settings.protect_disable_push_desc = No pushing will be allowed to this branch.
2024-03-17 17:04:11 +01:00
settings.protect_enable_push = Enable push
2019-12-04 02:08:56 +01:00
settings.protect_enable_push_desc = Anyone with write access will be allowed to push to this branch (but not force push).
2024-03-17 17:04:11 +01:00
settings.protect_enable_merge = Enable merge
2023-04-29 12:44:52 +02:00
settings.protect_enable_merge_desc = Anyone with write access will be allowed to merge the pull requests into this branch.
2024-03-17 17:04:11 +01:00
settings.protect_whitelist_committers = Whitelist restricted push
2019-12-04 02:08:56 +01:00
settings.protect_whitelist_committers_desc = Only whitelisted users or teams will be allowed to push to this branch (but not force push).
2020-06-27 13:11:35 +02:00
settings.protect_whitelist_deploy_keys = Whitelist deploy keys with write access to push.
2018-04-19 16:24:31 +02:00
settings.protect_whitelist_users = Whitelisted users for pushing:
settings.protect_whitelist_teams = Whitelisted teams for pushing:
2024-03-17 17:04:11 +01:00
settings.protect_merge_whitelist_committers = Enable merge whitelist
2018-04-19 16:24:31 +02:00
settings.protect_merge_whitelist_committers_desc = Allow only whitelisted users or teams to merge pull requests into this branch.
settings.protect_merge_whitelist_users = Whitelisted users for merging:
settings.protect_merge_whitelist_teams = Whitelisted teams for merging:
2024-03-17 17:04:11 +01:00
settings.protect_check_status_contexts = Enable status check
2023-05-17 10:11:13 +02: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 07:39:45 +02:00
settings.protect_check_status_contexts_list = Status checks found in the last week for this repository
2023-05-17 10:11:13 +02: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 12:28:37 +01:00
settings.protect_required_approvals = Required approvals:
2019-12-04 02:08:56 +01:00
settings.protect_required_approvals_desc = Allow only to merge pull request with enough positive reviews.
settings.protect_approvals_whitelist_enabled = Restrict approvals to whitelisted users or teams
2020-01-07 12:23:09 +01:00
settings.protect_approvals_whitelist_enabled_desc = Only reviews from whitelisted users or teams will count to the required approvals. Without approval whitelist, reviews from anyone with write access count to the required approvals.
2018-12-11 12:28:37 +01:00
settings.protect_approvals_whitelist_users = Whitelisted reviewers:
settings.protect_approvals_whitelist_teams = Whitelisted teams for reviews:
2020-01-09 02:47:45 +01: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 08:20:01 +01: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.
2024-03-17 17:04:11 +01:00
settings.require_signed_commits = Require signed commits
2020-06-27 13:11:35 +02:00
settings.require_signed_commits_desc = Reject pushes to this branch if they are unsigned or unverifiable.
2024-03-17 17:04:11 +01:00
settings.protect_branch_name_pattern = Protected branch name pattern
2024-02-25 13:03:09 +01:00
settings.protect_branch_name_pattern_desc = Protected branch name patterns. See <a href="https://github.com/gobwas/glob">the documentation</a> for pattern syntax. Examples: main, release/**
2023-04-29 12:44:52 +02:00
settings.protect_patterns = Patterns
2024-02-27 14:39:59 +01:00
settings.protect_protected_file_patterns = Protected file patterns (separated using semicolon ";"):
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="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns = Unprotected file patterns (separated using semicolon ";"):
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="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
2018-04-19 16:24:31 +02:00
settings.add_protected_branch = Enable protection
settings.delete_protected_branch = Disable protection
2023-04-18 00:04:26 +02: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.
2024-03-17 17:04:11 +01:00
settings.protected_branch_deletion = Delete branch protection
2018-04-19 16:24:31 +02:00
settings.protected_branch_deletion_desc = Disabling branch protection allows users with write permission to push to the branch. Continue?
2020-01-03 18:47:10 +01: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-28 20:30:46 +01: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 03:00:36 +02: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-03-28 21:41:52 +01:00
settings.enforce_on_admins = Enforce this rule for repository admins
settings.enforce_on_admins_desc = Repository admins cannot bypass this rule.
2018-04-19 16:24:31 +02:00
settings.default_branch_desc = Select a default repository branch for pull requests and code commits:
2024-03-17 17:04:11 +01:00
settings.merge_style_desc = Merge styles
settings.default_merge_style_desc = Default merge style
2018-02-16 15:02:40 +01:00
settings.choose_branch = Choose a branch…
2018-04-19 16:24:31 +02:00
settings.no_protected_branch = There are no protected branches.
2018-07-13 22:57:20 +02:00
settings.edit_protected_branch = Edit
2023-01-16 09:00:22 +01:00
settings.protected_branch_required_rule_name = Required rule name
2024-02-25 19:50:46 +01:00
settings.protected_branch_duplicate_rule_name = There is already a rule for this set of branches
2018-12-11 12:28:37 +01:00
settings.protected_branch_required_approvals_min = Required approvals cannot be negative.
2021-06-25 16:28:55 +02:00
settings.tags = Tags
2024-03-17 17:04:11 +01:00
settings.tags.protection = Tag protection
settings.tags.protection.pattern = Tag pattern
2021-06-25 16:28:55 +02:00
settings.tags.protection.allowed = Allowed
settings.tags.protection.allowed.users = Allowed users
settings.tags.protection.allowed.teams = Allowed teams
2024-03-17 17:04:11 +01:00
settings.tags.protection.allowed.noone = No one
settings.tags.protection.create = Add rule
2021-06-25 16:28:55 +02:00
settings.tags.protection.none = There are no protected tags.
2024-01-21 18:25:58 +01: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="https://forgejo.org/docs/latest/user/protection/#protected-tags">protected tags guide</a>.
2024-03-17 17:04:11 +01:00
settings.bot_token = Bot token
2019-04-19 04:45:02 +02:00
settings.chat_id = Chat ID
2023-08-13 16:00:06 +02:00
settings.thread_id = Thread ID
2020-03-28 14:09:55 +01:00
settings.matrix.homeserver_url = Homeserver URL
settings.matrix.room_id = Room ID
2024-03-17 17:04:11 +01:00
settings.matrix.message_type = Message type
2024-04-09 11:06:36 +02:00
settings.matrix.access_token_helper = It is recommended to setup a dedicated Matrix account for this. The access token can be retrieved from the Element web client (in a private/incognito tab) > User menu (top left) > All settings > Help & About > Advanced > Access Token (right below the Homeserver URL). Close the private/incognito tab (logging out would invalidate the token).
settings.matrix.room_id_helper = The Room ID can be retrieved from the Element web client > Room Settings > Advanced > Internal room ID. Example: %s.
2024-03-17 17:04:11 +01:00
settings.archive.button = Archive repo
2024-03-04 11:32:31 +01:00
settings.archive.header = Archive this repo
2023-08-08 17:25:05 +02: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-23 19:58:38 +01:00
settings.archive.success = The repo was successfully archived.
2019-06-05 16:16:06 +02:00
settings.archive.error = An error occurred while trying to archive the repo. See the log for more details.
2019-01-23 19:58:38 +01: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 16:28:55 +02:00
settings.archive.tagsettings_unavailable = Tag settings are not available if the repo is archived.
2024-01-24 03:32:57 +01:00
settings.archive.mirrors_unavailable = Mirrors are not available if the repo is archived.
2024-03-17 17:04:11 +01:00
settings.unarchive.button = Unarchive repo
2023-08-08 17:25:05 +02:00
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 04:22:26 +02:00
settings.update_avatar_success = The repository avatar has been updated.
2019-10-28 19:31:55 +01: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
2024-06-11 19:42:33 +02:00
settings.lfs_lfs_file_no_commits = No commits found for this LFS file
2019-12-12 14:18:07 +01:00
settings.lfs_noattribute = This path does not have the lockable attribute in the default branch
2019-10-28 19:31:55 +01:00
settings.lfs_delete = Delete LFS file with OID %s
2024-02-27 14:39:59 +01:00
settings.lfs_delete_warning = Deleting an LFS file may cause "object does not exist" errors on checkout. Are you sure?
2019-10-28 19:31:55 +01:00
settings.lfs_findpointerfiles = Find pointer files
2019-12-12 14:18:07 +01: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...
2024-06-11 19:42:33 +02:00
settings.lfs_locks_no_locks = No locks
2019-12-12 14:18:07 +01:00
settings.lfs_lock_file_no_exist = Locked file does not exist in default branch
2024-06-11 19:42:33 +02:00
settings.lfs_force_unlock = Force unlock
2019-10-28 19:31:55 +01:00
settings.lfs_pointers.found = Found %d blob pointer(s) - %d associated, %d unassociated (%d missing from store)
2024-06-11 19:42:33 +02:00
settings.lfs_pointers.sha = Blob hash
2019-10-28 19:31:55 +01:00
settings.lfs_pointers.oid = OID
2024-06-11 19:42:33 +02:00
settings.lfs_pointers.inRepo = In repo
2019-10-28 19:31:55 +01:00
settings.lfs_pointers.exists = Exists in store
2024-06-11 19:42:33 +02:00
settings.lfs_pointers.accessible = Accessible to user
2019-10-28 19:31:55 +01:00
settings.lfs_pointers.associateAccessible = Associate accessible %d OIDs
2024-03-26 01:39:15 +01:00
settings.rename_branch_failed_protected = Cannot rename branch %s because it is a protected branch.
2021-10-08 19:03:04 +02: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-02 19:47:33 +02:00
2024-03-17 17:04:11 +01:00
diff.browse_source = Browse source
2014-10-11 03:40:51 +02:00
diff.parent = parent
diff.commit = commit
2019-05-24 09:52:05 +02:00
diff.git-notes = Notes
2024-03-17 17:04:11 +01:00
diff.data_not_available = Diff content is not available
diff.options_button = Diff options
diff.show_diff_stats = Show stats
diff.download_patch = Download patch file
diff.download_diff = Download diff file
diff.show_split_view = Split view
diff.show_unified_view = Unified view
2018-08-14 19:49:33 +02: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 03:40:51 +02:00
diff.stats_desc = <strong> %d changed files</strong> with <strong>%d additions</strong> and <strong>%d deletions</strong>
2020-12-12 02:06:22 +01:00
diff.stats_desc_file = %d changes: %d additions and %d deletions
2014-10-11 03:40:51 +02:00
diff.bin = BIN
2021-03-29 22:44:28 +02:00
diff.bin_not_shown = Binary file not shown.
2024-03-17 17:04:11 +01:00
diff.view_file = View file
2019-09-16 11:03:22 +02: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 17:59:13 +02:00
diff.file_suppressed = File diff suppressed because it is too large
2021-05-04 14:58:49 +02:00
diff.file_suppressed_line_too_long = File diff suppressed because one or more lines are too long
2021-10-15 18:05:33 +02:00
diff.too_many_files = Some files were not shown because too many files have changed in this diff
2024-03-17 17:04:11 +01:00
diff.show_more = Show more
diff.load = Load diff
2021-09-09 22:13:36 +02:00
diff.generated = generated
diff.vendored = vendored
2023-07-15 11:45:34 +02:00
diff.comment.add_line_comment = Add line comment
2018-08-06 06:43:22 +02:00
diff.comment.placeholder = Leave a comment
diff.comment.markdown_info = Styling with markdown is supported.
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
2024-04-17 19:40:16 +02:00
diff.review = Finish review
2018-08-06 06:43:22 +02:00
diff.review.header = Submit review
diff.review.placeholder = Review comment
diff.review.comment = Comment
diff.review.approve = Approve
2023-03-20 22:54:23 +01:00
diff.review.self_reject = Pull request authors can't request changes on their own pull request
2019-01-26 18:20:56 +01:00
diff.review.reject = Request changes
2023-03-20 22:54:23 +01:00
diff.review.self_approve = Pull request authors can't approve their own pull request
2020-06-03 04:40:08 +02:00
diff.committed_by = committed by
2020-10-13 20:50:57 +02:00
diff.protected = Protected
2024-04-30 05:59:06 +02:00
diff.image.side_by_side = Side by side
2021-02-27 18:25:00 +01:00
diff.image.swipe = Swipe
diff.image.overlay = Overlay
2022-01-07 02:18:52 +01:00
diff.has_escaped = This line has hidden Unicode characters
2023-03-30 14:06:10 +02:00
diff.show_file_tree = Show file tree
diff.hide_file_tree = Hide file tree
2014-10-11 03:40:51 +02:00
2018-04-19 16:24:31 +02:00
releases.desc = Track project versions and downloads.
2014-12-10 22:37:54 +01:00
release.releases = Releases
2020-11-03 00:10:22 +01:00
release.detail = Release details
release.tags = Tags
2024-04-30 05:59:06 +02:00
release.new_release = New release
2014-12-10 22:37:54 +01:00
release.draft = Draft
2024-04-30 05:59:06 +02:00
release.prerelease = Pre-release
2014-12-10 22:37:54 +01:00
release.stable = Stable
2021-05-03 19:27:48 +02:00
release.compare = Compare
2014-12-10 22:37:54 +01:00
release.edit = edit
2020-06-05 20:44:54 +02:00
release.ahead.commits = <strong>%d</strong> commits
release.ahead.target = to %s since this release
2023-03-27 15:41:33 +02:00
tag.ahead.target = to %s since this tag
2024-04-30 05:59:06 +02:00
release.source_code = Source code
2018-04-19 16:24:31 +02:00
release.new_subheader = Releases organize project versions.
release.edit_subheader = Releases organize project versions.
2014-12-10 22:37:54 +01:00
release.tag_name = Tag name
release.target = Target
2018-04-19 16:24:31 +02:00
release.tag_helper = Choose an existing tag or create a new tag.
2023-03-10 17:42:38 +01:00
release.tag_helper_new = New tag. This tag will be created from the target.
release.tag_helper_existing = Existing tag.
2023-04-10 17:56:57 +02:00
release.title = Release title
2023-04-07 03:44:52 +02:00
release.title_empty = Title cannot be empty.
2023-04-10 17:56:57 +02:00
release.message = Describe this release
2024-04-30 05:59:06 +02:00
release.prerelease_desc = Mark as pre-release
2018-04-19 16:24:31 +02:00
release.prerelease_helper = Mark this release unsuitable for production use.
2015-11-16 05:52:46 +01:00
release.cancel = Cancel
2024-04-30 05:59:06 +02:00
release.publish = Publish release
release.save_draft = Save draft
release.edit_release = Update release
release.delete_release = Delete release
release.delete_tag = Delete tag
release.deletion = Delete release
2024-01-21 18:25:58 +01:00
release.deletion_desc = Deleting a release only removes it from Forgejo. It will not affect the Git tag, the contents of your repository or its history. Continue?
2017-05-18 03:03:43 +02:00
release.deletion_success = The release has been deleted.
2020-11-03 00:10:22 +01: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 16:24:31 +02: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 16:28:55 +02:00
release.tag_name_protected = The tag name is protected.
2020-11-03 00:10:22 +01:00
release.tag_already_exist = This tag name already exists.
2015-11-16 05:52:46 +01:00
release.downloads = Downloads
2024-04-04 16:16:00 +02:00
release.download_count_one = %s download
release.download_count_few = %s downloads
2021-02-28 20:57:45 +01:00
release.add_tag_msg = Use the title and content of release as tag message.
2024-04-24 17:15:55 +02:00
release.hide_archive_links = Hide automatically generated archives
release.hide_archive_links_helper = Hide automatically generated source code archives for this release. For example, if you are uploading your own.
2024-04-30 05:59:06 +02:00
release.add_tag = Create tag
2022-12-21 22:06:26 +01:00
release.releases_for = Releases for %s
release.tags_for = Tags for %s
2024-03-30 12:15:39 +01:00
release.system_generated = This attachment is automatically generated.
2014-12-10 22:37:54 +01:00
2024-03-17 17:04:11 +01:00
branch.name = Branch name
2023-04-18 00:04:26 +02:00
branch.already_exists = A branch named "%s" already exists.
2017-10-26 02:49:16 +02:00
branch.delete_head = Delete
2024-03-17 17:04:11 +01:00
branch.delete = Delete branch "%s"
branch.delete_html = Delete branch
2023-08-08 17:25:05 +02: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 00:04:26 +02: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.
2017-10-15 21:59:24 +02:00
branch.create_branch = Create branch <strong>%s</strong>
2023-04-18 00:04:26 +02: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 02:49:16 +02:00
branch.deleted_by = Deleted by %s
2023-04-18 00:04:26 +02: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.
2024-03-17 17:04:11 +01:00
branch.restore = Restore branch "%s"
branch.download = Download branch "%s"
branch.rename = Rename branch "%s"
2019-10-15 00:40:17 +02:00
branch.included_desc = This branch is part of the default branch
branch.included = Included
2021-05-24 16:57:46 +02:00
branch.create_new_branch = Create branch from branch:
branch.confirm_create_branch = Create branch
2023-05-05 00:54:38 +02:00
branch.warning_rename_default_branch = You are renaming the default branch.
2023-04-30 17:08:51 +02:00
branch.rename_branch_to = Rename "%s" to:
branch.confirm_rename_branch = Rename branch
2022-02-09 21:28:55 +01:00
branch.create_branch_operation = Create branch
2021-05-24 16:57:46 +02:00
branch.new_branch = Create new branch
2023-04-18 00:04:26 +02:00
branch.new_branch_from = Create new branch from "%s"
2021-10-08 19:03:04 +02:00
branch.renamed = Branch %s was renamed to %s.
2016-12-25 17:19:25 +01:00
2021-02-28 20:57:45 +01:00
tag.create_tag = Create tag <strong>%s</strong>
2022-02-09 21:28:55 +01:00
tag.create_tag_operation = Create tag
tag.confirm_create_tag = Create tag
2023-04-18 00:04:26 +02:00
tag.create_tag_from = Create new tag from "%s"
2022-02-09 21:28:55 +01:00
2023-04-18 00:04:26 +02:00
tag.create_success = Tag "%s" has been created.
2021-02-28 20:57:45 +01:00
2018-04-11 04:51:44 +02:00
topic.manage_topics = Manage Topics
topic.done = Done
2023-01-08 19:25:28 +01:00
topic.count_prompt = You cannot select more than 25 topics
2024-02-27 14:39:59 +01: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 04:51:44 +02:00
2024-07-12 15:09:13 +02:00
find_file.go_to_file = Find a file
2022-06-09 13:15:08 +02:00
find_file.no_matching = No matching file found
2021-03-29 22:44:28 +02: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 10:56:04 +01: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-29 22:44:28 +02:00
2024-02-18 22:02:07 +01: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 00:41:24 +01:00
code_frequency.what = code frequency
2024-02-19 13:47:38 +01:00
contributors.what = contributions
2024-02-24 11:22:51 +01:00
recent_commits.what = recent commits
2024-02-18 22:02:07 +01:00
2014-07-27 05:53:16 +02:00
[org]
2024-03-17 17:04:11 +01:00
org_name_holder = Organization name
org_full_name_holder = Organization full name
2018-04-19 16:24:31 +02:00
org_name_helper = Organization names should be short and memorable.
2024-03-17 17:04:11 +01:00
create_org = Create organization
2024-05-05 20:14:57 +02:00
open_dashboard = Open dashboard
2024-05-20 20:47:35 +02:00
repo_updated = Updated %s
2023-02-18 14:41:31 +01:00
members = Members
2014-08-11 05:11:18 +02:00
teams = Teams
2022-10-11 01:12:03 +02:00
code = Code
2014-08-11 05:11:18 +02:00
lower_members = members
lower_repositories = repositories
2024-03-17 17:04:11 +01:00
create_new_team = New team
create_team = Create team
2014-08-14 08:12:21 +02:00
org_desc = Description
2024-03-17 17:04:11 +01:00
team_name = Team name
2014-08-16 10:21:17 +02:00
team_desc = Description
2018-04-19 16:24:31 +02: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 10:37:14 +01:00
team_access_desc = Repository access
2018-04-19 16:24:31 +02:00
team_permission_desc = Permission
2024-04-30 00:17:18 +02:00
team_unit_desc = Allow access to repository sections
2020-01-17 08:34:37 +01:00
team_unit_disabled = (Disabled)
2024-06-11 19:42:33 +02:00
follow_blocked_user = You cannot follow this organization because this organization has blocked you.
2014-08-14 08:12:21 +02:00
2023-04-18 00:04:26 +02: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 16:24:31 +02:00
form.create_org_not_allowed = You are not allowed to create an organization.
2015-03-26 22:11:47 +01:00
2014-08-14 08:12:21 +02:00
settings = Settings
2018-04-19 16:24:31 +02:00
settings.options = Organization
2024-03-17 17:04:11 +01:00
settings.full_name = Full name
settings.email = Contact email
2014-08-14 08:12:21 +02:00
settings.website = Website
settings.location = Location
2019-09-23 22:08:03 +02:00
settings.permission = Permissions
settings.repoadminchangeteam = Repository admin can add and remove access for teams
2019-02-18 17:00:27 +01:00
settings.visibility = Visibility
settings.visibility.public = Public
2024-03-17 17:04:11 +01:00
settings.visibility.limited = Limited (visible only to authenticated users)
2020-10-06 08:25:43 +02:00
settings.visibility.limited_shortname = Limited
2024-03-17 17:04:11 +01:00
settings.visibility.private = Private (visible only to organization members)
2020-10-06 08:25:43 +02:00
settings.visibility.private_shortname = Private
2019-02-18 17:00:27 +01:00
2024-03-17 17:04:11 +01:00
settings.update_settings = Update settings
2017-05-18 03:03:43 +02:00
settings.update_setting_success = Organization settings have been updated.
2023-07-24 06:17:32 +02: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 16:23:05 +01:00
settings.change_orgname_redirect_prompt = The old name will redirect until it is claimed.
2018-04-19 16:24:31 +02:00
settings.update_avatar_success = The organization's avatar has been updated.
2024-03-17 17:04:11 +01:00
settings.delete = Delete organization
settings.delete_account = Delete this organization
2018-04-19 16:24:31 +02:00
settings.delete_prompt = The organization will be permanently removed. This <strong>CANNOT</strong> be undone!
2024-03-17 17:04:11 +01:00
settings.confirm_delete_account = Confirm deletion
settings.delete_org_title = Delete organization
2018-04-19 16:24:31 +02:00
settings.delete_org_desc = This organization will be deleted permanently. Continue?
2017-07-12 04:25:45 +02:00
settings.hooks_desc = Add webhooks which will be triggered for <strong>all repositories</strong> under this organization.
2014-07-27 05:53:16 +02: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 06:14:46 +02:00
settings.labels_desc = Add labels which can be used on issues for <strong>all repositories</strong> under this organization.
2024-03-17 17:04:11 +01:00
members.membership_visibility = Membership visibility:
2018-04-19 16:24:31 +02:00
members.public = Visible
2024-04-30 05:59:06 +02:00
members.public_helper = Make hidden
2018-04-19 16:24:31 +02:00
members.private = Hidden
2024-04-30 05:59:06 +02:00
members.private_helper = Make visible
2024-03-17 17:04:11 +01:00
members.member_role = Member role:
2014-08-15 12:29:41 +02:00
members.owner = Owner
members.member = Member
members.remove = Remove
2021-08-27 04:57:40 +02:00
members.remove.detail = Remove %[1]s from %[2]s?
2014-08-16 10:21:17 +02:00
members.leave = Leave
2021-08-27 04:57:40 +02:00
members.leave.detail = Leave %s?
2015-11-22 07:32:09 +01:00
members.invite_desc = Add a new member to %s:
2024-03-17 17:04:11 +01:00
members.invite_now = Invite now
2014-08-15 12:29:41 +02:00
2014-08-16 10:21:17 +02:00
teams.join = Join
teams.leave = Leave
2021-08-27 04:57:40 +02:00
teams.leave.detail = Leave %s?
2019-11-20 12:27:49 +01: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.
2024-03-17 17:04:11 +01:00
teams.none_access = No access
2023-02-01 09:14:40 +01:00
teams.none_access_helper = Members cannot view or do any other action on this unit. It has no effect for public repositories.
2024-03-17 17:04:11 +01:00
teams.general_access = General access
2022-01-05 04:37:00 +01:00
teams.general_access_helper = Members permissions will be decided by below permission table.
teams.read_access = Read
2018-04-19 16:24:31 +02:00
teams.read_access_helper = Members can view and clone team repositories.
2022-01-05 04:37:00 +01:00
teams.write_access = Write
2018-04-19 16:24:31 +02:00
teams.write_access_helper = Members can read and push to team repositories.
2024-03-17 17:04:11 +01:00
teams.admin_access = Administrator access
2018-04-19 16:24:31 +02:00
teams.admin_access_helper = Members can pull and push to team repositories and add collaborators to them.
2014-08-23 14:24:02 +02:00
teams.no_desc = This team has no description
teams.settings = Settings
2018-04-19 16:24:31 +02:00
teams.owners_permission_desc = Owners have full access to <strong>all repositories</strong> and have <strong>administrator access</strong> to the organization.
2024-03-17 17:04:11 +01:00
teams.members = Team members
teams.update_settings = Update settings
teams.delete_team = Delete team
teams.add_team_member = Add team member
2022-10-19 14:40:28 +02:00
teams.invite_team_member = Invite to %s
2024-03-17 17:04:11 +01:00
teams.invite_team_member.list = Pending invitations
teams.delete_team_title = Delete team
2018-04-19 16:24:31 +02:00
teams.delete_team_desc = Deleting a team revokes repository access from its members. Continue?
2017-05-18 03:03:43 +02:00
teams.delete_team_success = The team has been deleted.
2018-04-19 16:24:31 +02: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 12:27:49 +01:00
teams.create_repo_permission_desc = Additionally, this team grants <strong>Create repository</strong> permission: members can create new repositories in organization.
2024-03-17 17:04:11 +01:00
teams.repositories = Team repositories
2019-11-09 01:39:37 +01: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.
2024-02-25 13:03:09 +01:00
teams.add_nonexistent_repo = The repository you're trying to add doesn't exist, please create it first.
2018-08-19 20:49:19 +02:00
teams.add_duplicate_users = User is already a team member.
2018-12-09 07:42:11 +01:00
teams.repos.none = No repositories could be accessed by this team.
teams.members.none = No members on this team.
2019-11-06 10:37:14 +01: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 17:25:05 +02:00
teams.invite.title = You have been invited to join team <strong>%s</strong> in organization <strong>%s</strong>.
2022-10-19 14:40:28 +02:00
teams.invite.by = Invited by %s
teams.invite.description = Please click the button below to join the team.
2014-08-16 10:21:17 +02:00
2014-08-28 16:29:00 +02:00
[admin]
dashboard = Dashboard
2024-03-17 17:04:11 +01:00
self_check = Self check
identity_access = Identity & access
users = User accounts
2014-08-28 16:29:00 +02:00
organizations = Organizations
2024-03-17 17:04:11 +01:00
assets = Code assets
2014-08-28 16:29:00 +02:00
repositories = Repositories
2021-01-15 00:24:03 +01:00
hooks = Webhooks
2023-07-24 03:05:16 +02:00
integrations = Integrations
2024-03-17 17:04:11 +01:00
authentication = Authentication sources
emails = User emails
2014-08-28 16:29:00 +02:00
config = Configuration
2024-03-17 17:04:11 +01:00
notices = System notices
2024-02-24 14:12:17 +01:00
config_summary = Summary
config_settings = Settings
2014-08-28 16:29:00 +02:00
monitor = Monitoring
2015-09-12 02:42:26 +02:00
first_page = First
last_page = Last
2015-09-10 21:45:03 +02:00
total = Total: %d
2024-03-17 17:04:11 +01:00
settings = Admin settings
2014-08-28 16:29:00 +02:00
2024-01-21 18:25:58 +01:00
dashboard.new_version_hint = Forgejo %s is now available, you are running %s. Check <a target="_blank" rel="noreferrer" href="https://forgejo.org/news">the blog</a> for more details.
2018-04-19 16:24:31 +02:00
dashboard.statistic = Summary
2024-03-06 18:21:19 +01:00
dashboard.operations = Maintenance operations
dashboard.system_status = System status
2014-08-28 16:29:00 +02:00
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
dashboard.operation_run = Run
2017-05-18 03:03:43 +02:00
dashboard.clean_unbind_oauth = Clean unbound OAuth connections
dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted.
2020-07-05 21:38:03 +02:00
dashboard.task.started = Started Task: %[1]s
dashboard.task.process = Task: %[1]s
2023-08-08 17:25:05 +02:00
dashboard.task.cancelled = Task: %[1]s canceled: %[3]s
2020-07-05 21:38:03 +02: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 01:31:38 +02:00
dashboard.cron.started = Started Cron: %[1]s
dashboard.cron.process = Cron: %[1]s
2023-08-08 17:25:05 +02:00
dashboard.cron.cancelled = Cron: %[1]s canceled: %[3]s
2020-05-17 01:31:38 +02: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.
2024-02-25 13:03:09 +01:00
dashboard.delete_repo_archives = Delete all repositories' archives (ZIP, TAR.GZ, etc..)
2020-05-17 01:31:38 +02:00
dashboard.delete_repo_archives.started = Delete all repository archives task started.
2018-04-19 16:24:31 +02:00
dashboard.delete_missing_repos = Delete all repositories missing their Git files
2020-05-17 01:31:38 +02:00
dashboard.delete_missing_repos.started = Delete all repositories missing their Git files task started.
2019-06-02 08:40:12 +02:00
dashboard.delete_generated_repository_avatars = Delete generated repository avatars
2024-03-17 17:04:11 +01:00
dashboard.sync_repo_branches = Sync missed branches from Git data to database
dashboard.sync_repo_tags = Sync tags from Git data to database
dashboard.update_mirrors = Update mirrors
2020-05-17 01:31:38 +02:00
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 16:24:31 +02:00
dashboard.git_gc_repos = Garbage collect all repositories
2024-02-27 14:39:59 +01:00
dashboard.resync_all_sshkeys = Update the ".ssh/authorized_keys" file with Forgejo SSH keys.
dashboard.resync_all_sshprincipals = Update the ".ssh/authorized_principals" file with Forgejo SSH principals.
dashboard.resync_all_hooks = Resynchronize pre-receive, update and post-receive hooks of all repositories
2017-07-12 04:25:45 +02:00
dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for which records exist
2017-05-10 15:10:18 +02:00
dashboard.sync_external_users = Synchronize external user data
2021-01-26 22:02:42 +01:00
dashboard.cleanup_hook_task_table = Cleanup hook_task table
2022-03-30 10:42:47 +02:00
dashboard.cleanup_packages = Cleanup expired packages
2024-02-22 18:33:22 +01:00
dashboard.cleanup_actions = Cleanup expired logs and artifacts from actions
2024-03-06 18:21:19 +01: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
dashboard.memory_allocate_times = Memory allocations
dashboard.memory_free_times = Memory frees
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
dashboard.gc_metadata_obtained = GC metadata obtained
dashboard.other_system_allocation_obtained = Other system allocation obtained
dashboard.next_gc_recycle = Next GC recycle
dashboard.last_gc_time = Time since last GC
dashboard.total_gc_pause = Total GC pause
dashboard.last_gc_pause = Last GC pause
dashboard.gc_times = GC times
2024-04-30 05:59:06 +02: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 08:43:53 +01:00
dashboard.update_checker = Update checker
2022-03-28 14:54:59 +02:00
dashboard.delete_old_system_notices = Delete all old system notices from database
2023-01-16 20:50:53 +01:00
dashboard.gc_lfs = Garbage collect LFS meta objects
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 02:45:19 +01:00
dashboard.stop_zombie_tasks = Stop zombie tasks
dashboard.stop_endless_tasks = Stop endless tasks
dashboard.cancel_abandoned_jobs = Cancel abandoned jobs
2023-08-24 05:06:51 +02:00
dashboard.start_schedule_tasks = Start schedule tasks
2024-04-30 05:59:06 +02:00
dashboard.sync_branch.started = Branch sync started
dashboard.sync_tag.started = Tag sync started
2023-08-17 16:05:17 +02:00
dashboard.rebuild_issue_indexer = Rebuild issue indexer
2014-08-28 16:29:00 +02:00
2024-03-17 17:04:11 +01:00
users.user_manage_panel = Manage user accounts
2018-04-19 16:24:31 +02:00
users.new_account = Create User Account
users.name = Username
2024-03-17 17:04:11 +01:00
users.full_name = Full name
2014-08-29 09:32:52 +02:00
users.activated = Activated
users.admin = Admin
2020-01-13 18:33:46 +01:00
users.restricted = Restricted
2023-09-14 08:53:36 +02:00
users.reserved = Reserved
users.bot = Bot
users.remote = Remote
2020-08-20 03:53:49 +02:00
users.2fa = 2FA
2014-08-29 09:32:52 +02:00
users.repos = Repos
users.created = Created
2024-03-17 17:04:11 +01:00
users.last_login = Last sign-in
users.never_login = Never signed in
2024-04-30 05:59:06 +02:00
users.send_register_notify = Notify about registration via email
2023-04-18 00:04:26 +02:00
users.new_success = The user account "%s" has been created.
2014-08-29 09:32:52 +02:00
users.edit = Edit
2024-03-17 17:04:11 +01:00
users.auth_source = Authentication source
2014-08-29 09:32:52 +02:00
users.local = Local
2024-03-17 17:04:11 +01:00
users.auth_login_name = Authentication sign-in name
2018-04-19 16:24:31 +02:00
users.password_helper = Leave the password empty to keep it unchanged.
users.update_profile_success = The user account has been updated.
2024-03-17 17:04:11 +01:00
users.edit_account = Edit user account
users.max_repo_creation = Maximum number of repositories
2018-04-19 16:24:31 +02:00
users.max_repo_creation_desc = (Enter -1 to use the global default limit.)
users.is_activated = User Account Is Activated
2024-03-10 15:10:29 +01:00
users.prohibit_login = Disable sign-in
2024-03-17 17:04:11 +01:00
users.is_admin = Is administrator
users.is_restricted = Is restricted
users.allow_git_hook = Can create Git hooks
users.allow_git_hook_tooltip = Git hooks are executed as the OS user running Forgejo and will have the same level of host access. As a result, users with this special Git hook privilege can access and modify all Forgejo repositories as well as the database used by Forgejo. Consequently they are also able to gain Forgejo administrator privileges.
users.allow_import_local = Can import local repositories
users.allow_create_organization = Can create organizations
users.update_profile = Update user account
users.delete_account = Delete user account
2024-02-25 13:03:09 +01:00
users.cannot_delete_self = You cannot delete yourself
2018-04-19 16:24:31 +02: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.
2024-04-06 20:06:39 +02:00
users.purge = Purge user
2023-08-26 23:10:42 +02:00
users.purge_help = Forcibly delete user and any repositories, organizations, and packages owned by the user. All comments and issues posted by this user will also be deleted.
2023-03-23 18:27:03 +01:00
users.still_own_packages = This user still owns one or more packages, delete these packages first.
2018-04-19 16:24:31 +02:00
users.deletion_success = The user account has been deleted.
2021-01-05 14:54:48 +01:00
users.reset_2fa = Reset 2FA
2021-10-12 20:11:35 +02: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
2024-04-06 20:06:39 +02:00
users.list_status_filter.not_admin = Not admin
2021-10-12 20:11:35 +02:00
users.list_status_filter.is_restricted = Restricted
2024-04-06 20:06:39 +02:00
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
users.details = User details
2014-08-29 09:32:52 +02:00
2024-03-17 17:04:11 +01:00
emails.email_manage_panel = Manage user emails
2020-03-02 19:25:36 +01:00
emails.primary = Primary
emails.activated = Activated
emails.filter_sort.email = Email
emails.filter_sort.email_reverse = Email (reverse)
2024-03-17 17:04:11 +01:00
emails.filter_sort.name = Username
emails.filter_sort.name_reverse = Username (reverse)
2020-03-02 19:25:36 +01:00
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-25 19:21:23 +02:00
emails.change_email_text = Are you sure you want to update this email address?
2020-03-02 19:25:36 +01:00
2024-03-17 17:04:11 +01:00
orgs.org_manage_panel = Manage organizations
2014-08-29 14:50:43 +02:00
orgs.name = Name
orgs.teams = Teams
orgs.members = Members
2024-03-17 17:04:11 +01:00
orgs.new_orga = New organization
2014-08-29 14:50:43 +02:00
2024-03-17 17:04:11 +01:00
repos.repo_manage_panel = Manage repositories
repos.unadopted = Unadopted repositories
2024-07-12 15:09:13 +02:00
repos.unadopted.no_more = No unadopted repositories found.
2014-08-29 14:50:43 +02:00
repos.owner = Owner
repos.name = Name
repos.private = Private
repos.issues = Issues
2017-04-11 15:30:15 +02:00
repos.size = Size
2024-06-11 19:42:33 +02:00
repos.lfs_size = LFS size
2014-08-29 14:50:43 +02:00
2024-03-17 17:04:11 +01:00
packages.package_manage_panel = Manage packages
2024-06-11 19:42:33 +02:00
packages.total_size = Total size: %s
packages.unreferenced_size = Unreferenced size: %s
2023-08-08 02:46:10 +02:00
packages.cleanup = Clean up expired data
2023-11-20 14:41:10 +01:00
packages.cleanup.success = Cleaned up expired data successfully
2022-03-30 10:42:47 +02: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
2024-03-06 18:21:19 +01:00
defaulthooks = Default webhooks
2024-01-21 18:25:58 +01:00
defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo 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="https://forgejo.org/docs/latest/user/webhooks/">webhooks guide</a>.
2021-01-15 00:24:03 +01:00
defaulthooks.add_webhook = Add Default Webhook
defaulthooks.update_webhook = Update Default Webhook
2019-03-19 03:33:20 +01:00
2024-03-06 18:21:19 +01:00
systemhooks = System webhooks
2024-01-21 18:25:58 +01:00
systemhooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo 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="https://forgejo.org/docs/latest/user/webhooks/">webhooks guide</a>.
2020-03-08 23:08:05 +01:00
systemhooks.add_webhook = Add System Webhook
systemhooks.update_webhook = Update System Webhook
2024-03-17 17:04:11 +01:00
auths.auth_manage_panel = Manage authentication sources
auths.new = Add authentication source
2014-08-29 14:50:43 +02:00
auths.name = Name
auths.type = Type
auths.enabled = Enabled
2024-03-17 17:04:11 +01:00
auths.syncenabled = Enable user synchronization
2014-08-29 14:50:43 +02:00
auths.updated = Updated
2024-03-17 17:04:11 +01:00
auths.auth_type = Authentication type
auths.auth_name = Authentication name
auths.security_protocol = Security protocol
2014-08-29 14:50:43 +02:00
auths.domain = Domain
auths.host = Host
auths.port = Port
2015-08-13 01:58:27 +02:00
auths.bind_dn = Bind DN
2024-03-17 17:04:11 +01:00
auths.bind_password = Bind password
auths.user_base = User search base
2015-09-05 05:39:23 +02:00
auths.user_dn = User DN
2024-03-17 17:04:11 +01:00
auths.attribute_username = Username attribute
2024-01-21 18:25:58 +01:00
auths.attribute_username_placeholder = Leave empty to use the username entered in Forgejo.
2024-03-17 17:04:11 +01:00
auths.attribute_name = First name attribute
auths.attribute_surname = Surname attribute
auths.attribute_mail = Email attribute
auths.attribute_ssh_public_key = Public SSH key attribute
auths.attribute_avatar = Avatar attribute
2024-03-24 22:30:08 +01:00
auths.attributes_in_bind = Fetch attributes in bind DN context
2024-04-27 00:38:58 +02:00
auths.default_domain_name = Default domain name used for the email address
2020-01-20 04:47:39 +01:00
auths.allow_deactivate_all = Allow an empty search result to deactivate all users
2024-03-17 17:04:11 +01:00
auths.use_paged_search = Use paged search
auths.search_page_size = Page size
auths.filter = User filter
auths.admin_filter = Admin filter
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 15:24:58 +01:00
auths.verify_group_membership = Verify group membership in LDAP (leave the filter empty to skip)
2024-03-17 17:04:11 +01: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 15:24:58 +01: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
2024-03-17 17:04:11 +01:00
auths.ms_ad_sa = MS AD search attributes
2024-03-10 15:10:29 +01:00
auths.smtp_auth = SMTP authentication type
auths.smtphost = SMTP host
auths.smtpport = SMTP port
2024-03-17 17:04:11 +01:00
auths.allowed_domains = Allowed domains
2024-02-27 14:39:59 +01:00
auths.allowed_domains_helper = Leave empty to allow all domains. Separate multiple domains with a comma (",").
2024-03-10 15:10:29 +01:00
auths.skip_tls_verify = Skip TLS verification
2021-08-11 22:42:58 +02:00
auths.force_smtps = Force SMTPS
2021-08-14 16:10:39 +02: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.)
2024-03-17 17:04:11 +01:00
auths.helo_hostname = HELO hostname
2021-08-11 22:42:58 +02:00
auths.helo_hostname_helper = Hostname sent with HELO. Leave blank to send current hostname.
auths.disable_helo = Disable HELO
2024-03-17 17:04:11 +01:00
auths.pam_service_name = PAM service name
auths.pam_email_domain = PAM email domain (optional)
auths.oauth2_provider = OAuth2 provider
2020-12-28 03:35:55 +01:00
auths.oauth2_icon_url = Icon URL
2017-02-22 08:14:37 +01:00
auths.oauth2_clientID = Client ID (Key)
auths.oauth2_clientSecret = Client Secret
2017-05-01 15:26:53 +02:00
auths.openIdConnectAutoDiscoveryURL = OpenID Connect Auto Discovery URL
2018-04-19 16:24:31 +02:00
auths.oauth2_use_custom_url = Use Custom URLs Instead of Default URLs
2017-05-01 15:26:53 +02:00
auths.oauth2_tokenURL = Token URL
auths.oauth2_authURL = Authorize URL
auths.oauth2_profileURL = Profile URL
auths.oauth2_emailURL = Email URL
2021-09-10 18:37:57 +02: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 03:11:08 +02:00
auths.oauth2_tenant = Tenant
2024-03-17 17:04:11 +01:00
auths.oauth2_scopes = Additional scopes
auths.oauth2_required_claim_name = Required claim name
2021-12-14 09:37:11 +01:00
auths.oauth2_required_claim_name_helper = Set this name to restrict login from this source to users with a claim with this name
2024-03-17 17:04:11 +01:00
auths.oauth2_required_claim_value = Required claim value
2021-12-14 09:37:11 +01:00
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-16 20:01:14 +01:00
auths.oauth2_group_claim_name = Claim name providing group names for this source. (Optional)
2024-03-17 17:04:11 +01:00
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)
auths.oauth2_map_group_to_team = Map claimed groups to organization teams. (Optional - requires claim name above)
2023-02-08 07:44:42 +01:00
auths.oauth2_map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding group.
2024-03-17 17:04:11 +01:00
auths.enable_auto_register = Enable auto registration
2019-11-23 00:33:31 +01: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 14:50:43 +02:00
auths.tips = Tips
2024-03-17 17:04:11 +01:00
auths.tips.gmail_settings = Gmail settings:
auths.tips.oauth2.general = OAuth2 authentication
2023-06-15 03:12:50 +02:00
auths.tips.oauth2.general.tip = When registering a new OAuth2 authentication, the callback/redirect URL should be:
2024-03-17 17:04:11 +01:00
auths.tip.oauth2_provider = OAuth2 provider
2024-02-27 14:39:59 +01:00
auths.tip.bitbucket = Register a new OAuth consumer on https://bitbucket.org/account/user/<your username>/oauth-consumers/new and add the permission "Account" - "Read"
2020-03-03 04:11:45 +01:00
auths.tip.nextcloud = Register a new OAuth consumer on your instance using the following menu "Settings -> Security -> OAuth 2.0 client"
2017-10-21 15:30:21 +02:00
auths.tip.dropbox = Create a new application at https://www.dropbox.com/developers/apps
2017-11-01 17:03:10 +01:00
auths.tip.facebook = Register a new application at https://developers.facebook.com/apps and add the product "Facebook Login"
2017-05-01 15:26:53 +02:00
auths.tip.github = Register a new OAuth application on https://github.com/settings/applications/new
2024-03-21 16:48:13 +01:00
auths.tip.gitlab_new = Register a new application on https://gitlab.com/-/profile/applications
2018-04-19 16:24:31 +02:00
auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at https://console.developers.google.com/
2017-05-01 15:26:53 +02:00
auths.tip.openid_connect = Use the OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) to specify the endpoints
2018-04-19 16:24:31 +02:00
auths.tip.twitter = Go to https://dev.twitter.com/apps, create an application and ensure that the “Allow this application to be used to Sign in with Twitter” option is enabled
2019-01-13 20:06:22 +01:00
auths.tip.discord = Register a new application on https://discordapp.com/developers/applications/me
2024-03-30 01:56:25 +01:00
auths.tip.gitea = Register a new OAuth2 application. Guide can be found at https://forgejo.org/docs/latest/user/oauth2-provider
2020-03-04 23:08:52 +01:00
auths.tip.yandex = Create a new application at https://oauth.yandex.com/client/new. 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-25 19:21:49 +01:00
auths.tip.mastodon = Input a custom instance URL for the mastodon instance you want to authenticate with (or use the default one)
2024-03-17 17:04:11 +01:00
auths.edit = Edit authentication source
auths.activated = This authentication source is activated
2023-04-18 00:04:26 +02:00
auths.new_success = The authentication "%s" has been added.
2018-04-19 16:24:31 +02:00
auths.update_success = The authentication source has been updated.
2024-03-17 17:04:11 +01:00
auths.update = Update authentication source
auths.delete = Delete authentication source
auths.delete_auth_title = Delete authentication source
2018-04-19 16:24:31 +02: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 00:04:26 +02:00
auths.login_source_exist = The authentication source "%s" already exists.
2019-11-23 00:33:31 +01:00
auths.login_source_of_type_exist = An authentication source of this type already exists.
2023-03-10 07:14:43 +01: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 14:50:43 +02:00
2024-03-06 18:21:19 +01:00
config.server_config = Server configuration
2024-03-10 15:10:29 +01:00
config.app_name = Instance title
2024-06-07 19:12:48 +02:00
config.app_slogan = Instance slogan
2024-03-10 15:10:29 +01:00
config.app_ver = Forgejo version
config.app_url = Base URL
config.custom_conf = Configuration file path
config.custom_file_root_path = Custom file root path
config.domain = Server domain
config.offline_mode = Local mode
config.disable_router_log = Disable router log
config.run_user = User to run as
config.run_mode = Run mode
config.git_version = Git version
config.app_data_path = App data path
config.repo_root_path = Repository root path
config.lfs_root_path = LFS root path
config.log_file_root_path = Log path
config.script_type = Script type
2024-03-30 16:54:04 +01:00
config.reverse_auth_user = Reverse proxy authentication user
2016-02-28 02:48:39 +01:00
2024-03-06 18:21:19 +01:00
config.ssh_config = SSH configuration
2016-02-28 02:48:39 +01:00
config.ssh_enabled = Enabled
2024-03-10 15:10:29 +01:00
config.ssh_start_builtin_server = Use built-in server
config.ssh_domain = SSH server domain
2016-02-28 02:48:39 +01:00
config.ssh_port = Port
2024-03-10 15:10:29 +01:00
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
2016-02-28 02:48:39 +01:00
2024-03-06 18:21:19 +01:00
config.lfs_config = LFS configuration
2019-06-16 20:24:49 +02:00
config.lfs_enabled = Enabled
2024-03-06 18:21:19 +01:00
config.lfs_content_path = LFS content path
2024-03-10 15:10:29 +01:00
config.lfs_http_auth_expiry = LFS HTTP auth expiration time
2019-06-16 20:24:49 +02:00
2024-03-06 18:21:19 +01:00
config.db_config = Database configuration
2014-08-30 14:49:51 +02:00
config.db_type = Type
config.db_host = Host
config.db_name = Name
2018-04-19 16:24:31 +02:00
config.db_user = Username
2020-01-20 16:45:14 +01:00
config.db_schema = Schema
2018-04-19 16:24:31 +02:00
config.db_ssl_mode = SSL
2014-08-30 14:49:51 +02:00
config.db_path = Path
2016-08-10 20:01:42 +02:00
2024-03-06 18:21:19 +01:00
config.service_config = Service configuration
config.register_email_confirm = Require email confirmation to register
config.disable_register = Disable self-registration
2024-03-17 17:04:11 +01:00
config.allow_only_internal_registration = Allow registration only through Forgejo itself
2024-06-02 15:06:56 +02:00
config.allow_only_external_registration = Allow registration only through external services
2024-03-06 18:21:19 +01:00
config.enable_openid_signup = Enable OpenID self-registration
config.enable_openid_signin = Enable OpenID sign-in
config.show_registration_button = Show register button
config.require_sign_in_view = Require to sign-in to view content
config.mail_notify = Enable email notifications
2018-04-19 16:24:31 +02:00
config.enable_captcha = Enable CAPTCHA
2024-03-06 18:21:19 +01:00
config.active_code_lives = Activation code expiration time
config.reset_password_code_lives = Recovery code expiration time
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
2024-03-19 15:53:44 +01:00
config.allow_dots_in_usernames = Allow users to use dots in their usernames. Doesn't affect existing accounts.
2024-03-06 18:21:19 +01:00
config.default_allow_only_contributors_to_track_time = Let only contributors track time
config.no_reply_address = Hidden email domain
config.default_visibility_organization = Default visibility of new organizations
config.default_enable_dependencies = Enable issue dependencies by default
config.webhook_config = Webhook configuration
config.queue_length = Queue length
config.deliver_timeout = Deliver timeout
config.skip_tls_verify = Skip TLS verification
config.mailer_config = Mailer configuration
2014-08-30 14:49:51 +02:00
config.mailer_enabled = Enabled
2022-08-02 18:43:27 +02:00
config.mailer_enable_helo = Enable HELO
2014-08-30 14:49:51 +02:00
config.mailer_name = Name
2022-08-02 18:43:27 +02:00
config.mailer_protocol = Protocol
2024-03-17 17:04:11 +01:00
config.mailer_smtp_addr = SMTP host
config.mailer_smtp_port = SMTP port
2014-08-30 14:49:51 +02:00
config.mailer_user = User
2017-10-26 10:47:16 +02:00
config.mailer_use_sendmail = Use Sendmail
2024-03-17 17:04:11 +01:00
config.mailer_sendmail_path = Sendmail path
2018-04-19 16:24:31 +02:00
config.mailer_sendmail_args = Extra Arguments to Sendmail
2024-03-17 17:04:11 +01:00
config.mailer_sendmail_timeout = Sendmail timeout
2022-08-02 18:43:27 +02:00
config.mailer_use_dummy = Dummy
2020-08-11 04:38:30 +02:00
config.test_email_placeholder = Email (e.g. test@example.com)
2024-03-17 17:04:11 +01:00
config.send_test_mail = Send test email
2023-04-28 03:48:41 +02:00
config.send_test_mail_submit = Send
2024-03-17 17:04:11 +01:00
config.test_mail_failed = Failed to send a test email to "%s": %v
config.test_mail_sent = A test email has been sent to "%s".
2016-08-10 20:01:42 +02:00
2024-03-17 17:04:11 +01:00
config.oauth_config = OAuth configuration
2014-08-30 14:49:51 +02:00
config.oauth_enabled = Enabled
2016-08-10 20:01:42 +02:00
2024-03-06 18:21:19 +01:00
config.cache_config = Cache configuration
config.cache_adapter = Cache adapter
config.cache_interval = Cache interval
2024-03-17 17:04:11 +01:00
config.cache_conn = Cache connection
config.cache_item_ttl = Cache item TTL
2016-08-10 20:01:42 +02:00
2024-06-17 21:22:39 +02: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.
2024-03-06 18:21:19 +01: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 lifetime
config.https_only = HTTPS only
config.cookie_life_time = Cookie lifetime
config.picture_config = Picture and avatar configuration
config.picture_service = Picture service
2014-08-30 14:49:51 +02:00
config.disable_gravatar = Disable Gravatar
2024-03-06 18:21:19 +01:00
config.enable_federated_avatar = Enable federated avatars
2024-02-24 14:12:17 +01: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.
2024-03-06 18:21:19 +01:00
config.git_config = Git configuration
config.git_disable_diff_highlight = Disable diff syntax highlighting
config.git_max_diff_lines = Max diff lines per file
config.git_max_diff_line_characters = Max diff characters per line
config.git_max_diff_files = Max diff files 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
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 00:35:11 +02:00
config.logger_name_fmt = Logger: %s
2019-04-02 09:48:31 +02:00
config.disabled_logger = Disabled
2024-03-06 18:21:19 +01:00
config.access_log_mode = Access log mode
config.access_log_template = Access log template
2019-04-02 09:48:31 +02:00
config.xorm_log_sql = Log SQL
2014-08-30 14:49:51 +02:00
2022-10-17 01:29:26 +02:00
config.set_setting_failed = Set setting %s failed
2023-06-03 16:03:41 +02:00
monitor.stats = Stats
2024-03-06 18:21:19 +01:00
monitor.cron = Cron tasks
2014-08-30 14:49:51 +02:00
monitor.name = Name
monitor.schedule = Schedule
monitor.next = Next Time
monitor.previous = Previous Time
2018-04-19 16:24:31 +02:00
monitor.execute_times = Executions
2014-08-30 14:49:51 +02: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 09:45:47 +02:00
monitor.stacktrace = Stacktrace
monitor.processes_count = %d Processes
monitor.download_diagnosis_report = Download diagnosis report
2014-08-30 14:49:51 +02:00
monitor.desc = Description
monitor.start = Start Time
monitor.execute_time = Execution Time
2022-03-29 03:31:07 +02:00
monitor.last_execution_result = Result
2019-11-30 15:40:22 +01:00
monitor.process.cancel = Cancel process
2024-06-11 19:42:33 +02:00
monitor.process.cancel_desc = Canceling a process may cause data loss
2023-10-22 13:59:31 +02:00
monitor.process.cancel_notices = Cancel: <strong>%s</strong>?
2021-11-30 21:06:32 +01: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 09:45:47 +02:00
2020-01-07 12:23:09 +01:00
monitor.queues = Queues
monitor.queue = Queue: %s
monitor.queue.name = Name
monitor.queue.type = Type
monitor.queue.exemplar = Exemplar Type
2024-03-17 17:04:11 +01:00
monitor.queue.numberworkers = Number of workers
monitor.queue.activeworkers = Active workers
monitor.queue.maxnumberworkers = Max Number of workers
monitor.queue.numberinqueue = Number in queue
monitor.queue.review_add = Review / add workers
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 09:45:47 +02:00
monitor.queue.settings.desc = Pools dynamically grow in response to their worker queue blocking.
2020-01-07 12:23:09 +01: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
2024-03-17 17:04:11 +01:00
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 09:45:47 +02: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 14:49:51 +02:00
2024-03-06 18:21:19 +01:00
notices.system_notice_list = System notices
notices.view_detail_header = Notice details
2022-12-08 14:14:09 +01:00
notices.operations = Operations
2024-03-17 17:04:11 +01: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 00:29:18 +02:00
notices.type = Type
notices.type_1 = Repository
2020-05-17 01:31:38 +02:00
notices.type_2 = Task
2014-10-09 00:29:18 +02:00
notices.desc = Description
notices.op = Op.
2017-05-18 03:03:43 +02:00
notices.delete_success = The system notices have been deleted.
2014-10-09 00:29:18 +02:00
2024-01-10 12:03:23 +01:00
self_check.no_problem_found = No problem found yet.
self_check.database_collation_mismatch = Expect database to use collation: %s
2024-01-21 18:25:58 +01:00
self_check.database_collation_case_insensitive = Database is using a collation %s, which is an insensitive collation. Although Forgejo could work with it, there might be some rare cases which don't work as expected.
2024-01-10 12:03:23 +01:00
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.
2014-07-26 06:24:27 +02:00
[action]
2017-11-01 17:03:10 +01: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-16 19:18:25 +01: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 16:49:00 +01:00
auto_merge_pull_request = `automatically merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2017-11-01 17:03:10 +01:00
transfer_repo = transferred repository <code>%s</code> to <a href="%s">%s</a>
2021-11-16 19:18:25 +01:00
push_tag = pushed tag <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a>
2017-11-01 17:03:10 +01: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 00:44:30 +02:00
compare_branch = Compare
2017-05-18 03:03:43 +02:00
compare_commits = Compare %d commits
2019-06-29 11:18:49 +02:00
compare_commits_general = Compare commits
2021-11-16 19:18:25 +01: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 04:06:09 +02:00
mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
2021-11-16 19:18:25 +01: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 01:06:12 +02:00
publish_release = `released <a href="%[2]s">%[4]s</a> at <a href="%[1]s">%[3]s</a>`
2021-11-16 19:18:25 +01:00
review_dismissed = `dismissed review from <b>%[4]s</b> for <a href="%[1]s">%[3]s#%[2]s</a>`
2021-02-11 18:32:25 +01:00
review_dismissed_reason = Reason:
2021-11-16 19:18:25 +01:00
create_branch = created branch <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
2021-10-28 09:05:00 +02:00
starred_repo = starred <a href="%[1]s">%[2]s</a>
2021-10-16 16:21:16 +02:00
watched_repo = started watching <a href="%[1]s">%[2]s</a>
2014-07-26 06:24:27 +02:00
[tool]
now = now
2017-06-28 07:43:28 +02: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 14:49:51 +02:00
raw_seconds = seconds
raw_minutes = minutes
2015-08-11 11:54:00 +02:00
2024-03-05 18:12:23 +01:00
[munits.data]
b = B
kib = KiB
mib = MiB
gib = GiB
tib = TiB
pib = PiB
eib = EiB
2015-08-11 11:54:00 +02:00
[dropzone]
2018-04-19 16:24:31 +02:00
default_message = Drop files or click here to upload.
2023-01-08 19:25:28 +01:00
invalid_input_type = You cannot upload files of this type.
2017-03-09 14:24:57 +01:00
file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB).
2015-08-13 01:58:27 +02:00
remove_file = Remove file
2016-12-30 19:49:54 +01:00
[notification]
notifications = Notifications
unread = Unread
read = Read
2018-04-19 16:24:31 +02:00
no_unread = No unread notifications.
no_read = No read notifications.
2017-03-09 14:24:57 +01:00
pin = Pin notification
2017-01-18 02:18:55 +01:00
mark_as_read = Mark as read
mark_as_unread = Mark as unread
2017-12-07 06:52:57 +01:00
mark_all_as_read = Mark all as read
2022-09-29 21:09:14 +02:00
subscriptions = Subscriptions
watching = Watching
no_subscriptions = No subscriptions
2017-03-22 11:43:54 +01:00
[gpg]
2019-10-16 15:42:42 +02:00
default_key = Signed with default key
2017-03-22 11:43:54 +01:00
error.extract_sign = Failed to extract signature
error.generate_hash = Failed to generate hash of commit
2018-04-19 16:24:31 +02:00
error.no_committer_account = No account linked to committer's email address
2024-02-25 13:03:09 +01:00
error.no_gpg_keys_found = No known key found for this signature in database
error.not_signed_commit = Not a signed commit
error.failed_retrieval_gpg_keys = Failed to retrieve any key attached to the committer's account
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 16:54:24 +02:00
[units]
2022-01-05 04:37:00 +01:00
unit = Unit
2018-04-19 16:24:31 +02: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 10:42:47 +02:00
[packages]
title = Packages
desc = Manage repository packages.
empty = There are no packages yet.
2023-05-01 09:17:27 +02: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 13:58:21 +02: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 10:47:26 +02: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 10:42:47 +02: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
2024-03-17 17:04:11 +01:00
details.project_site = Project website
details.repository_site = Repository website
details.documentation_site = Documentation website
2022-03-30 10:42:47 +02:00
details.license = License
assets = Assets
versions = Versions
versions.view_all = View all
dependency.id = ID
dependency.version = Version
2023-05-12 19:27:50 +02: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
2023-02-05 11:12:31 +01: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 02:49:21 +01: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 10:42:47 +02: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-01 19:30:39 +01: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 10:42:47 +02:00
container.details.type = Image Type
container.details.platform = Platform
container.pull = Pull the image from the command line:
2022-09-14 22:45:13 +02:00
container.digest = Digest:
2022-03-30 10:42:47 +02:00
container.multi_arch = OS / Arch
container.layers = Image Layers
container.labels = Labels
container.labels.key = Key
container.labels.value = Value
2023-05-22 04:57:49 +02: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-02 18:31:35 +02: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 10:42:47 +02:00
generic.download = Download package from the command line:
2023-05-14 17:38:40 +02:00
go.install = Install the package from the command line:
2022-04-19 18:55:35 +02:00
helm.registry = Setup this registry from the command line:
helm.install = To install the package, run the following command:
2022-03-30 10:42:47 +02: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 10:19:06 +02:00
npm.dependencies.bundle = Bundled Dependencies
2022-03-30 10:42:47 +02:00
npm.dependencies.peer = Peer Dependencies
npm.dependencies.optional = Optional Dependencies
npm.details.tag = Tag
2022-08-07 12:09:54 +02:00
pub.install = To install the package using Dart, run the following command:
2022-03-30 10:42:47 +02:00
pypi.requires = Requires Python
pypi.install = To install the package using pip, run the following command:
2023-05-05 22:33:37 +02:00
rpm.registry = Setup this registry from the command line:
2023-07-20 17:37:31 +02:00
rpm.distros.redhat = on RedHat based distributions
rpm.distros.suse = on SUSE based distributions
2023-05-05 22:33:37 +02:00
rpm.install = To install the package, run the following command:
2024-01-19 12:37:10 +01:00
rpm.repository = Repository Info
rpm.repository.architectures = Architectures
rpm.repository.multiple_groups = This package is available in multiple groups.
2022-03-30 10:42:47 +02: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-13 21:28:39 +01: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 09:04:45 +02:00
vagrant.install = To add a Vagrant box, run the following command:
2022-03-30 10:42:47 +02: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 12:54:40 +02:00
settings.link.success = Repository link was successfully updated.
2022-03-30 10:42:47 +02: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-30 21:17:05 +02:00
settings.delete.error = Failed to delete the package.
2024-02-27 14:39:59 +01:00
owner.settings.cargo.title = Cargo registry index
2024-03-17 17:04:11 +01:00
owner.settings.cargo.initialize = Initialize index
2023-08-08 17:25:05 +02: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 11:12:31 +01:00
owner.settings.cargo.initialize.error = Failed to initialize Cargo index: %v
owner.settings.cargo.initialize.success = The Cargo index was successfully created.
2024-03-17 17:04:11 +01:00
owner.settings.cargo.rebuild = Rebuild index
2023-08-08 17:25:05 +02:00
owner.settings.cargo.rebuild.description = Rebuilding can be useful if the index is not synchronized with the stored Cargo packages.
2023-02-05 11:12:31 +01:00
owner.settings.cargo.rebuild.error = Failed to rebuild Cargo index: %v
owner.settings.cargo.rebuild.success = The Cargo index was successfully rebuild.
2024-03-19 20:41:40 +01:00
owner.settings.cargo.rebuild.no_index = Cannot rebuild, no index is initialized.
2024-05-13 14:05:49 +02:00
owner.settings.cleanuprules.title = Cleanup rules
2024-03-17 17:04:11 +01:00
owner.settings.cleanuprules.add = Add cleanup rule
owner.settings.cleanuprules.edit = Edit cleanup rule
2024-02-22 18:33:22 +01:00
owner.settings.cleanuprules.none = There are no cleanup rules yet.
2024-03-17 17:04:11 +01:00
owner.settings.cleanuprules.preview = Cleanup rule preview
2022-11-20 15:08:38 +01:00
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.
2024-02-27 14:39:59 +01:00
owner.settings.chef.title = Chef registry
2023-02-06 02:49:21 +01:00
owner.settings.chef.keypair = Generate key pair
2023-08-08 17:25:05 +02: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 10:07:13 +01: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 00:04:26 +02:00
creation.success = The secret "%s" has been added.
2022-12-20 10:07:13 +01:00
creation.failed = Failed to add secret.
deletion = Remove secret
2023-02-01 13:53:04 +01:00
deletion.description = Removing a secret is permanent and cannot be undone. Continue?
2022-12-20 10:07:13 +01:00
deletion.success = The secret has been removed.
deletion.failed = Failed to remove secret.
2024-03-17 17:04:11 +01:00
management = Manage secrets
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 02:45:19 +01:00
[actions]
actions = Actions
2024-04-30 05:59:06 +02:00
unit.desc = Manage integrated CI/CD pipelines with Forgejo Actions
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 02:45:19 +01:00
2024-02-25 13:03:09 +01:00
status.unknown = Unknown
status.waiting = Waiting
status.running = Running
status.success = Success
status.failure = Failure
status.cancelled = Canceled
status.skipped = Skipped
status.blocked = Blocked
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 02:45:19 +01:00
runners = Runners
2024-03-17 17:04:11 +01:00
runners.runner_manage_panel = Manage runners
runners.new = Create new runner
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 02:45:19 +01:00
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
2024-03-17 17:04:11 +01:00
runners.last_online = Last online time
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 02:45:19 +01:00
runners.runner_title = Runner
runners.task_list = Recent tasks on this runner
2023-06-13 16:28:31 +02: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 02:45:19 +01: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
2024-03-17 17:04:11 +01:00
runners.update_runner = Update changes
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 02:45:19 +01:00
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 03:19:40 +01:00
runners.version = Version
2023-09-24 20:12:21 +02:00
runners.reset_registration_token = Reset registration token
2023-03-29 03:20:48 +02: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 02:45:19 +01:00
2024-03-17 17:04:11 +01:00
runs.all_workflows = All workflows
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 02:45:19 +01:00
runs.commit = Commit
2023-09-08 17:01:19 +02:00
runs.scheduled = Scheduled
2023-07-04 11:59:47 +02:00
runs.pushed_by = pushed by
2024-02-14 12:12:45 +01:00
runs.workflow = Workflow
2023-03-14 08:27:03 +01:00
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
2023-12-18 17:06:19 +01:00
runs.no_matching_online_runner_helper = No matching online runner with label: %s
2024-03-22 04:19:17 +01:00
runs.no_job_without_needs = The workflow must contain at least one job without dependencies.
2024-05-27 07:21:00 +02:00
runs.no_job = The workflow must contain at least one job
2023-06-21 06:25:14 +02: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 09:27:33 +01:00
runs.no_workflows = There are no workflows yet.
2024-01-21 18:25:58 +01:00
runs.no_workflows.quick_start = Don't know how to start with Forgejo Actions? See <a target="_blank" rel="noopener noreferrer" href="%s">the quick start guide</a>.
runs.no_workflows.documentation = For more information on Forgejo Actions, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-06-21 06:25:14 +02:00
runs.no_runs = The workflow has no runs yet.
2023-11-21 04:00:59 +01:00
runs.empty_commit_message = (empty commit message)
2023-02-24 08:58:49 +01:00
2024-03-17 17:04:11 +01:00
workflow.disable = Disable workflow
2024-02-27 14:39:59 +01:00
workflow.disable_success = Workflow "%s" disabled successfully.
2024-03-17 17:04:11 +01:00
workflow.enable = Enable workflow
2024-02-27 14:39:59 +01:00
workflow.enable_success = Workflow "%s" enabled successfully.
2023-08-22 04:30:02 +02:00
workflow.disabled = Workflow is disabled.
2024-06-28 07:17:11 +02:00
workflow.dispatch.trigger_found = This workflow has a <c>workflow_dispatch</c> event trigger.
workflow.dispatch.use_from = Use workflow from
workflow.dispatch.run = Run workflow
workflow.dispatch.success = Workflow run was successfully requested.
workflow.dispatch.input_required = Require value for input "%s".
workflow.dispatch.invalid_input_type = Invalid input type "%s".
workflow.dispatch.warn_input_limit = Only displaying the first %d inputs.
2023-08-14 17:14:30 +02:00
2023-02-24 08:58:49 +01:00
need_approval_desc = Need approval to run workflows for fork pull request.
2023-04-21 23:15:17 +02:00
2023-06-21 00:54:15 +02:00
variables = Variables
2024-03-17 17:04:11 +01:00
variables.management = Manage variables
variables.creation = Add variable
2023-06-21 00:54:15 +02:00
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 11:43:38 +01:00
variables.id_not_exist = Variable with ID %d does not exist.
2023-06-21 00:54:15 +02: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-21 23:15:17 +02:00
[projects]
2024-03-17 17:04:11 +01:00
type-1.display_name = Individual project
type-2.display_name = Repository project
type-3.display_name = Organization project
2023-08-06 21:52:34 +02:00
[git.filemode]
changed_filemode = %[1]s → %[2]s
2023-10-22 13:59:31 +02:00
; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
2023-08-06 21:52:34 +02:00
directory = Directory
normal_file = Normal file
executable_file = Executable file
symbolic_link = Symbolic link
submodule = Submodule
2024-03-16 01:17:04 +01:00
[markup]
2024-03-25 14:33:30 +01:00
filepreview.line = Line %[1]d in %[2]s
2024-03-16 01:17:04 +01:00
filepreview.lines = Lines %[1]d to %[2]d in %[3]s
2024-03-25 16:05:01 +01:00
filepreview.truncated = Preview has been truncated
2024-07-12 15:09:13 +02:00
[translation_meta]
test = This is a test string. It is not displayed in Forgejo UI but is used for testing purposes. Feel free to translate it as "ok" to hit the 100% completion :) and save some time