2024-01-21 14:35:58 -05:00
[common]
2014-07-25 23:24:27 -05:00
home = Home
dashboard = Dashboard
explore = Explore
help = Help
2022-06-05 04:41:51 -05:00
logo = Logo
2014-07-25 23:24:27 -05:00
sign_in = Sign In
2023-06-08 11:35:29 -05:00
sign_in_with_provider = Sign in with %s
sign_in_or = or
2014-07-25 23:24:27 -05:00
sign_out = Sign Out
2018-04-19 09:24:31 -05:00
sign_up = Register
2017-02-22 02:14:37 -05:00
link_account = Link Account
2014-07-25 23:24:27 -05:00
register = Register
version = Version
2020-01-04 15:27:19 -05:00
powered_by = Powered by %s
2014-07-25 23:24:27 -05:00
page = Page
template = Template
language = Language
2016-12-30 13:49:54 -05:00
notifications = Notifications
2021-01-21 09:51:52 -05:00
active_stopwatch = Active Time Tracker
2023-10-19 09:08:31 -05:00
tracked_time_summary = Summary of tracked time based on filters of issue list
2018-02-16 09:02:40 -05:00
create_new = Create…
2018-04-19 09:24:31 -05:00
user_profile_and_more = Profile and Settings…
2015-08-10 09:59:12 -05:00
signed_in_as = Signed in as
2023-03-24 05:35:52 -05:00
enable_javascript = This website requires JavaScript.
2020-04-24 08:22:36 -05:00
toc = Table of Contents
2020-06-12 06:26:37 -05:00
licenses = Licenses
2024-01-21 12:25:58 -05:00
return_to_gitea = Return to Forgejo
2014-07-25 23:24:27 -05:00
username = Username
2018-04-19 09:24:31 -05:00
email = Email Address
2014-07-25 23:24:27 -05:00
password = Password
2020-08-27 20:36:37 -05:00
access_token = Access Token
2023-08-08 10:25:05 -05:00
re_type = Confirm Password
2018-04-19 09:24:31 -05:00
captcha = CAPTCHA
twofa = Two-Factor Authentication
twofa_scratch = Two-Factor Scratch Code
2017-01-15 21:14:29 -05:00
passcode = Passcode
2014-07-25 23:24:27 -05:00
2022-01-14 10:03:31 -05: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 09:12:37 -05:00
2014-07-25 23:24:27 -05:00
repository = Repository
organization = Organization
mirror = Mirror
new_repo = New Repository
new_migrate = New Migration
2015-12-09 11:24:56 -05:00
new_mirror = New Mirror
2017-03-09 08:24:57 -05:00
new_fork = New Repository Fork
2014-07-25 23:24:27 -05:00
new_org = New Organization
2020-08-16 22:07:38 -05:00
new_project = New Project
2023-02-24 18:10:50 -05:00
new_project_column = New Column
2014-07-25 23:24:27 -05:00
manage_org = Manage Organizations
2018-04-19 09:24:31 -05:00
admin_panel = Site Administration
2014-07-25 23:24:27 -05:00
account_settings = Account Settings
settings = Settings
2018-04-19 09:24:31 -05:00
your_profile = Profile
your_starred = Starred
your_settings = Settings
2014-07-25 23:24:27 -05:00
2017-08-16 20:31:34 -05:00
all = All
sources = Sources
mirrors = Mirrors
collaborative = Collaborative
2017-08-18 01:56:04 -05:00
forks = Forks
2017-08-16 20:31:34 -05:00
2016-02-14 20:26:49 -05:00
activities = Activities
2014-07-25 23:24:27 -05:00
pull_requests = Pull Requests
issues = Issues
2019-12-15 09:20:08 -05:00
milestones = Milestones
2014-07-25 23:24:27 -05:00
2021-02-11 12:32:25 -05:00
ok = OK
2014-07-25 23:24:27 -05:00
cancel = Cancel
2023-08-03 21:21:32 -05:00
retry = Retry
2023-05-08 18:59:59 -05:00
rerun = Re-run
2023-05-21 23:17:24 -05:00
rerun_all = Re-run all jobs
2020-06-11 16:06:20 -05:00
save = Save
2019-11-08 19:39:37 -05:00
add = Add
add_all = Add All
remove = Remove
remove_all = Remove All
Use a general approch to improve a11y for all checkboxes and dropdowns. (#23542)
This PR follows #22599 and #23450
The major improvements:
1. The `aria-*.js` are totally transparent now, no need to call
`attachDropdownAria` explicitly anymore.
* It hooks the `$.fn.checkbox` and `$.fn.dropdown`, then our patch
works.
* It makes all dynamically generated checkbox/dropdown work with a11y
without any change
* eg: the `conversation.find('.dropdown').dropdown();` in `repo-diff.js`
2. Since it's totally transparent now, it could be easier to modify or
remove in the future.
3. It handles all selection labels as well (by onLabelCreate), so it
supports "multiple selection dropdown" now.
* It partially completes one of my TODOs: `TODO: multiple selection is
not supported yet.`
4. The code structure is clearer, code blocks are splitted into
different functions.
* The old `attachOneDropdownAria` was splitted into separate functions.
* It makes it easier to add more fine tunes in the future, and co-work
with contributors.
6. The code logic is similar as before, only two new parts:
1. the `ariaCheckboxFn` and `ariaDropdownFn` functions
2. the `onLabelCreate` and `updateSelectionLabel` functions
In `aria-dropdown.js` I had to mix jQuery and Vanilla JS somewhat, I
think the code is still understandable, otherwise the code would be much
more complex to read.
Thanks to fsologureng for the idea about "improving the 'delete icon'
with aria attributes".
If there is anything unclear or incorrect, feel free to ask and discuss,
or propose new PRs for it.
2023-03-21 21:52:01 -05:00
remove_label_str = Remove item "%s"
2021-06-25 09:28:55 -05:00
edit = Edit
2023-10-22 07:34:16 -05:00
view = View
2014-07-25 23:24:27 -05:00
2022-11-20 09:08:38 -05:00
enabled = Enabled
disabled = Disabled
2023-08-09 07:24:07 -05:00
locked = Locked
2022-11-20 09:08:38 -05:00
2021-11-16 03:16:05 -05:00
copy = Copy
copy_url = Copy URL
2023-10-01 23:04:32 -05:00
copy_hash = Copy hash
2022-11-04 14:33:50 -05:00
copy_content = Copy content
2021-11-16 03:16:05 -05:00
copy_branch = Copy branch name
copy_success = Copied!
copy_error = Copy failed
2023-01-08 13:25:28 -05:00
copy_type_unsupported = This file type cannot be copied
2021-11-16 03:16:05 -05:00
2018-08-05 23:43:22 -05:00
write = Write
preview = Preview
loading = Loading…
2021-06-14 12:20:43 -05:00
error = Error
2020-02-10 14:23:35 -05: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 02:42:39 -05:00
go_back = Go Back
2020-02-10 14:23:35 -05:00
2021-06-14 12:20:43 -05:00
never = Never
2023-04-27 03:44:38 -05:00
unknown = Unknown
2021-06-14 12:20:43 -05:00
2022-04-24 15:03:39 -05:00
rss_feed = RSS Feed
2023-05-25 08:17:19 -05:00
pin = Pin
unpin = Unpin
2023-05-19 08:37:57 -05:00
artifacts = Artifacts
2023-09-17 23:54:05 -05:00
archived = Archived
2023-05-12 03:43:27 -05:00
concept_system_global = Global
concept_user_individual = Individual
concept_code_repository = Repository
concept_user_organization = Organization
2023-05-30 15:38:55 -05:00
show_timestamps = Show timestamps
show_log_seconds = Show seconds
show_full_screen = Show full screen
2023-06-28 21:58:56 -05:00
download_logs = Download logs
2023-05-30 15:38:55 -05:00
2023-06-19 02:46:50 -05:00
confirm_delete_selected = Confirm to delete all selected items?
2023-06-20 17:54:15 -05:00
name = Name
value = Value
2023-01-28 20:29:10 -05:00
[aria]
navbar = Navigation Bar
footer = Footer
footer.software = About Software
footer.links = Links
2023-04-17 13:26:01 -05:00
[heatmap]
number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
no_contributions = No contributions
less = Less
more = More
2023-04-11 02:26:18 -05: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 14:05:06 -05:00
buttons.enable_monospace_font = Enable monospace font
buttons.disable_monospace_font = Disable monospace font
2023-04-11 02:26:18 -05:00
2022-10-22 20:18:15 -05:00
[filter]
string.asc = A - Z
string.desc = Z - A
2020-04-27 18:03:15 -05:00
[error]
2021-12-28 08:28:27 -05:00
occurred = An error occurred
2024-01-21 12:25:58 -05: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 08:57:24 -05:00
missing_csrf = Bad Request: no CSRF token present
2021-12-28 08:28:27 -05:00
invalid_csrf = Bad Request: invalid CSRF token
not_found = The target couldn't be found.
network_error = Network error
2020-04-27 18:03:15 -05:00
2019-10-20 04:06:53 -05:00
[startpage]
app_desc = A painless, self-hosted Git service
install = Easy to install
2024-01-21 12:25:58 -05: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 04:06:53 -05:00
platform = Cross-platform
2024-01-21 12:25:58 -05: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 04:06:53 -05:00
lightweight = Lightweight
2024-01-21 12:25:58 -05:00
lightweight_desc = Forgejo has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!
2019-10-20 04:06:53 -05:00
license = Open Source
2024-01-21 12:25:58 -05: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 04:06:53 -05:00
2014-09-07 18:02:58 -05:00
[install]
install = Installation
2018-04-19 09:24:31 -05:00
title = Initial Configuration
2024-01-21 12:25:58 -05: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.
require_db_desc = Forgejo requires MySQL, PostgreSQL, MSSQL, SQLite3 or TiDB (MySQL protocol).
2015-07-07 12:09:03 -05:00
db_title = Database Settings
2014-09-07 18:02:58 -05:00
db_type = Database Type
host = Host
2018-04-19 09:24:31 -05:00
user = Username
2014-09-07 18:02:58 -05:00
password = Password
db_name = Database Name
2020-01-20 10:45:14 -05:00
db_schema = Schema
db_schema_helper = Leave blank for database default ("public").
2018-04-19 09:24:31 -05:00
ssl_mode = SSL
2014-09-07 18:02:58 -05:00
path = Path
2024-01-21 12:25:58 -05: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 02:50:01 -05: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 12:25:58 -05: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 09:42:40 -05:00
err_empty_db_path = The SQLite3 database path cannot be empty.
2018-04-19 09:24:31 -05: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 01:18:40 -05: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 04:53:30 -05:00
err_admin_name_pattern_not_allowed = Administrator username is invalid, the username matches a reserved pattern
2019-05-28 01:18:40 -05:00
err_admin_name_is_invalid = Administrator Username is invalid
2018-04-19 09:24:31 -05:00
general_title = General Settings
app_name = Site Title
2018-05-10 01:58:49 -05:00
app_name_helper = You can enter your company name here.
2014-09-07 18:02:58 -05:00
repo_path = Repository Root Path
2018-04-19 09:24:31 -05:00
repo_path_helper = Remote Git repositories will be saved to this directory.
lfs_path = Git LFS Root Path
lfs_path_helper = Files tracked by Git LFS will be stored in this directory. Leave empty to disable.
run_user = Run As Username
2024-01-21 12:25:58 -05:00
run_user_helper = The operating system username that Forgejo runs as. Note that this user must have access to the repository root path.
2021-11-05 14:23:55 -05:00
domain = Server Domain
domain_helper = Domain or host address for the server.
2018-04-19 09:24:31 -05:00
ssh_port = SSH Server Port
ssh_port_helper = Port number your SSH server listens on. Leave empty to disable.
2024-01-21 12:25:58 -05:00
http_port = Forgejo HTTP Listen Port
http_port_helper = Port number the Forgejos web server will listen on.
app_url = Forgejo Base URL
2018-04-19 09:24:31 -05:00
app_url_helper = Base address for HTTP(S) clone URLs and email notifications.
2016-02-12 09:19:45 -05:00
log_root_path = Log Path
2018-04-19 09:24:31 -05:00
log_root_path_helper = Log files will be written to this directory.
2015-07-08 06:47:56 -05:00
optional_title = Optional Settings
2018-04-19 09:24:31 -05:00
email_title = Email Settings
Rework mailer settings (#18982)
* `PROTOCOL`: can be smtp, smtps, smtp+startls, smtp+unix, sendmail, dummy
* `SMTP_ADDR`: domain for SMTP, or path to unix socket
* `SMTP_PORT`: port for SMTP; defaults to 25 for `smtp`, 465 for `smtps`, and 587 for `smtp+startls`
* `ENABLE_HELO`, `HELO_HOSTNAME`: reverse `DISABLE_HELO` to `ENABLE_HELO`; default to false + system hostname
* `FORCE_TRUST_SERVER_CERT`: replace the unclear `SKIP_VERIFY`
* `CLIENT_CERT_FILE`, `CLIENT_KEY_FILE`, `USE_CLIENT_CERT`: clarify client certificates here
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2022-08-02 00:24:18 -05:00
smtp_addr = SMTP Host
smtp_port = SMTP Port
2018-04-19 09:24:31 -05:00
smtp_from = Send Email As
2024-01-21 12:25:58 -05:00
smtp_from_helper = Email address Forgejo will use. Enter a plain email address or use the "Name" <email@example.com> format.
2018-04-19 09:24:31 -05: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
offline_mode_popup = Disable third-party content delivery networks and serve all resources locally.
disable_gravatar = Disable Gravatar
disable_gravatar_popup = Disable Gravatar and third-party avatar sources. A default avatar will be used unless a user locally uploads an avatar.
federated_avatar_lookup = Enable Federated Avatars
2017-02-06 10:17:18 -05:00
federated_avatar_lookup_popup = Enable federated avatar lookup using Libravatar.
2018-04-19 09:24:31 -05:00
disable_registration = Disable Self-Registration
disable_registration_popup = Disable user self-registration. Only administrators will be able to create new user accounts.
2018-07-20 11:40:08 -05:00
allow_only_external_registration_popup = Allow Registration Only Through External Services
2017-08-19 10:34:49 -05:00
openid_signin = Enable OpenID Sign-In
2018-04-19 09:24:31 -05:00
openid_signin_popup = Enable user sign-in via OpenID.
openid_signup = Enable OpenID Self-Registration
openid_signup_popup = Enable OpenID-based user self-registration.
2020-05-29 03:36:51 -05:00
enable_captcha = Enable registration CAPTCHA
2017-02-06 10:17:18 -05:00
enable_captcha_popup = Require a CAPTCHA for user self-registration.
2018-04-19 09:24:31 -05:00
require_sign_in_view = Require Sign-In to View Pages
2023-03-23 12:27:03 -05:00
require_sign_in_view_popup = Limit page access to signed-in users. Visitors will only see the sign-in and registration pages.
2018-04-19 09:24:31 -05:00
admin_setting_desc = Creating an administrator account is optional. The first registered user will automatically become an administrator.
admin_title = Administrator Account Settings
admin_name = Administrator Username
2014-09-07 18:02:58 -05:00
admin_password = Password
confirm_password = Confirm Password
2018-04-19 09:24:31 -05:00
admin_email = Email Address
2024-01-21 12:25:58 -05:00
install_btn_confirm = Install Forgejo
2017-02-06 10:17:18 -05:00
test_git_failed = Could not test 'git' command: %v
2024-01-21 12:25:58 -05:00
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 09:24:31 -05:00
invalid_db_setting = The database settings are invalid: %v
2023-04-17 17:04:26 -05:00
invalid_db_table = The database table "%s" is invalid: %v
2018-04-19 09:24:31 -05:00
invalid_repo_path = The repository root path is invalid: %v
2021-12-01 02:50:01 -05:00
invalid_app_data_path = The app data path is invalid: %v
2018-04-19 09:24:31 -05:00
run_user_not_match = The 'run as' username is not the current username: %s -> %s
2021-12-01 02:50:01 -05:00
internal_token_failed = Failed to generate internal token: %v
secret_key_failed = Failed to generate secret key: %v
2017-05-17 20:03:43 -05:00
save_config_failed = Failed to save configuration: %v
2023-01-26 19:07:33 -05:00
enable_update_checker_helper_forgejo = Periodically checks for new Forgejo versions by checking a DNS TXT record at release.forgejo.org.
2018-04-19 09:24:31 -05:00
invalid_admin_setting = Administrator account setting is invalid: %v
invalid_log_root_path = The log path is invalid: %v
default_keep_email_private = Hide Email Addresses by Default
default_keep_email_private_popup = Hide email addresses of new user accounts by default.
default_allow_create_organization = Allow Creation of Organizations by Default
default_allow_create_organization_popup = Allow new user accounts to create organizations by default.
default_enable_timetracking = Enable Time Tracking by Default
default_enable_timetracking_popup = Enable time tracking for new repositories by default.
2024-01-21 12:25:58 -05:00
allow_dots_in_usernames = Allow users to use dots in their usernames. Doesn't affect existing accounts.
2018-04-19 09:24:31 -05:00
no_reply_address = Hidden Email Domain
no_reply_address_helper = Domain name for users with a hidden email address. For example, the username 'joe' will be logged in Git as 'joe@noreply.example.org' if the hidden email domain is set to 'noreply.example.org'.
2021-02-16 17:37:20 -05:00
password_algorithm = Password Hash Algorithm
2023-03-03 21:12:02 -05:00
invalid_password_algorithm = Invalid password hash algorithm
2023-03-23 12:27:03 -05:00
password_algorithm_helper = Set the password hashing algorithm. Algorithms have differing requirements and strength. The argon2 algorithm is rather secure but uses a lot of memory and may be inappropriate for small systems.
2022-11-01 14:23:56 -05:00
enable_update_checker = Enable Update Checker
enable_update_checker_helper = Checks for new version releases periodically by connecting to gitea.io.
2023-07-09 17:43:37 -05:00
env_config_keys = Environment Configuration
env_config_keys_prompt = The following environment variables will also be applied to your configuration file:
2014-09-07 18:02:58 -05:00
2014-07-25 23:24:27 -05:00
[home]
2018-04-19 09:24:31 -05:00
uname_holder = Username or Email Address
2014-07-25 23:24:27 -05:00
password_holder = Password
switch_dashboard_context = Switch Dashboard Context
2018-05-21 15:07:34 -05:00
my_repos = Repositories
2018-02-16 09:02:40 -05:00
show_more_repos = Show more repositories…
2014-07-25 23:24:27 -05:00
collaborative_repos = Collaborative Repositories
my_orgs = My Organizations
my_mirrors = My Mirrors
2015-08-25 11:01:06 -05:00
view_home = View %s
2018-02-16 09:02:40 -05:00
search_repos = Find a repository…
2020-05-16 15:07:01 -05:00
filter = Other Filters
2020-12-27 14:58:03 -05:00
filter_by_team_repositories = Filter by team repositories
2021-10-16 09:21:16 -05:00
feed_of = Feed of "%s"
2020-05-16 15:07:01 -05: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-25 23:24:27 -05:00
2015-08-25 09:58:34 -05:00
issues.in_your_repos = In your repositories
2014-09-05 16:28:09 -05:00
[explore]
repos = Repositories
2016-03-11 15:33:12 -05:00
users = Users
2016-09-01 08:08:05 -05:00
organizations = Organizations
2016-03-11 15:33:12 -05:00
search = Search
2023-05-07 10:44:16 -05:00
go_to = Go to
2018-03-16 09:04:33 -05:00
code = Code
2022-10-10 18:12:03 -05:00
search.type.tooltip = Search type
2021-01-27 05:00:35 -05:00
search.fuzzy = Fuzzy
2022-10-10 18:12:03 -05:00
search.fuzzy.tooltip = Include results that also matches the search term closely
2021-01-27 05:00:35 -05:00
search.match = Match
2022-10-10 18:12:03 -05:00
search.match.tooltip = Include only results that matches the exact search term
2022-01-27 03:30:51 -05:00
code_search_unavailable = Currently code search is not available. Please contact your site administrator.
2018-04-19 09:24:31 -05:00
repo_no_results = No matching repositories found.
user_no_results = No matching users found.
org_no_results = No matching organizations found.
code_no_results = No source code matching your search term found.
2023-04-17 17:04:26 -05:00
code_search_results = Search results for "%s"
2020-02-20 14:53:55 -05:00
code_last_indexed_at = Last indexed %s
2022-08-25 13:38:41 -05: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-25 23:24:27 -05:00
[auth]
2018-04-19 09:24:31 -05:00
create_new_account = Register Account
2017-02-07 10:30:20 -05:00
register_helper_msg = Already have an account? Sign in now!
2018-04-19 09:24:31 -05: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 04:57:07 -05:00
manual_activation_only = Contact your site administrator to complete activation.
2023-01-10 04:43:54 -05:00
remember_me = Remember This Device
2023-10-13 19:56:41 -05:00
remember_me.compromised = The login token is not valid anymore which may indicate a compromised account. Please check your account for unusual activities.
2017-02-20 13:27:20 -05:00
forgot_password_title = Forgot Password
forgot_password = Forgot password?
2018-04-19 09:24:31 -05:00
sign_up_now = Need an account? Register now.
2023-08-08 10:25:05 -05:00
sign_up_successful = Account was successfully created. Welcome!
2024-01-21 12:25:58 -05: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 07:04:25 -05:00
must_change_password = Update your password
2018-09-13 11:34:36 -05:00
allow_password_change = Require user to change password (recommended)
2019-04-18 02:23:59 -05:00
reset_password_mail_sent_prompt = A confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the account recovery process.
2014-08-09 23:02:00 -05:00
active_your_account = Activate Your Account
2018-07-25 12:54:56 -05:00
account_activated = Account has been activated
2018-04-19 09:24:31 -05:00
prohibit_login = Sign In Prohibited
2023-08-08 10:25:05 -05:00
prohibit_login_desc = Your account is prohibited from signing in, please contact your site administrator.
2018-04-19 09:24:31 -05:00
resent_limit_prompt = You have already requested an activation email recently. Please wait 3 minutes and try again.
2015-12-01 23:21:24 -05: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 12:25:58 -05: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-01 23:21:24 -05:00
resend_mail = Click here to resend your activation email
2017-05-17 20:03:43 -05:00
email_not_associate = The email address is not associated with any account.
2019-04-18 02:23:59 -05:00
send_reset_mail = Send Account Recovery Email
reset_password = Account Recovery
2018-04-19 09:24:31 -05:00
invalid_code = Your confirmation code is invalid or has expired.
2023-09-01 11:15:39 -05: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 02:59:46 -05:00
invalid_password = Your password does not match the password that was used to create the account.
2019-04-18 02:23:59 -05:00
reset_password_helper = Recover Account
2023-08-08 10:25:05 -05:00
reset_password_wrong_user = You are signed in as %s, but the account recovery link is meant for %s
2018-06-11 02:12:38 -05:00
password_too_short = Password length cannot be less than %d characters.
2024-01-21 12:25:58 -05:00
non_local_account = Non-local users cannot update their password through the Forgejo web interface.
2017-01-15 21:14:29 -05: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 09:24:31 -05:00
twofa_passcode_incorrect = Your passcode is incorrect. If you misplaced your device, use your scratch code to sign in.
2017-06-01 19:41:52 -05:00
twofa_scratch_token_incorrect = Your scratch code is incorrect.
2018-04-19 09:24:31 -05:00
login_userpass = Sign In
2017-03-17 09:16:08 -05:00
login_openid = OpenID
2018-10-28 17:46:16 -05:00
oauth_signup_tab = Register New Account
2020-11-20 22:32:27 -05:00
oauth_signup_title = Complete New Account
2018-10-28 17:46:16 -05:00
oauth_signup_submit = Complete Account
oauth_signin_tab = Link to Existing Account
oauth_signin_title = Sign In to Authorize Linked Account
oauth_signin_submit = Link Account
2022-01-07 16:02:09 -05: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 09:16:08 -05:00
openid_connect_submit = Connect
openid_connect_title = Connect to an existing account
2018-04-19 09:24:31 -05:00
openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2017-03-17 09:16:08 -05:00
openid_register_title = Create new account
2018-04-19 09:24:31 -05:00
openid_register_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2023-08-08 10:25:05 -05:00
openid_signin_desc = Enter your OpenID URI. For example: alice.openid.example.org or https://openid.example.org/alice.
2021-06-25 23:16:36 -05: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-14 20:00:04 -05:00
email_domain_blacklisted = You cannot register with your email address.
2019-03-08 11:42:50 -05:00
authorize_application = Authorize Application
2019-10-23 16:04:22 -05:00
authorize_redirect_notice = You will be redirected to %s if you authorize this application.
2019-03-08 11:42:50 -05:00
authorize_application_created_by = This application was created by %s.
authorize_application_description = If you grant the access, it will be able to access and write to all your account information, including private repos and organisations.
authorize_title = Authorize "%s" to access your account?
authorization_failed = Authorization failed
2023-08-08 10:25:05 -05: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-22 18:33:31 -05:00
sspi_auth_failed = SSPI authentication failed
2023-08-08 10:25:05 -05: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-08 17:06:39 -05:00
password_pwned_err = Could not complete request to HaveIBeenPwned
2024-01-15 01:51:43 -05:00
last_admin = You cannot remove the last admin. There must be at least one admin.
2014-07-25 23:24:27 -05:00
2015-09-17 00:54:12 -05:00
[mail]
2021-06-23 07:33:21 -05:00
view_it_on = View it on %s
2023-01-16 15:58:01 -05:00
reply = or reply to this email directly
2021-06-23 07:33:21 -05:00
link_not_working_do_paste = Not working? Try copying and pasting it to your browser.
hi_user_x = Hi <b>%s</b>,
2015-09-17 00:54:12 -05:00
activate_account = Please activate your account
2021-06-23 07:33:21 -05:00
activate_account.title = %s, please activate your account
2021-07-10 12:40:14 -05: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 07:33:21 -05:00
2015-12-01 23:21:24 -05:00
activate_email = Verify your email address
2023-08-08 10:25:05 -05:00
activate_email.title = %s, please verify your email address
2021-06-23 07:33:21 -05:00
activate_email.text = Please click the following link to verify your email address within <b>%s</b>:
2024-01-21 12:25:58 -05:00
admin.new_user.subject = New user %s just signed up
admin.new_user.user_info = User Information
2024-02-06 13:45:48 -05:00
admin.new_user.text = Please <a href="%s">click here</a> to manage this user from the admin panel.
2024-01-21 12:25:58 -05:00
register_notify = Welcome to Forgejo
2021-06-23 07:33:21 -05:00
register_notify.title = %[1]s, welcome to %[2]s
register_notify.text_1 = this is your registration confirmation email for %s!
register_notify.text_2 = You can now login via username: %s.
register_notify.text_3 = If this account has been created for you, please <a href="%s">set your password</a> first.
2019-04-18 02:23:59 -05:00
reset_password = Recover your account
2021-06-23 07:33:21 -05:00
reset_password.title = %s, you have requested to recover your account
reset_password.text = Please click the following link to recover your account within <b>%s</b>:
2017-03-09 08:24:57 -05:00
register_success = Registration successful
2021-06-23 07:33:21 -05:00
2021-09-29 18:20:18 -05: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 07:33:21 -05: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 08:06:09 -05:00
issue.action.push_1 = <b>@%[1]s</b> pushed %[3]d commit to %[2]s
2021-06-23 12:43:33 -05:00
issue.action.push_n = <b>@%[1]s</b> pushed %[3]d commits to %[2]s
2021-06-23 07:33:21 -05:00
issue.action.close = <b>@%[1]s</b> closed #%[2]d.
issue.action.reopen = <b>@%[1]s</b> reopened #%[2]d.
2021-06-23 12:43:33 -05:00
issue.action.merge = <b>@%[1]s</b> merged #%[2]d into %[3]s.
2021-06-23 07:33:21 -05: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 12:43:33 -05:00
issue.action.new = <b>@%[1]s</b> created #%[2]d.
2021-06-23 07:33:21 -05:00
issue.in_tree_path = In %s:
2015-09-17 00:54:12 -05:00
2021-04-02 05:25:13 -05:00
release.new.subject = %s in %s released
2021-06-23 07:33:21 -05: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 05:25:13 -05:00
repo.transfer.subject_to = %s would like to transfer "%s" to %s
repo.transfer.subject_to_you = %s would like to transfer "%s" to you
repo.transfer.to_you = you
2021-06-23 07:33:21 -05:00
repo.transfer.body = To accept or reject it visit %s or just ignore it.
2021-04-02 05:25:13 -05:00
repo.collaborator.added.subject = %s added you to %s
2021-06-23 07:33:21 -05:00
repo.collaborator.added.text = You have been added as a collaborator of repository:
2021-04-02 05:25:13 -05:00
2022-10-19 07:40:28 -05: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 10:13:42 -05:00
[modal]
yes = Yes
no = No
2023-04-23 04:24:19 -05:00
confirm = Confirm
cancel = Cancel
2018-04-19 09:24:31 -05:00
modify = Update
2015-07-24 10:13:42 -05:00
2014-07-25 23:24:27 -05:00
[form]
UserName = Username
2014-08-02 12:47:33 -05:00
RepoName = Repository name
2015-12-01 23:21:24 -05:00
Email = Email address
2014-07-25 23:24:27 -05:00
Password = Password
2023-08-08 10:25:05 -05:00
Retype = Confirm Password
2014-07-25 23:24:27 -05:00
SSHTitle = SSH key name
2014-07-31 23:06:19 -05:00
HttpsUrl = HTTPS URL
2014-08-09 17:40:10 -05:00
PayloadUrl = Payload URL
2014-08-16 03:21:17 -05:00
TeamName = Team name
2014-08-29 07:50:43 -05:00
AuthName = Authorization name
2015-12-01 23:21:24 -05:00
AdminEmail = Admin email
2014-07-25 23:24:27 -05:00
2016-08-11 07:48:08 -05:00
NewBranchName = New branch name
CommitSummary = Commit summary
CommitMessage = Commit message
CommitChoice = Commit choice
TreeName = File path
Content = Content
2019-11-22 18:33:31 -05:00
SSPISeparatorReplacement = Separator
SSPIDefaultLanguage = Default Language
2014-07-25 23:24:27 -05:00
require_error = ` cannot be empty.`
2018-04-19 09:24:31 -05:00
alpha_dash_error = ` should contain only alphanumeric, dash ('-') and underscore ('_') characters.`
alpha_dash_dot_error = ` should contain only alphanumeric, dash ('-'), underscore ('_') and dot ('.') characters.`
git_ref_name_error = ` must be a well-formed Git reference name.`
2017-05-10 20:03:34 -05:00
size_error = ` must be size %s.`
2014-07-25 23:24:27 -05:00
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
2015-12-01 23:21:24 -05:00
email_error = ` is not a valid email address.`
2023-04-17 17:04:26 -05:00
url_error = `"%s" is not a valid URL.`
include_error = ` must contain substring "%s".`
2019-09-09 00:48:21 -05:00
glob_pattern_error = ` glob pattern is invalid: %s.`
2021-06-25 09:28:55 -05:00
regex_pattern_error = ` regex pattern is invalid: %s.`
2022-11-04 04:04:08 -05: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.`
2024-01-21 12:25:58 -05:00
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 01:44:42 -05:00
invalid_group_team_map_error = ` mapping is invalid: %s`
2014-07-25 23:24:27 -05:00
unknown_error = Unknown error:
2018-04-19 09:24:31 -05:00
captcha_incorrect = The CAPTCHA code is incorrect.
password_not_match = The passwords do not match.
2019-11-22 18:33:31 -05:00
lang_select_error = Select a language from the list.
2018-04-19 09:24:31 -05:00
username_been_taken = The username is already taken.
2021-01-10 07:14:02 -05:00
username_change_not_local_user = Non-local users are not allowed to change their username.
2023-05-21 10:13:47 -05:00
username_has_not_been_changed = Username has not been changed
2018-04-19 09:24:31 -05:00
repo_name_been_taken = The repository name is already used.
2021-12-14 00:08:09 -05:00
repository_force_private = Force Private is enabled: private repositories cannot be made public.
2020-09-24 23:09:23 -05: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-06 20:12:51 -05:00
visit_rate_limit = Remote visit addressed rate limitation.
2fa_auth_required = Remote visit required two factors authentication.
2018-04-19 09:24:31 -05: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 11:53:43 -05:00
email_invalid = The email address is invalid.
2023-04-17 17:04:26 -05:00
openid_been_used = The OpenID address "%s" is already used.
2018-04-19 09:24:31 -05:00
username_password_incorrect = Username or password is incorrect.
2019-11-19 17:44:58 -05: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 09:24:31 -05:00
enterred_invalid_repo_name = The repository name you entered is incorrect.
2021-03-01 09:33:05 -05:00
enterred_invalid_org_name = The organization name you entered is incorrect.
2018-04-19 09:24:31 -05:00
enterred_invalid_owner_name = The new owner name is not valid.
enterred_invalid_password = The password you entered is incorrect.
2017-05-17 20:03:43 -05:00
user_not_exist = The user does not exist.
2019-09-23 15:08:03 -05:00
team_not_exist = The team does not exist.
2020-08-28 09:39:50 -05: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 09:24:31 -05:00
cannot_add_org_to_team = An organization cannot be added as a team member.
2022-10-19 07:40:28 -05:00
duplicate_invite_to_team = The user was already invited as a team member.
2022-11-30 04:00:00 -05:00
organization_leave_success = You have successfully left the organization %s.
2017-05-17 20:03:43 -05:00
2023-01-08 13:25:28 -05:00
invalid_ssh_key = Cannot verify your SSH key: %s
invalid_gpg_key = Cannot verify your GPG key: %s
2020-10-10 19:38:09 -05:00
invalid_ssh_principal = Invalid principal: %s
2023-02-02 13:25:54 -05:00
must_use_public_key = The key you provided is a private key. Please do not upload your private key anywhere. Use your public key instead.
2023-03-23 12:27:03 -05:00
unable_verify_ssh_key = "Cannot verify the SSH key, double-check it for mistakes."
2014-07-31 23:06:19 -05:00
auth_failed = Authentication failed: %v
2014-07-25 23:24:27 -05:00
2023-03-23 12:27:03 -05: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-25 23:24:27 -05:00
2015-03-19 14:26:04 -05:00
target_branch_not_exist = Target branch does not exist.
2014-11-06 22:06:41 -05:00
2024-01-15 01:51:43 -05:00
admin_cannot_delete_self = You cannot delete yourself when you are an admin. Please remove your admin privileges first.
2014-09-25 18:33:39 -05:00
[user]
2018-04-19 09:24:31 -05:00
change_avatar = Change your avatar…
2023-05-06 05:10:30 -05:00
joined_on = Joined on %s
2014-09-25 18:33:39 -05:00
repositories = Repositories
activity = Public Activity
followers = Followers
[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-14 18:07:38 -05:00
block_user = Block User
block_user.detail = Please understand that if you block this user, other actions will be taken. Such as:
block_user.detail_1 = You are being unfollowed from this user.
block_user.detail_2 = This user cannot interact with your repositories, created issues and comments.
block_user.detail_3 = This user cannot add you as a collaborator, nor can you add them as a collaborator.
follow_blocked_user = You cannot follow this user because you have blocked this user or this user has blocked you.
2018-04-19 09:24:31 -05:00
starred = Starred Repositories
2021-04-15 11:53:57 -05:00
watched = Watched Repositories
2022-10-10 18:12:03 -05:00
code = Code
2020-08-16 22:07:38 -05:00
projects = Projects
2023-05-09 00:57:24 -05:00
overview = Overview
2014-09-25 18:33:39 -05:00
following = Following
2015-12-21 07:24:11 -05:00
follow = Follow
unfollow = Unfollow
[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-14 18:07:38 -05:00
block = Block
unblock = Unblock
2019-03-18 21:28:10 -05:00
user_bio = Biography
2020-06-05 15:01:53 -05:00
disabled_public_activity = This user has disabled the public visibility of the activity.
2023-04-08 05:05:21 -05:00
email_visibility.limited = Your email address is visible to all authenticated users
email_visibility.private = Your email address is only visible to you and administrators
2023-07-31 03:44:45 -05:00
show_on_map = Show this place on a map
2023-08-16 05:12:03 -05:00
settings = User Settings
2014-09-25 18:33:39 -05:00
2023-04-17 17:04:26 -05: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 13:45:48 -05:00
form.name_chars_not_allowed = Username "%s" contains invalid characters.
2015-03-26 16:11:47 -05:00
2014-07-25 23:24:27 -05:00
[settings]
profile = Profile
2018-05-15 05:07:32 -05:00
account = Account
2021-10-27 10:40:08 -05:00
appearance = Appearance
2014-07-25 23:24:27 -05:00
password = Password
2017-10-16 04:14:12 -05:00
security = Security
2016-08-07 12:27:38 -05:00
avatar = Avatar
2017-04-26 08:10:43 -05:00
ssh_gpg_keys = SSH / GPG Keys
2014-07-25 23:24:27 -05:00
social = Social Accounts
2018-05-15 05:07:32 -05:00
applications = Applications
2018-04-19 09:24:31 -05:00
orgs = Manage Organizations
2017-09-14 06:46:14 -05:00
repos = Repositories
2014-08-14 03:51:55 -05:00
delete = Delete Account
2023-12-07 17:38:55 -05:00
twofa = Two-Factor Authentication (TOTP)
2018-04-19 09:24:31 -05:00
account_link = Linked Accounts
organization = Organizations
2023-08-08 10:25:05 -05:00
uid = UID
2023-12-07 17:38:55 -05:00
webauthn = Two-Factor Authentication (Security Keys)
[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-14 18:07:38 -05:00
blocked_users = Blocked Users
2014-07-25 23:24:27 -05:00
public_profile = Public Profile
2023-08-08 10:25:05 -05:00
biography_placeholder = Tell us a little bit about yourself! (You can use Markdown)
2023-07-31 03:44:45 -05:00
location_placeholder = Share your approximate location with others
2024-02-06 13:45:48 -05: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 09:24:31 -05:00
password_username_disabled = Non-local users are not allowed to change their username. Please contact your site administrator for more details.
2014-07-25 23:24:27 -05:00
full_name = Full Name
website = Website
location = Location
2019-01-09 12:22:57 -05:00
update_theme = Update Theme
2014-07-25 23:24:27 -05:00
update_profile = Update Profile
2021-10-27 10:40:08 -05:00
update_language = Update Language
2023-04-17 17:04:26 -05:00
update_language_not_found = Language "%s" is not available.
2021-10-27 10:40:08 -05:00
update_language_success = Language has been updated.
2017-05-17 20:03:43 -05:00
update_profile_success = Your profile has been updated.
2018-04-19 09:24:31 -05:00
change_username = Your username has been changed.
2023-07-25 06:00:32 -05:00
change_username_prompt = Note: Changing your username also changes your account URL.
2023-07-23 23:17:32 -05:00
change_username_redirect_prompt = The old username will redirect until someone claims it.
2014-09-26 21:33:30 -05:00
continue = Continue
cancel = Cancel
2018-05-04 19:28:30 -05:00
language = Language
2019-01-09 12:22:57 -05:00
ui = Theme
2022-01-21 12:59:26 -05:00
hidden_comment_types = Hidden comment types
2023-04-12 06:59:17 -05: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 12:59:26 -05:00
comment_type_group_reference = Reference
comment_type_group_label = Label
comment_type_group_milestone = Milestone
comment_type_group_assignee = Assignee
comment_type_group_title = Title
comment_type_group_branch = Branch
comment_type_group_time_tracking = Time Tracking
comment_type_group_deadline = Deadline
comment_type_group_dependency = Dependency
comment_type_group_lock = Lock Status
comment_type_group_review_request = Review request
comment_type_group_pull_request_push = Added commits
comment_type_group_project = Project
comment_type_group_issue_ref = Issue reference
saved_successfully = Your settings were saved successfully.
2020-06-05 15:01:53 -05:00
privacy = Privacy
2023-06-22 03:58:16 -05:00
keep_activity_private = Hide Activity from profile page
2020-06-05 15:01:53 -05:00
keep_activity_private_popup = Makes the activity visible only for you and the admins
2014-11-21 12:51:36 -05:00
2018-04-19 09:24:31 -05:00
lookup_avatar_by_mail = Look Up Avatar by Email Address
2016-08-07 12:27:38 -05:00
federated_avatar_lookup = Federated Avatar Lookup
enable_custom_avatar = Use Custom Avatar
2014-11-21 10:58:08 -05:00
choose_new_avatar = Choose new avatar
2018-04-19 09:24:31 -05:00
update_avatar = Update Avatar
2016-03-05 00:51:51 -05:00
delete_current_avatar = Delete Current Avatar
2018-04-19 09:24:31 -05:00
uploaded_avatar_not_a_image = The uploaded file is not an image.
2023-09-07 08:35:45 -05:00
uploaded_avatar_is_too_big = The uploaded file size (%d KiB) exceeds the maximum size (%d KiB).
2018-04-19 09:24:31 -05:00
update_avatar_success = Your avatar has been updated.
2021-11-16 14:13:13 -05:00
update_user_avatar_success = The user's avatar has been updated.
2014-07-25 23:24:27 -05:00
2018-04-19 09:24:31 -05:00
change_password = Update Password
2014-07-25 23:24:27 -05:00
old_password = Current Password
new_password = New Password
2023-08-08 10:25:05 -05:00
retype_new_password = Confirm New Password
2018-04-19 09:24:31 -05: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 12:25:58 -05:00
password_change_disabled = Non-local users cannot update their password through the Forgejo web interface.
2014-07-25 23:24:27 -05:00
2015-12-01 23:21:24 -05:00
emails = Email Addresses
2018-04-19 09:24:31 -05:00
manage_emails = Manage Email Addresses
2019-01-09 12:22:57 -05:00
manage_themes = Select default theme
2018-04-19 09:24:31 -05:00
manage_openid = Manage OpenID Addresses
2023-08-08 10:25:05 -05: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 12:22:57 -05:00
theme_desc = This will be your default theme across the site.
2014-12-22 02:41:29 -05:00
primary = Primary
2020-03-02 13:25:36 -05:00
activated = Activated
requires_activation = Requires activation
2018-04-19 09:24:31 -05:00
primary_email = Make Primary
2020-03-02 13:25:36 -05:00
activate_email = Send Activation
activations_pending = Activations Pending
2023-06-25 23:52:49 -05: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 09:24:31 -05:00
delete_email = Remove
email_deletion = Remove Email Address
email_deletion_desc = The email address and related information will be removed from your account. Git commits by this email address will remain unchanged. Continue?
email_deletion_success = The email address has been removed.
2019-01-09 12:22:57 -05:00
theme_update_success = Your theme was updated.
theme_update_error = The selected theme does not exist.
2018-04-19 09:24:31 -05:00
openid_deletion = Remove OpenID Address
openid_deletion_desc = Removing this OpenID address from your account will prevent you from signing in with it. Continue?
openid_deletion_success = The OpenID address has been removed.
add_new_email = Add New Email Address
add_new_openid = Add New OpenID URI
add_email = Add Email Address
2017-03-17 09:16:08 -05:00
add_openid = Add OpenID URI
2023-04-17 17:04:26 -05: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 09:24:31 -05:00
add_email_success = The new email address has been added.
2020-04-09 12:22:17 -05:00
email_preference_set_success = Email preference has been set successfully.
2018-04-19 09:24:31 -05:00
add_openid_success = The new OpenID address has been added.
keep_email_private = Hide Email Address
2023-10-25 06:12:36 -05: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 09:24:31 -05:00
openid_desc = OpenID lets you delegate authentication to an external provider.
2014-12-22 02:11:30 -05:00
2014-07-25 23:24:27 -05:00
manage_ssh_keys = Manage SSH Keys
2020-10-10 19:38:09 -05:00
manage_ssh_principals = Manage SSH Certificate Principals
2017-04-26 08:10:43 -05:00
manage_gpg_keys = Manage GPG Keys
2014-07-25 23:24:27 -05:00
add_key = Add Key
2024-02-19 07:25:48 -05: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-10 19:38:09 -05:00
principal_desc = These SSH certificate principals are associated with your account and allow full access to your repositories.
2018-04-19 09:24:31 -05:00
gpg_desc = These public GPG keys are associated with your account. Keep your private keys safe as they allow commits to be verified.
2024-01-21 12:25:58 -05: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>.
2014-07-25 23:24:27 -05:00
add_new_key = Add SSH Key
2017-04-26 08:10:43 -05:00
add_new_gpg_key = Add GPG Key
2021-01-20 15:36:55 -05:00
key_content_ssh_placeholder = Begins with 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'
2020-08-20 10:51:34 -05:00
key_content_gpg_placeholder = Begins with '-----BEGIN PGP PUBLIC KEY BLOCK-----'
2020-10-10 19:38:09 -05:00
add_new_principal = Add Principal
2019-02-03 18:56:53 -05:00
ssh_key_been_used = This SSH key has already been added to the server.
2020-10-10 19:38:09 -05: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 09:24:31 -05:00
gpg_key_id_used = A public GPG key with same ID already exists.
2021-07-13 08:28:07 -05: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 05:50:39 -05:00
gpg_key_matched_identities_long = The embedded identities in this key match the following activated email addresses for this user. Commits matching these email addresses can be verified with this key.
2021-07-13 08:28:07 -05:00
gpg_key_verified = Verified Key
gpg_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user in addition to any matched identities for this key.
gpg_key_verify = Verify
gpg_invalid_token_signature = The provided GPG key, signature and token do not match or token is out-of-date.
gpg_token_required = You must provide a signature for the below token
gpg_token = Token
gpg_token_help = You can generate a signature using:
gpg_token_code = echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature = Armored GPG signature
key_signature_gpg_placeholder = Begins with '-----BEGIN PGP SIGNATURE-----'
2023-04-17 17:04:26 -05:00
verify_gpg_key_success = GPG key "%s" has been verified.
2021-12-19 00:37:18 -05:00
ssh_key_verified = Verified Key
ssh_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user.
ssh_key_verify = Verify
ssh_invalid_token_signature = The provided SSH key, signature or token do not match or token is out-of-date.
ssh_token_required = You must provide a signature for the below token
ssh_token = Token
ssh_token_help = You can generate a signature using:
ssh_token_signature = Armored SSH signature
key_signature_ssh_placeholder = Begins with '-----BEGIN SSH SIGNATURE-----'
2023-04-17 17:04:26 -05:00
verify_ssh_key_success = SSH key "%s" has been verified.
2017-04-26 08:10:43 -05:00
subkeys = Subkeys
key_id = Key ID
2014-07-25 23:24:27 -05:00
key_name = Key Name
key_content = Content
2020-10-10 19:38:09 -05:00
principal_content = Content
2023-04-17 17:04:26 -05: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 09:24:31 -05:00
delete_key = Remove
ssh_key_deletion = Remove SSH Key
gpg_key_deletion = Remove GPG Key
2020-10-10 19:38:09 -05:00
ssh_principal_deletion = Remove SSH Certificate Principal
2018-04-19 09:24:31 -05: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-10 19:38:09 -05:00
ssh_principal_deletion_desc = Removing a SSH Certificate Principal revokes its access to your account. Continue?
2018-04-19 09:24:31 -05:00
ssh_key_deletion_success = The SSH key has been removed.
gpg_key_deletion_success = The GPG key has been removed.
2020-10-10 19:38:09 -05:00
ssh_principal_deletion_success = The principal has been removed.
2023-05-06 08:11:27 -05:00
added_on = Added on %s
2023-05-06 07:37:02 -05:00
valid_until_date = Valid until %s
2017-06-24 01:37:03 -05:00
valid_forever = Valid forever
2014-07-25 23:24:27 -05:00
last_used = Last used on
no_activity = No recent activity
2018-01-06 17:55:53 -05:00
can_read_info = Read
can_write_info = Write
2017-05-17 20:03:43 -05: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-10 19:38:09 -05:00
principal_state_desc = This principal has been used in the last 7 days
2017-03-20 03:31:08 -05:00
show_openid = Show on profile
hide_openid = Hide from profile
2018-04-19 09:24:31 -05:00
ssh_disabled = SSH Disabled
2023-04-10 12:22:51 -05:00
ssh_signonly = SSH is currently disabled so these keys are only used for commit signature verification.
2020-12-25 23:24:47 -05:00
ssh_externally_managed = This SSH key is externally managed for this user
2014-07-25 23:24:27 -05:00
manage_social = Manage Associated Social Accounts
2023-08-08 10:25:05 -05: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 09:24:31 -05:00
unbind = Unlink
2023-08-08 10:25:05 -05:00
unbind_success = The social account has been removed successfully.
2014-08-09 19:25:02 -05:00
2018-04-19 09:24:31 -05:00
manage_access_token = Manage Access Tokens
2014-11-12 06:48:50 -05:00
generate_new_token = Generate New Token
2024-01-21 12:25:58 -05:00
tokens_desc = These tokens grant access to your account using the Forgejo API.
2014-11-12 06:48:50 -05:00
token_name = Token Name
generate_token = Generate Token
2018-04-19 09:24:31 -05:00
generate_token_success = Your new token has been generated. Copy it now as it will not be shown again.
2020-04-13 14:02:48 -05:00
generate_token_name_duplicate = <strong>%s</strong> has been used as an application name already. Please use a new one.
2014-11-12 06:48:50 -05:00
delete_token = Delete
2018-04-19 09:24:31 -05:00
access_token_deletion = Delete Access Token
2022-06-07 19:28:10 -05: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 09:24:31 -05: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 13:57:16 -05: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
2023-06-13 02:55:48 -05:00
permission_no_access = No Access
permission_read = Read
permission_write = Read and Write
access_token_desc = Selected token permissions limit authorization only to the corresponding <a %s>API</a> routes. Read the <a %s>documentation</a> for more information.
Redesign Scoped Access Tokens (#24767)
## Changes
- Adds the following high level access scopes, each with `read` and
`write` levels:
- `activitypub`
- `admin` (hidden if user is not a site admin)
- `misc`
- `notification`
- `organization`
- `package`
- `issue`
- `repository`
- `user`
- Adds new middleware function `tokenRequiresScopes()` in addition to
`reqToken()`
- `tokenRequiresScopes()` is used for each high-level api section
- _if_ a scoped token is present, checks that the required scope is
included based on the section and HTTP method
- `reqToken()` is used for individual routes
- checks that required authentication is present (but does not check
scope levels as this will already have been handled by
`tokenRequiresScopes()`
- Adds migration to convert old scoped access tokens to the new set of
scopes
- Updates the user interface for scope selection
### User interface example
<img width="903" alt="Screen Shot 2023-05-31 at 1 56 55 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/654766ec-2143-4f59-9037-3b51600e32f3">
<img width="917" alt="Screen Shot 2023-05-31 at 1 56 43 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/1ad64081-012c-4a73-b393-66b30352654c">
## tokenRequiresScopes Design Decision
- `tokenRequiresScopes()` was added to more reliably cover api routes.
For an incoming request, this function uses the given scope category
(say `AccessTokenScopeCategoryOrganization`) and the HTTP method (say
`DELETE`) and verifies that any scoped tokens in use include
`delete:organization`.
- `reqToken()` is used to enforce auth for individual routes that
require it. If a scoped token is not present for a request,
`tokenRequiresScopes()` will not return an error
## TODO
- [x] Alphabetize scope categories
- [x] Change 'public repos only' to a radio button (private vs public).
Also expand this to organizations
- [X] Disable token creation if no scopes selected. Alternatively, show
warning
- [x] `reqToken()` is missing from many `POST/DELETE` routes in the api.
`tokenRequiresScopes()` only checks that a given token has the correct
scope, `reqToken()` must be used to check that a token (or some other
auth) is present.
- _This should be addressed in this PR_
- [x] The migration should be reviewed very carefully in order to
minimize access changes to existing user tokens.
- _This should be addressed in this PR_
- [x] Link to api to swagger documentation, clarify what
read/write/delete levels correspond to
- [x] Review cases where more than one scope is needed as this directly
deviates from the api definition.
- _This should be addressed in this PR_
- For example:
```go
m.Group("/users/{username}/orgs", func() {
m.Get("", reqToken(), org.ListUserOrgs)
m.Get("/{org}/permissions", reqToken(), org.GetUserOrgsPermissions)
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser,
auth_model.AccessTokenScopeCategoryOrganization),
context_service.UserAssignmentAPI())
```
## Future improvements
- [ ] Add required scopes to swagger documentation
- [ ] Redesign `reqToken()` to be opt-out rather than opt-in
- [ ] Subdivide scopes like `repository`
- [ ] Once a token is created, if it has no scopes, we should display
text instead of an empty bullet point
- [ ] If the 'public repos only' option is selected, should read
categories be selected by default
Closes #24501
Closes #24799
Co-authored-by: Jonathan Tran <jon@allspice.io>
Co-authored-by: Kyle D <kdumontnu@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
2023-06-04 13:57:16 -05:00
at_least_one_permission = You must select at least one permission to create a token
permissions_list = Permissions:
2014-11-12 06:48:50 -05:00
2019-03-08 11:42:50 -05:00
manage_oauth2_applications = Manage OAuth2 Applications
edit_oauth2_application = Edit OAuth2 Application
2024-01-21 12:25:58 -05:00
oauth2_applications_desc = OAuth2 applications enables your third-party application to securely authenticate users at this Forgejo instance.
2019-03-08 11:42:50 -05:00
remove_oauth2_application = Remove OAuth2 Application
2019-06-05 09:16:06 -05:00
remove_oauth2_application_desc = Removing an OAuth2 application will revoke access to all signed access tokens. Continue?
2019-03-08 11:42:50 -05:00
remove_oauth2_application_success = The application has been deleted.
create_oauth2_application = Create a new OAuth2 Application
create_oauth2_application_button = Create Application
2023-08-08 10:25:05 -05:00
create_oauth2_application_success = You have successfully created a new OAuth2 application.
update_oauth2_application_success = You have successfully updated the OAuth2 application.
2019-03-08 11:42:50 -05:00
oauth2_application_name = Application Name
2022-10-24 02:59:24 -05: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 02:00:12 -05:00
oauth2_redirect_uris = Redirect URIs. Please use a new line for every URI.
2019-03-08 11:42:50 -05:00
save_application = Save
oauth2_client_id = Client ID
oauth2_client_secret = Client Secret
oauth2_regenerate_secret = Regenerate Secret
oauth2_regenerate_secret_hint = Lost your secret?
2023-08-08 10:25:05 -05: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 11:42:50 -05: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 10:25:05 -05:00
oauth2_application_remove_description = Removing an OAuth2 application will prevent it from accessing authorized user accounts on this instance. Continue?
2024-01-21 12:25:58 -05: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 11:42:50 -05:00
2019-04-17 03:18:16 -05:00
authorized_oauth2_applications = Authorized OAuth2 Applications
2024-01-21 12:25:58 -05:00
authorized_oauth2_applications_description = You have granted access to your personal Forgejo account to these third party applications. Please revoke access for applications you no longer need.
2019-04-17 03:18:16 -05:00
revoke_key = Revoke
revoke_oauth2_grant = Revoke Access
revoke_oauth2_grant_description = Revoking access for this third party application will prevent this application from accessing your data. Are you sure?
2023-08-08 10:25:05 -05:00
revoke_oauth2_grant_success = Access revoked successfully.
2019-04-17 03:18:16 -05:00
2023-12-07 17:38:55 -05: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-17 20:03:43 -05:00
twofa_is_enrolled = Your account is currently <strong>enrolled</strong> in two-factor authentication.
2017-03-09 08:24:57 -05:00
twofa_not_enrolled = Your account is not currently enrolled in two-factor authentication.
2018-04-19 09:24:31 -05:00
twofa_disable = Disable Two-Factor Authentication
2023-12-07 17:38:55 -05:00
twofa_scratch_token_regenerate = Regenerate Single-Use Recovery Key
twofa_scratch_token_regenerated = Your single-use recovery key is now %s. Store it in a safe place, as it will not be shown again.
2018-04-19 09:24:31 -05:00
twofa_enroll = Enroll into Two-Factor Authentication
twofa_disable_note = You can disable two-factor authentication if needed.
twofa_disable_desc = Disabling two-factor authentication will make your account less secure. Continue?
2023-12-07 17:38:55 -05: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-15 21:14:29 -05: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 09:24:31 -05:00
then_enter_passcode = And enter the passcode shown in the application:
passcode_invalid = The passcode is incorrect. Try again.
2023-12-07 17:38:55 -05: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 15:38:41 -05:00
twofa_failed_get_secret = Failed to get secret.
2017-01-15 21:14:29 -05:00
2022-01-15 11:52:56 -05: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.
2022-01-14 10:03:31 -05:00
webauthn_register_key = Add Security Key
webauthn_nickname = Nickname
webauthn_delete_key = Remove Security Key
webauthn_delete_key_desc = If you remove a security key you can no longer sign in with it. Continue?
2023-12-07 17:38:55 -05: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 09:12:37 -05:00
2018-04-19 09:24:31 -05:00
manage_account_links = Manage Linked Accounts
2024-01-21 12:25:58 -05: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.
2022-05-29 03:19:56 -05:00
link_account = Link Account
2018-04-19 09:24:31 -05:00
remove_account_link = Remove Linked Account
2024-01-21 12:25:58 -05:00
remove_account_link_desc = Removing a linked account will revoke its access to your Forgejo account. Continue?
2018-04-19 09:24:31 -05:00
remove_account_link_success = The linked account has been removed.
2017-02-22 02:14:37 -05:00
2023-08-08 10:25:05 -05:00
hooks.desc = Add webhooks which will be triggered for <strong>all repositories</strong> that you own.
2023-03-10 09:28:32 -05:00
2017-06-02 03:43:44 -05:00
orgs_none = You are not a member of any organizations.
2023-08-08 10:25:05 -05:00
repos_none = You do not own any repositories.
[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-14 18:07:38 -05:00
blocked_users_none = You haven't blocked any users.
2017-06-02 03:43:44 -05:00
2014-07-25 23:24:27 -05:00
delete_account = Delete Your Account
2023-01-08 13:25:28 -05:00
delete_prompt = This operation will permanently delete your user account. It <strong>CANNOT</strong> be undone.
2021-01-21 21:56:19 -05:00
delete_with_all_comments = Your account is younger than %s. To avoid ghost comments, all issue/PR comments will be deleted with it.
2014-07-25 23:24:27 -05:00
confirm_delete_account = Confirm Deletion
2018-04-19 09:24:31 -05:00
delete_account_title = Delete User Account
delete_account_desc = Are you sure you want to permanently delete this user account?
2014-07-25 23:24:27 -05:00
2019-08-29 09:05:42 -05:00
email_notifications.enable = Enable Email Notifications
email_notifications.onmention = Only Email on Mention
email_notifications.disable = Disable Email Notifications
email_notifications.submit = Set Email Preference
2022-07-28 10:28:46 -05:00
email_notifications.andyourown = And Your Own Notifications
2019-08-29 09:05:42 -05:00
2021-06-26 14:53:14 -05:00
visibility = User visibility
visibility.public = Public
2023-04-08 05:05:21 -05:00
visibility.public_tooltip = Visible to everyone
2021-06-26 14:53:14 -05:00
visibility.limited = Limited
2023-08-08 10:25:05 -05:00
visibility.limited_tooltip = Visible only to authenticated users
2021-06-26 14:53:14 -05:00
visibility.private = Private
2023-08-08 10:25:05 -05:00
visibility.private_tooltip = Visible only to members of organizations you have joined
2021-06-26 14:53:14 -05: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-14 18:07:38 -05: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-25 23:24:27 -05:00
[repo]
2024-01-21 12:25:58 -05: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 06:59:31 -05: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-25 23:24:27 -05:00
owner = Owner
2020-12-21 08:12:13 -05:00
owner_helper = Some organizations may not show up in the dropdown due to a maximum repository count limit.
2014-07-25 23:24:27 -05:00
repo_name = Repository Name
2018-04-19 09:24:31 -05:00
repo_name_helper = Good repository names use short, memorable and unique keywords.
2019-11-14 18:52:18 -05:00
repo_size = Repository Size
2019-11-11 10:15:29 -05: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-25 23:24:27 -05:00
visibility = Visibility
2019-09-05 04:13:51 -05:00
visibility_description = Only the owner or the organization members if they have rights, will be able to see it.
2023-08-08 10:25:05 -05:00
visibility_helper = Make repository private
2018-07-04 06:43:21 -05:00
visibility_helper_forced = Your site administrator forces new repositories to be private.
visibility_fork_helper = (Changing this will affect all forks.)
2018-07-03 18:52:36 -05:00
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener noreferrer" href="%s">Help</a>.
2014-11-05 23:30:04 -05:00
fork_repo = Fork Repository
fork_from = Fork From
2021-12-12 20:59:09 -05:00
already_forked = You've already forked %s
fork_to_different_account = Fork to a different account
2018-07-04 06:43:21 -05:00
fork_visibility_helper = The visibility of a forked repository cannot be changed.
2023-09-28 20:48:39 -05:00
fork_branch = Branch to be cloned to the fork
all_branches = All branches
2023-07-14 02:56:20 -05:00
fork_no_valid_owners = This repository can not be forked because there are no valid owners.
2019-11-11 10:15:29 -05:00
use_template = Use this template
2021-08-12 07:21:34 -05:00
clone_in_vsc = Clone in VS Code
2024-02-06 13:45:48 -05:00
clone_in_vscodium = Clone in VSCodium
2021-08-12 07:21:34 -05:00
download_zip = Download ZIP
download_tar = Download TAR.GZ
2021-08-24 11:47:09 -05:00
download_bundle = Download BUNDLE
2019-11-11 10:15:29 -05:00
generate_repo = Generate Repository
generate_from = Generate From
2014-07-25 23:24:27 -05:00
repo_desc = Description
2021-02-21 04:59:31 -05:00
repo_desc_helper = Enter short description (optional)
2014-07-25 23:24:27 -05:00
repo_lang = Language
2018-04-19 09:24:31 -05:00
repo_gitignore_helper = Select .gitignore templates.
2021-02-21 04:59:31 -05:00
repo_gitignore_helper_desc = Choose which files not to track from a list of templates for common languages. Typical artifacts generated by each language's build tools are included on .gitignore by default.
2019-09-08 03:28:40 -05:00
issue_labels = Issue Labels
issue_labels_helper = Select an issue label set.
2014-07-25 23:24:27 -05:00
license = License
2018-04-19 09:24:31 -05:00
license_helper = Select a license file.
2021-02-21 04:59:31 -05: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-01-19 11:05:02 -05:00
object_format = Object Format
object_format_helper = Object format of the repository. Cannot be changed later. SHA1 is most compatible.
2018-04-19 09:24:31 -05:00
readme = README
readme_helper = Select a README file template.
2021-02-21 04:59:31 -05:00
readme_helper_desc = This is the place where you can write a complete description for your project.
2018-04-19 09:24:31 -05:00
auto_init = Initialize Repository (Adds .gitignore, License and README)
2021-02-21 04:59:31 -05:00
trust_model_helper = Select trust model for signature verification. Possible options are:
trust_model_helper_collaborator = Collaborator: Trust signatures by collaborators
trust_model_helper_committer = Committer: Trust signatures that match committers
trust_model_helper_collaborator_committer = Collaborator+Committer: Trust signatures by collaborators which match the committer
trust_model_helper_default = Default: Use the default trust model for this installation
2014-07-25 23:24:27 -05:00
create_repo = Create Repository
2014-08-02 12:47:33 -05:00
default_branch = Default Branch
2023-08-29 07:15:19 -05:00
default_branch_label = default
2021-02-21 04:59:31 -05:00
default_branch_helper = The default branch is the base branch for pull requests and code commits.
2016-07-09 00:42:05 -05:00
mirror_prune = Prune
2018-04-19 09:24:31 -05:00
mirror_prune_desc = Remove obsolete remote-tracking references
2022-07-08 14:45:12 -05:00
mirror_interval = Mirror Interval (valid time units are 'h', 'm', 's'). 0 to disable periodic sync. (Minimum interval: %s)
2018-04-19 09:24:31 -05:00
mirror_interval_invalid = The mirror interval is not valid.
2024-01-18 05:27:07 -05:00
mirror_sync = synced
2022-07-08 14:45:12 -05:00
mirror_sync_on_commit = Sync when commits are pushed
2018-04-19 09:24:31 -05:00
mirror_address = Clone From URL
2021-06-14 12:20:43 -05:00
mirror_address_desc = Put any required credentials in the Authorization section.
2024-02-06 13:45:48 -05:00
mirror_address_url_invalid = The provided URL is invalid. You must escape all components of the URL correctly.
2023-08-08 10:25:05 -05:00
mirror_address_protocol_invalid = The provided URL is invalid. Only http(s):// or git:// locations can be used for mirroring.
2021-04-09 10:00:32 -05:00
mirror_lfs = Large File Storage (LFS)
2021-04-08 17:25:57 -05:00
mirror_lfs_desc = Activate mirroring of LFS data.
mirror_lfs_endpoint = LFS Endpoint
mirror_lfs_endpoint_desc = Sync will attempt to use the clone url to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
2018-04-19 09:24:31 -05:00
mirror_last_synced = Last Synchronized
2021-05-31 05:46:20 -05:00
mirror_password_placeholder = (Unchanged)
mirror_password_blank_placeholder = (Unset)
mirror_password_help = Change the username to erase a stored password.
2015-11-16 23:28:46 -05:00
watchers = Watchers
stargazers = Stargazers
2023-06-05 08:25:43 -05:00
stars_remove_warning = This will remove all stars from this repository.
2015-11-16 23:28:46 -05:00
forks = Forks
2017-12-03 18:14:26 -05:00
reactions_more = and %d more
2020-01-17 02:34:37 -05:00
unit_disabled = The site administrator has disabled this repository section.
2020-02-11 04:34:17 -05:00
language_other = Other
2020-09-24 23:09:23 -05:00
adopt_search = Enter username to search for unadopted repositories... (leave blank to find all)
adopt_preexisting_label = Adopt Files
adopt_preexisting = Adopt pre-existing files
adopt_preexisting_content = Create repository from %s
adopt_preexisting_success = Adopted files and created repository from %s
delete_preexisting_label = Delete
delete_preexisting = Delete pre-existing files
delete_preexisting_content = Delete files in %s
delete_preexisting_success = Deleted unadopted files in %s
2021-06-27 18:13:20 -05:00
blame_prior = View blame prior to this change
2023-09-16 12:42:34 -05: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-06 19:11:02 -05:00
author_search_tooltip = Shows a maximum of 30 users
2014-07-25 23:24:27 -05:00
2023-09-29 02:42:39 -05:00
tree_path_not_found_commit = Path %[1]s doesn't exist in commit %[2]s
tree_path_not_found_branch = Path %[1]s doesn't exist in branch %[2]s
tree_path_not_found_tag = Path %[1]s doesn't exist in tag %[2]s
2021-02-28 19:47:30 -05:00
transfer.accept = Accept Transfer
2023-10-22 06:59:31 -05:00
transfer.accept_desc = Transfer to "%s"
2021-02-28 19:47:30 -05:00
transfer.reject = Reject Transfer
2023-10-22 06:59:31 -05:00
transfer.reject_desc = Cancel transfer to "%s"
2023-08-08 10:25:05 -05: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-02-28 19:47:30 -05:00
2020-06-22 15:20:51 -05:00
desc.private = Private
desc.public = Public
2023-10-16 16:06:15 -05:00
desc.template = Template
2020-06-22 15:20:51 -05:00
desc.internal = Internal
desc.archived = Archived
2024-01-19 11:05:02 -05:00
desc.sha256 = SHA256
2020-06-22 15:20:51 -05:00
2019-11-11 10:15:29 -05:00
template.items = Template Items
template.git_content = Git Content (Default Branch)
2019-11-24 12:57:52 -05:00
template.git_hooks = Git Hooks
2021-12-23 22:56:57 -05:00
template.git_hooks_tooltip = You are currently unable to modify or remove Git Hooks once added. Select this only if you trust the template repository.
2019-11-24 12:57:52 -05:00
template.webhooks = Webhooks
2019-11-11 10:15:29 -05:00
template.topics = Topics
2019-11-25 00:17:51 -05:00
template.avatar = Avatar
template.issue_labels = Issue Labels
2019-11-11 10:15:29 -05:00
template.one_item = Must select at least one template item
template.invalid = Must select a template repository
2023-08-08 10:25:05 -05: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 13:58:38 -05: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 04:19:12 -05: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-17 17:04:26 -05:00
form.name_reserved = The repository name "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a repository name.
2015-03-26 16:11:47 -05:00
2021-06-14 12:20:43 -05:00
need_auth = Authorization
2020-08-27 20:36:37 -05:00
migrate_options = Migration Options
migrate_service = Migration Service
2022-07-12 04:04:15 -05:00
migrate_options_mirror_helper = This repository will be a mirror
2021-04-08 17:25:57 -05:00
migrate_options_lfs = Migrate LFS files
migrate_options_lfs_endpoint.label = LFS Endpoint
migrate_options_lfs_endpoint.description = Migration will attempt to use your Git remote to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
migrate_options_lfs_endpoint.description.local = A local server path is supported too.
2023-08-08 10:25:05 -05:00
migrate_options_lfs_endpoint.placeholder = If left blank, the endpoint will be derived from the clone URL
2019-05-06 20:12:51 -05:00
migrate_items = Migration Items
migrate_items_wiki = Wiki
migrate_items_milestones = Milestones
migrate_items_labels = Labels
migrate_items_issues = Issues
migrate_items_pullrequests = Pull Requests
2020-09-09 13:29:10 -05:00
migrate_items_merge_requests = Merge Requests
2019-05-06 20:12:51 -05:00
migrate_items_releases = Releases
2014-07-31 23:06:19 -05:00
migrate_repo = Migrate Repository
2018-04-19 09:24:31 -05: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-23 22:56:57 -05: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 09:24:31 -05:00
migrate.clone_local_path = or a local server path
2015-11-03 18:40:52 -05:00
migrate.permission_denied = You are not allowed to import local repositories.
2023-01-08 13:25:28 -05:00
migrate.permission_denied_blocked = You cannot import from disallowed hosts, please ask the admin to check ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS settings.
2023-03-23 12:27:03 -05:00
migrate.invalid_local_path = "The local path is invalid. It doesn't exist or is not a directory."
2021-04-08 17:25:57 -05:00
migrate.invalid_lfs_endpoint = The LFS endpoint is not valid.
2015-11-19 13:45:07 -05:00
migrate.failed = Migration failed: %v
2020-09-09 13:29:10 -05:00
migrate.migrate_items_options = Access Token is required to migrate additional items
2019-07-07 21:14:12 -05:00
migrated_from = Migrated from <a href="%[1]s">%[2]s</a>
migrated_from_fake = Migrated From %[1]s
2020-09-09 13:29:10 -05:00
migrate.migrate = Migrate From %s
2019-10-13 08:23:14 -05:00
migrate.migrating = Migrating from <b>%s</b> ...
migrate.migrating_failed = Migrating from <b>%s</b> failed.
2023-05-11 03:25:46 -05:00
migrate.migrating_failed.error = Failed to migrate: %s
2021-11-13 06:28:50 -05:00
migrate.migrating_failed_no_addr = Migration failed.
2021-12-23 22:56:57 -05:00
migrate.github.description = Migrate data from github.com or other GitHub instances.
2021-08-25 08:47:05 -05: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 12:25:58 -05:00
migrate.forgejo.description = Migrate data from codeberg.org or other Forgejo instances.
2021-08-25 08:47:05 -05: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 17:24:02 -05:00
migrate.codebase.description = Migrate data from codebasehq.com.
2021-11-15 18:12:09 -05:00
migrate.gitbucket.description = Migrate data from GitBucket instances.
2021-06-16 17:02:24 -05:00
migrate.migrating_git = Migrating Git Data
migrate.migrating_topics = Migrating Topics
migrate.migrating_milestones = Migrating Milestones
migrate.migrating_labels = Migrating Labels
migrate.migrating_releases = Migrating Releases
migrate.migrating_issues = Migrating Issues
migrate.migrating_pulls = Migrating Pull Requests
2023-05-11 03:25:46 -05:00
migrate.cancel_migrating_title = Cancel Migration
migrate.cancel_migrating_confirm = Do you want to cancel this migration?
2014-07-31 23:06:19 -05:00
2016-02-01 15:59:48 -05:00
mirror_from = mirror of
2015-07-23 15:50:05 -05:00
forked_from = forked from
2019-11-11 10:15:29 -05:00
generated_from = generated from
2018-04-19 09:24:31 -05:00
fork_from_self = You cannot fork a repository you own.
2019-01-10 23:25:14 -05:00
fork_guest_user = Sign in to fork this repository.
2020-09-11 06:01:51 -05:00
watch_guest_user = Sign in to watch this repository.
star_guest_user = Sign in to star this repository.
2014-08-10 22:11:18 -05:00
unwatch = Unwatch
watch = Watch
unstar = Unstar
star = Star
fork = Fork
2018-04-19 09:24:31 -05:00
download_archive = Download Repository
2022-12-08 08:14:09 -05:00
more_operations = More Operations
2014-08-10 22:11:18 -05:00
2014-09-28 00:38:25 -05:00
no_desc = No Description
2014-08-31 08:03:16 -05:00
quick_guide = Quick Guide
clone_this_repo = Clone this repository
2022-11-11 12:02:50 -05:00
cite_this_repo = Cite this repository
2017-05-17 20:03:43 -05: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-17 19:01:04 -05:00
empty_message = This repository does not contain any content.
2021-12-23 22:56:57 -05:00
broken_message = The Git data underlying this repository cannot be read. Contact the administrator of this instance or delete this repository.
2015-10-02 18:58:36 -05:00
2015-12-02 17:00:23 -05:00
code = Code
2018-04-19 09:24:31 -05:00
code.desc = Access source code, files, commits and branches.
2014-09-23 12:47:54 -05:00
branch = Branch
tree = Tree
2020-09-08 11:29:51 -05:00
clear_ref = `Clear current reference`
2015-11-14 04:34:01 -05:00
filter_branch_and_tag = Filter branch or tag
2021-05-03 12:27:48 -05:00
find_tag = Find tag
2014-09-23 12:47:54 -05:00
branches = Branches
tags = Tags
issues = Issues
2015-09-02 15:18:09 -05:00
pulls = Pull Requests
2020-08-16 22:07:38 -05:00
project_board = Projects
2022-05-08 10:51:50 -05:00
packages = Packages
2023-04-02 23:05:37 -05:00
actions = Actions
2015-07-23 15:50:05 -05:00
labels = Labels
Add Organization Wide Labels (#10814)
* Add organization wide labels
Implement organization wide labels similar to organization wide
webhooks. This lets you create individual labels for organizations that can be used
for all repos under that organization (so being able to reuse the same
label across multiple repos).
This makes it possible for small organizations with many repos to use
labels effectively.
Fixes #7406
* Add migration
* remove comments
* fix tests
* Update options/locale/locale_en-US.ini
Removed unused translation string
* show org labels in issue search label filter
* Use more clear var name
* rename migration after merge from master
* comment typo
* update migration again after rebase with master
* check for orgID <=0 per guillep2k review
* fmt
* Apply suggestions from code review
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* remove unused code
* Make sure RepoID is 0 when searching orgID per code review
* more changes/code review requests
* More descriptive translation var per code review
* func description/delete comment when issue label deleted instead of hiding it
* remove comment
* only use issues in that repo when calculating number of open issues for org label on repo label page
* Add integration test for IssuesSearch API with labels
* remove unused function
* Update models/issue_label.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Use subquery in GetLabelIDsInReposByNames
* Fix tests to use correct orgID
* fix more tests
* IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well
* update comment for clarity
* Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition
* Don't sort repos by date in IssuesSearch API
After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45
Returns different results for MySQL than other engines. However, the similar query:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30
Returns the same results.
This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function.
* linter is back!
* code review
* remove now unused option
* Fix newline at end of files
* more unused code
* update to master
* check for matching ids before query
* Update models/issue_label.go
Co-Authored-By: 6543 <6543@obermui.de>
* Update models/issue_label.go
* update comments
* Update routers/org/setting.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2020-03-31 23:14:46 -05:00
org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization
org_labels_desc_manage = manage
2015-07-23 15:50:05 -05:00
milestones = Milestones
2014-09-23 12:47:54 -05:00
commits = Commits
2017-12-03 15:52:30 -05:00
commit = Commit
2020-11-02 18:10:22 -05:00
release = Release
2014-09-23 12:47:54 -05:00
releases = Releases
2020-11-05 09:20:42 -05:00
tag = Tag
2020-11-02 18:10:22 -05:00
released_this = released this
2023-10-22 06:59:31 -05:00
file.title = %s at %s
2014-10-11 17:02:48 -05:00
file_raw = Raw
file_history = History
2021-01-12 22:45:19 -05:00
file_view_source = View Source
file_view_rendered = View Rendered
2014-10-11 17:02:48 -05:00
file_view_raw = View Raw
2015-05-13 17:14:24 -05:00
file_permalink = Permalink
2018-04-19 09:24:31 -05:00
file_too_large = The file is too large to be shown.
2023-08-03 09:16:06 -05:00
invisible_runes_header = `This file contains invisible Unicode characters`
invisible_runes_description = `This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.`
ambiguous_runes_header = `This file contains ambiguous Unicode characters`
ambiguous_runes_description = `This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.`
2022-08-13 13:32:34 -05:00
invisible_runes_line = `This line has invisible unicode characters`
ambiguous_runes_line = `This line has ambiguous unicode characters`
2023-05-24 09:39:33 -05:00
ambiguous_character = `%[1]c [U+%04[1]X] can be confused with %[2]c [U+%04[2]X]`
2022-01-06 20:18:52 -05:00
escape_control_characters = Escape
unescape_control_characters = Unescape
2021-10-02 02:46:43 -05:00
file_copy_permalink = Copy Permalink
2022-04-26 05:54:40 -05:00
view_git_blame = View Git Blame
2018-04-19 09:24:31 -05:00
video_not_supported_in_browser = Your browser does not support the HTML5 'video' tag.
2018-10-29 21:17:26 -05:00
audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' tag.
2016-12-25 20:16:37 -05:00
stored_lfs = Stored with Git LFS
2020-02-21 18:04:20 -05:00
symbolic_link = Symbolic link
2023-06-16 00:46:12 -05:00
executable_file = Executable File
2024-01-24 00:51:37 -05:00
vendored = Vendored
generated = Generated
2018-04-19 09:24:31 -05:00
commit_graph = Commit Graph
2020-11-08 12:21:54 -05:00
commit_graph.select = Select branches
commit_graph.hide_pr_refs = Hide Pull Requests
2020-08-06 03:04:08 -05:00
commit_graph.monochrome = Mono
2021-10-21 16:51:03 -05:00
commit_graph.color = Color
2023-07-27 05:47:41 -05: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-19 21:47:00 -05:00
blame = Blame
2021-11-14 20:05:12 -05:00
download_file = Download file
2019-04-19 21:47:00 -05:00
normal_view = Normal View
2019-10-07 18:38:41 -05:00
line = line
2019-10-06 23:59:17 -05: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 03:02:57 -05:00
from_comment = (comment)
2014-09-23 12:47:54 -05:00
2022-08-07 18:15:11 -05:00
editor.add_file = Add File
2018-04-19 09:24:31 -05:00
editor.new_file = New File
editor.upload_file = Upload File
editor.edit_file = Edit File
2016-08-28 06:31:42 -05:00
editor.preview_changes = Preview Changes
2019-02-12 10:09:43 -05:00
editor.cannot_edit_lfs_files = LFS files cannot be edited in the web interface.
2018-04-19 09:24:31 -05:00
editor.cannot_edit_non_text_files = Binary files cannot be edited in the web interface.
editor.edit_this_file = Edit File
2019-10-29 16:32:21 -05:00
editor.this_file_locked = File is locked
2018-04-19 09:24:31 -05:00
editor.must_be_on_a_branch = You must be on a branch to make or propose changes to this file.
editor.fork_before_edit = You must fork this repository to make or propose changes to this file.
editor.delete_this_file = Delete File
editor.must_have_write_access = You must have write access to make or propose changes to this file.
2023-04-17 17:04:26 -05:00
editor.file_delete_success = File "%s" has been deleted.
2018-02-16 09:02:40 -05:00
editor.name_your_file = Name your file…
2018-04-19 09:24:31 -05: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 06:31:42 -05:00
editor.or = or
2018-04-19 09:24:31 -05:00
editor.cancel_lower = Cancel
2020-01-15 03:32:57 -05:00
editor.commit_signed_changes = Commit Signed Changes
2016-08-28 03:41:44 -05:00
editor.commit_changes = Commit Changes
2019-04-17 11:06:35 -05:00
editor.add_tmpl = Add '<filename>'
2023-04-17 17:04:26 -05:00
editor.add = Add %s
editor.update = Update %s
editor.delete = Delete %s
2022-02-09 15:28:55 -05:00
editor.patch = Apply Patch
editor.patching = Patching:
2023-04-17 17:04:26 -05:00
editor.fail_to_apply_patch = Unable to apply patch "%s"
2022-02-09 15:28:55 -05:00
editor.new_patch = New Patch
2018-02-16 09:02:40 -05:00
editor.commit_message_desc = Add an optional extended description…
2021-01-29 03:57:45 -05:00
editor.signoff_desc = Add a Signed-off-by trailer by the committer at the end of the commit log message.
2017-11-01 11:03:10 -05:00
editor.commit_directly_to_this_branch = Commit directly to the <strong class="branch-name">%s</strong> branch.
2016-08-15 01:02:14 -05:00
editor.create_new_branch = Create a <strong>new branch</strong> for this commit and start a pull request.
2019-10-04 21:09:19 -05:00
editor.create_new_branch_np = Create a <strong>new branch</strong> for this commit.
2019-07-17 13:40:28 -05:00
editor.propose_file_change = Propose file change
2023-01-31 20:43:06 -05:00
editor.new_branch_name = Name the new branch for this commit
2018-02-16 09:02:40 -05:00
editor.new_branch_name_desc = New branch name…
2016-08-28 03:41:44 -05:00
editor.cancel = Cancel
2018-04-19 09:24:31 -05:00
editor.filename_cannot_be_empty = The filename cannot be empty.
2023-04-17 17:04:26 -05:00
editor.filename_is_invalid = The filename is invalid: "%s".
2024-01-21 12:25:58 -05:00
editor.invalid_commit_mail = Invalid mail for creating a commit.
2023-04-17 17:04:26 -05: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 13:46:47 -05:00
editor.file_is_a_symlink = `"%s" is a symbolic link. Symbolic links cannot be edited in the web editor`
2023-04-17 17:04:26 -05:00
editor.filename_is_a_directory = Filename "%s" is already used as a directory name in this repository.
editor.file_editing_no_longer_exists = The file being edited, "%s", no longer exists in this repository.
editor.file_deleting_no_longer_exists = The file being deleted, "%s", no longer exists in this repository.
2018-07-03 18:52:36 -05: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-17 17:04:26 -05:00
editor.file_already_exists = A file named "%s" already exists in this repository.
2019-10-16 14:28:41 -05:00
editor.commit_empty_file_header = Commit an empty file
2020-09-06 11:24:24 -05:00
editor.commit_empty_file_text = The file you're about to commit is empty. Proceed?
2016-08-15 01:02:14 -05:00
editor.no_changes_to_show = There are no changes to show.
2023-04-17 17:04:26 -05:00
editor.fail_to_update_file = Failed to update/create file "%s".
2020-10-20 18:50:10 -05:00
editor.fail_to_update_file_summary = Error Message:
2021-12-23 22:56:57 -05:00
editor.push_rejected_no_message = The change was rejected by the server without a message. Please check Git Hooks.
editor.push_rejected = The change was rejected by the server. Please check Git Hooks.
2020-10-20 18:50:10 -05:00
editor.push_rejected_summary = Full Rejection Message:
2018-04-19 09:24:31 -05:00
editor.add_subdir = Add a directory…
2023-04-17 17:04:26 -05: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 03:32:57 -05: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 15:28:55 -05:00
editor.cherry_pick = Cherry-pick %s onto:
editor.revert = Revert %s onto:
2016-08-11 07:48:08 -05:00
2018-04-19 09:24:31 -05:00
commits.desc = Browse source code change history.
2014-09-23 14:30:04 -05:00
commits.commits = Commits
2023-04-17 17:04:26 -05:00
commits.no_commits = No commits in common. "%s" and "%s" have entirely different histories.
2021-07-28 21:32:48 -05:00
commits.nothing_to_compare = These branches are equal.
2018-04-19 09:24:31 -05:00
commits.search = Search commits…
2023-03-23 12:27:03 -05:00
commits.search.tooltip = You can prefix keywords with "author:", "committer:", "after:", or "before:", e.g. "revert author:Alice before:2019-01-13".
2017-04-05 20:32:59 -05:00
commits.find = Search
2018-04-19 09:24:31 -05:00
commits.search_all = All Branches
2014-09-23 14:30:04 -05:00
commits.author = Author
commits.message = Message
2024-01-21 12:25:58 -05:00
commits.browse_further = Browse further
commits.renamed_from = Renamed from %s
2014-09-23 14:30:04 -05:00
commits.date = Date
commits.older = Older
commits.newer = Newer
2017-07-09 20:46:06 -05:00
commits.signed_by = Signed by
2020-02-27 14:20:55 -05:00
commits.signed_by_untrusted_user = Signed by untrusted user
commits.signed_by_untrusted_user_unmatched = Signed by untrusted user who does not match committer
2018-04-19 09:24:31 -05:00
commits.gpg_key_id = GPG Key ID
2021-12-19 00:37:18 -05:00
commits.ssh_key_fingerprint = SSH Key Fingerprint
2023-10-01 23:04:32 -05:00
commits.view_path = View at this point in history
2014-09-23 14:30:04 -05:00
2022-12-08 08:14:09 -05:00
commit.operations = Operations
2022-02-09 15:28:55 -05: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 02:26:10 -05:00
commitstatus.error = Error
commitstatus.failure = Failure
commitstatus.pending = Pending
commitstatus.success = Success
2022-01-04 22:37:00 -05:00
ext_issues = Access to External Issues
2018-04-19 09:24:31 -05:00
ext_issues.desc = Link to an external issue tracker.
2017-05-18 09:54:24 -05:00
2020-08-17 10:58:23 -05:00
projects = Projects
2021-02-16 17:37:20 -05:00
projects.desc = Manage issues and pulls in project boards.
2021-01-23 05:30:28 -05:00
projects.description = Description (optional)
projects.description_placeholder = Description
2020-08-16 22:07:38 -05:00
projects.create = Create Project
projects.title = Title
2023-02-24 18:10:50 -05:00
projects.new = New Project
2020-08-16 22:07:38 -05:00
projects.new_subheader = Coordinate, track, and update your work in one place, so projects stay transparent and on schedule.
2023-04-17 17:04:26 -05:00
projects.create_success = The project "%s" has been created.
2020-08-16 22:07:38 -05:00
projects.deletion = Delete Project
projects.deletion_desc = Deleting a project removes it from all related issues. Continue?
projects.deletion_success = The project has been deleted.
2023-02-24 18:10:50 -05:00
projects.edit = Edit Project
2020-08-16 22:07:38 -05:00
projects.edit_subheader = Projects organize issues and track progress.
2023-02-24 18:10:50 -05:00
projects.modify = Edit Project
2023-04-17 17:04:26 -05:00
projects.edit_success = Project "%s" has been updated.
2020-08-16 22:07:38 -05:00
projects.type.none = "None"
projects.type.basic_kanban = "Basic Kanban"
projects.type.bug_triage = "Bug Triage"
2023-02-24 18:10:50 -05:00
projects.template.desc = "Template"
2020-08-16 22:07:38 -05:00
projects.template.desc_helper = "Select a project template to get started"
projects.type.uncategorized = Uncategorized
2023-02-24 18:10:50 -05:00
projects.column.edit = "Edit Column"
projects.column.edit_title = "Name"
projects.column.new_title = "Name"
projects.column.new_submit = "Create Column"
projects.column.new = "New Column"
projects.column.set_default = "Set Default"
projects.column.set_default_desc = "Set this column as default for uncategorized issues and pulls"
2023-04-19 09:28:28 -05:00
projects.column.unset_default = "Unset Default"
projects.column.unset_default_desc = "Unset this column as default"
2023-02-24 18:10:50 -05:00
projects.column.delete = "Delete Column"
projects.column.deletion_desc = "Deleting a project column moves all related issues to 'Uncategorized'. Continue?"
projects.column.color = "Color"
2020-08-16 22:07:38 -05:00
projects.open = Open
projects.close = Close
2023-02-24 18:10:50 -05:00
projects.column.assigned_to = Assigned to
2023-02-11 03:12:41 -05: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-16 22:07:38 -05:00
2018-04-19 09:24:31 -05:00
issues.desc = Organize bug reports, tasks and milestones.
2020-04-04 00:39:48 -05:00
issues.filter_assignees = Filter Assignee
issues.filter_milestones = Filter Milestone
2020-08-16 22:07:38 -05:00
issues.filter_projects = Filter Project
2020-04-04 00:39:48 -05:00
issues.filter_labels = Filter Label
2020-04-06 11:33:34 -05:00
issues.filter_reviewers = Filter Reviewer
2015-07-23 15:50:05 -05:00
issues.new = New Issue
2019-01-21 06:45:32 -05:00
issues.new.title_empty = Title cannot be empty
2015-08-10 01:42:50 -05:00
issues.new.labels = Labels
2015-08-10 05:57:57 -05:00
issues.new.no_label = No Label
2015-08-10 01:42:50 -05:00
issues.new.clear_labels = Clear labels
2020-08-16 22:07:38 -05:00
issues.new.projects = Projects
issues.new.clear_projects = Clear projects
issues.new.no_projects = No project
issues.new.open_projects = Open Projects
issues.new.closed_projects = Closed Projects
2020-04-04 00:39:48 -05:00
issues.new.no_items = No items
2015-08-10 01:42:50 -05:00
issues.new.milestone = Milestone
2015-08-10 05:57:57 -05:00
issues.new.no_milestone = No Milestone
issues.new.clear_milestone = Clear milestone
issues.new.open_milestone = Open Milestones
issues.new.closed_milestone = Closed Milestones
2018-05-09 11:29:04 -05:00
issues.new.assignees = Assignees
issues.new.clear_assignees = Clear assignees
2018-07-20 11:40:08 -05:00
issues.new.no_assignees = No Assignees
2020-04-06 11:33:34 -05:00
issues.new.no_reviewers = No reviewers
2020-09-11 09:48:39 -05:00
issues.choose.get_started = Get Started
2023-03-28 13:22:07 -05:00
issues.choose.open_external_link = Open
2020-09-15 21:07:09 -05:00
issues.choose.blank = Default
2020-10-14 06:17:40 -05:00
issues.choose.blank_about = Create an issue from default template.
2022-09-02 02:58:49 -05:00
issues.choose.ignore_invalid_templates = Invalid templates have been ignored
issues.choose.invalid_templates = %v invalid template(s) found
2023-03-28 13:22:07 -05:00
issues.choose.invalid_config = The issue config contains errors:
2017-08-24 07:30:27 -05:00
issues.no_ref = No Branch/Tag Specified
2015-08-09 02:23:02 -05:00
issues.create = Create Issue
2015-07-24 08:02:49 -05:00
issues.new_label = New Label
2018-04-19 09:24:31 -05:00
issues.new_label_placeholder = Label name
issues.new_label_desc_placeholder = Description
2015-08-09 09:45:38 -05:00
issues.create_label = Create Label
2016-08-29 22:00:06 -05:00
issues.label_templates.title = Load a predefined set of labels
2018-04-19 09:24:31 -05:00
issues.label_templates.info = No labels exist yet. Create a label with 'New Label' or use a predefined label set:
2016-08-29 22:00:06 -05:00
issues.label_templates.helper = Select a label set
2018-04-19 09:24:31 -05:00
issues.label_templates.use = Use Label Set
2023-04-17 17:04:26 -05:00
issues.label_templates.fail_to_load_file = Failed to load label template file "%s": %v
2020-10-25 16:49:48 -05: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-01-31 21:36:08 -05:00
issues.add_milestone_at = `added this to the <b>%s</b> milestone %s`
2020-08-16 22:07:38 -05:00
issues.add_project_at = `added this to the <b>%s</b> project %s`
2017-01-31 21:36:08 -05:00
issues.change_milestone_at = `modified the milestone from <b>%s</b> to <b>%s</b> %s`
2020-08-16 22:07:38 -05:00
issues.change_project_at = `modified the project from <b>%s</b> to <b>%s</b> %s`
2017-01-31 21:36:08 -05:00
issues.remove_milestone_at = `removed this from the <b>%s</b> milestone %s`
2020-08-16 22:07:38 -05:00
issues.remove_project_at = `removed this from the <b>%s</b> project %s`
2017-06-16 23:51:28 -05:00
issues.deleted_milestone = `(deleted)`
2020-08-16 22:07:38 -05:00
issues.deleted_project = `(deleted)`
2017-02-03 10:09:10 -05:00
issues.self_assign_at = `self-assigned this %s`
issues.add_assignee_at = `was assigned by <b>%s</b> %s`
2019-01-19 14:16:46 -05:00
issues.remove_assignee_at = `was unassigned by <b>%s</b> %s`
issues.remove_self_assignment = `removed their assignment %s`
2019-09-02 11:11:23 -05:00
issues.change_title_at = `changed title from <b><strike>%s</strike></b> to <b>%s</b> %s`
2021-11-19 04:54:31 -05: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-10 23:00:29 -05:00
issues.delete_branch_at = `deleted branch <b>%s</b> %s`
2015-07-23 15:50:05 -05:00
issues.filter_label = Label
2019-10-23 11:29:14 -05:00
issues.filter_label_exclude = `Use <code>alt</code> + <code>click/enter</code> to exclude labels`
2018-04-19 09:24:31 -05:00
issues.filter_label_no_select = All labels
2023-07-26 08:00:50 -05:00
issues.filter_label_select_no_label = No label
2015-07-23 15:50:05 -05:00
issues.filter_milestone = Milestone
2023-04-30 08:12:49 -05: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-28 22:45:29 -05:00
issues.filter_project = Project
2023-02-04 09:35:08 -05:00
issues.filter_project_all = All projects
issues.filter_project_none = No project
2015-07-23 15:50:05 -05:00
issues.filter_assignee = Assignee
2018-04-19 09:24:31 -05:00
issues.filter_assginee_no_select = All assignees
2023-05-17 04:21:35 -05:00
issues.filter_assginee_no_assignee = No assignee
2022-08-08 15:03:58 -05:00
issues.filter_poster = Author
issues.filter_poster_no_select = All authors
2015-07-23 15:50:05 -05: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 11:34:19 -05:00
issues.filter_type.review_requested = Review requested
2023-02-24 21:55:50 -05:00
issues.filter_type.reviewed_by_you = Reviewed by you
2015-08-14 23:07:08 -05:00
issues.filter_sort = Sort
2015-08-15 03:30:24 -05:00
issues.filter_sort.latest = Newest
2015-08-14 23:07:08 -05:00
issues.filter_sort.oldest = Oldest
2015-08-15 03:30:24 -05: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 09:39:41 -05:00
issues.filter_sort.nearduedate = Nearest due date
issues.filter_sort.farduedate = Farthest due date
2018-05-23 20:03:42 -05: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
2023-08-08 10:25:05 -05:00
issues.keyword_search_unavailable = Searching by keyword is currently not available. Please contact your site administrator.
2017-03-14 20:10:35 -05: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-01-31 20:43:06 -05:00
issues.action_check = Check/Uncheck
issues.action_check_all = Check/Uncheck all items
2017-11-01 11:03:10 -05:00
issues.opened_by = opened %[1]s by <a href="%[2]s">%[3]s</a>
2021-12-13 20:45:39 -05: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 11:57:52 -05:00
issues.opened_by_fake = opened %[1]s by %[2]s
2021-12-13 20:45:39 -05:00
issues.closed_by_fake = by %[2]s was closed %[1]s
2015-07-27 14:14:37 -05:00
issues.previous = Previous
issues.next = Next
2015-08-12 04:04:23 -05:00
issues.open_title = Open
issues.closed_title = Closed
2022-07-09 17:17:04 -05:00
issues.draft_title = Draft
2023-07-05 14:53:38 -05:00
issues.num_comments_1 = %d comment
2015-08-12 04:04:23 -05:00
issues.num_comments = %d comments
2017-11-01 11:03:10 -05:00
issues.commented_at = `commented <a href="#%s">%s</a>`
2016-07-25 13:48:17 -05:00
issues.delete_comment_confirm = Are you sure you want to delete this comment?
2019-11-19 13:33:42 -05:00
issues.context.copy_link = Copy Link
issues.context.quote_reply = Quote Reply
2023-02-16 10:06:07 -05:00
issues.context.reference_issue = Reference in New Issue
2019-11-19 13:33:42 -05:00
issues.context.edit = Edit
issues.context.delete = Delete
2023-07-22 04:32:50 -05:00
issues.no_content = No description provided.
2023-03-16 10:11:31 -05:00
issues.close = Close Issue
2023-05-03 08:52:19 -05: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
2018-04-19 09:24:31 -05:00
issues.close_comment_issue = Comment and Close
2015-08-13 10:21:43 -05:00
issues.reopen_issue = Reopen
2018-04-19 09:24:31 -05:00
issues.reopen_comment_issue = Comment and Reopen
2015-08-12 05:44:09 -05:00
issues.create_comment = Comment
2020-04-30 08:49:12 -05: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 11:03:10 -05:00
issues.commit_ref_at = `referenced this issue from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2019-11-18 08:13:07 -05:00
issues.ref_issue_from = `<a href="%[3]s">referenced this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_pull_from = `<a href="%[3]s">referenced this pull request %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closing_from = `<a href="%[3]s">referenced a pull request %[4]s that will close this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopening_from = `<a href="%[3]s">referenced a pull request %[4]s that will reopen this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closed_from = `<a href="%[3]s">closed this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopened_from = `<a href="%[3]s">reopened this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_from = `from %[1]s`
2023-08-24 00:06:17 -05:00
issues.author = Author
issues.author_helper = This user is the author.
issues.role.owner = Owner
issues.role.owner_helper = This user is the owner of this repository.
issues.role.member = Member
issues.role.member_helper = This user is a member of the organization owning this repository.
issues.role.collaborator = Collaborator
issues.role.collaborator_helper = This user has been invited to collaborate on the repository.
issues.role.first_time_contributor = First-time contributor
issues.role.first_time_contributor_helper = This is the first contribution of this user to the repository.
issues.role.contributor = Contributor
issues.role.contributor_helper = This user has previously committed to the repository.
2020-04-06 11:33:34 -05:00
issues.re_request_review = Re-request review
2020-09-04 11:36:37 -05:00
issues.is_stale = There have been changes to this PR since this review
2020-04-06 11:33:34 -05:00
issues.remove_request_review = Remove review request
issues.remove_request_review_block = Can't remove review request
2021-02-11 12:32:25 -05:00
issues.dismiss_review = Dismiss Review
issues.dismiss_review_warning = Are you sure you want to dismiss this review?
2017-11-01 11:03:10 -05:00
issues.sign_in_require_desc = <a href="%s">Sign in</a> to join this conversation.
2015-08-15 01:14:55 -05:00
issues.edit = Edit
2015-08-19 10:14:57 -05:00
issues.cancel = Cancel
2015-08-15 01:14:55 -05: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 14:17:39 -05:00
issues.label_title = Name
issues.label_description = Description
issues.label_color = Color
issues.label_exclusive = Exclusive
2023-08-14 04:56:14 -05:00
issues.label_archive = Archive Label
2023-10-01 08:04:39 -05: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 14:17:39 -05: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 08:02:49 -05:00
issues.label_count = %d labels
2023-01-13 06:40:39 -05:00
issues.label_open_issues = %d open issues/pull requests
2015-07-24 08:02:49 -05:00
issues.label_edit = Edit
issues.label_delete = Delete
2018-04-19 09:24:31 -05:00
issues.label_modify = Edit Label
issues.label_deletion = Delete Label
issues.label_deletion_desc = Deleting a label removes it from all issues. Continue?
issues.label_deletion_success = The label has been deleted.
2016-12-24 09:41:09 -05:00
issues.label.filter_sort.alphabetically = Alphabetically
issues.label.filter_sort.reverse_alphabetically = Reverse alphabetically
2020-03-03 12:27:38 -05:00
issues.label.filter_sort.by_size = Smallest size
issues.label.filter_sort.reverse_by_size = Largest size
2016-02-01 20:55:12 -05:00
issues.num_participants = %d Participants
2016-08-11 18:16:36 -05:00
issues.attachment.open_tab = `Click to see "%s" in a new tab`
issues.attachment.download = `Click to download "%s"`
2017-03-30 17:10:30 -05:00
issues.subscribe = Subscribe
issues.unsubscribe = Unsubscribe
2023-05-25 08:17:19 -05:00
issues.unpin_issue = Unpin Issue
issues.max_pinned = "You can't pin more issues"
issues.pin_comment = "pinned this %s"
issues.unpin_comment = "unpinned this %s"
2019-02-18 15:55:04 -05:00
issues.lock = Lock conversation
issues.unlock = Unlock conversation
issues.lock.unknown_reason = Cannot lock an issue with an unknown reason.
issues.lock_duplicate = An issue cannot be locked twice.
issues.unlock_error = Cannot unlock an issue that is not locked.
issues.lock_with_reason = "locked as <strong>%s</strong> and limited conversation to collaborators %s"
issues.lock_no_reason = "locked and limited conversation to collaborators %s"
issues.unlock_comment = "unlocked this conversation %s"
issues.lock_confirm = Lock
issues.unlock_confirm = Unlock
issues.lock.notice_1 = - Other users can’ t add new comments to this issue.
issues.lock.notice_2 = - You and other collaborators with access to this repository can still leave comments that others can see.
issues.lock.notice_3 = - You can always unlock this issue again in the future.
issues.unlock.notice_1 = - Everyone would be able to comment on this issue once more.
issues.unlock.notice_2 = - You can always lock this issue again in the future.
issues.lock.reason = Reason for locking
issues.lock.title = Lock conversation on this issue.
issues.unlock.title = Unlock conversation on this issue.
issues.comment_on_locked = You cannot comment on a locked issue.
2022-03-08 19:38:11 -05: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)
2018-04-19 09:24:31 -05:00
issues.tracker = Time Tracker
2021-01-21 09:51:52 -05:00
issues.start_tracking_short = Start Timer
2018-04-19 09:24:31 -05:00
issues.start_tracking = Start Time Tracking
2017-09-12 01:48:13 -05:00
issues.start_tracking_history = `started working %s`
2019-02-05 06:38:11 -05:00
issues.tracker_auto_close = Timer will be stopped automatically when this issue gets closed
2020-12-21 01:11:39 -05:00
issues.tracking_already_started = `You have already started time tracking on <a href="%s">another issue</a>!`
2021-01-21 09:51:52 -05:00
issues.stop_tracking = Stop Timer
2017-09-12 01:48:13 -05:00
issues.stop_tracking_history = `stopped working %s`
2021-01-21 09:51:52 -05:00
issues.cancel_tracking = Discard
2023-08-08 10:25:05 -05:00
issues.cancel_tracking_history = `canceled time tracking %s`
2018-04-19 09:24:31 -05:00
issues.add_time = Manually Add Time
2021-02-19 05:52:11 -05:00
issues.del_time = Delete this time log
2018-04-19 09:24:31 -05:00
issues.add_time_short = Add Time
2017-09-12 01:48:13 -05:00
issues.add_time_cancel = Cancel
issues.add_time_history = `added spent time %s`
2019-12-27 15:30:58 -05:00
issues.del_time_history = `deleted spent time %s`
2017-09-12 01:48:13 -05:00
issues.add_time_hours = Hours
issues.add_time_minutes = Minutes
2018-04-19 09:24:31 -05:00
issues.add_time_sum_to_small = No time was entered.
2018-05-01 14:05:28 -05:00
issues.time_spent_total = Total Time Spent
2018-04-29 00:58:47 -05:00
issues.time_spent_from_all_authors = `Total Time Spent: %s`
2018-05-08 07:40:52 -05:00
issues.due_date = Due Date
issues.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
issues.error_modifying_due_date = "Failed to modify the due date."
issues.error_removing_due_date = "Failed to remove the due date."
2020-05-20 07:47:24 -05:00
issues.push_commit_1 = "added %d commit %s"
issues.push_commits_n = "added %d commits %s"
2021-04-09 21:24:59 -05: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 14:19:47 -05:00
issues.force_push_compare = Compare
2018-05-06 16:26:40 -05:00
issues.due_date_form = "yyyy-mm-dd"
2018-05-01 14:05:28 -05:00
issues.due_date_form_add = "Add due date"
2018-08-27 13:34:12 -05:00
issues.due_date_form_edit = "Edit"
issues.due_date_form_remove = "Remove"
2023-08-08 10:25:05 -05:00
issues.due_date_not_writer = "You need write access to this repository in order to update the due date of an issue."
2018-05-01 14:05:28 -05:00
issues.due_date_not_set = "No due date set."
issues.due_date_added = "added the due date %s %s"
2022-07-19 07:30:55 -05:00
issues.due_date_modified = "modified the due date from %[2]s to %[1]s %[3]s"
2018-05-01 14:05:28 -05:00
issues.due_date_remove = "removed the due date %s %s"
issues.due_date_overdue = "Overdue"
2018-07-20 11:40:08 -05:00
issues.due_date_invalid = "The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'."
2018-07-17 16:23:58 -05:00
issues.dependency.title = Dependencies
2022-03-23 11:46:50 -05:00
issues.dependency.issue_no_dependencies = No dependencies set.
issues.dependency.pr_no_dependencies = No dependencies set.
2023-03-28 12:23:25 -05: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 04:02:08 -05:00
issues.dependency.add = Add dependency…
2018-07-17 16:23:58 -05:00
issues.dependency.cancel = Cancel
issues.dependency.remove = Remove
2018-09-06 21:32:46 -05:00
issues.dependency.remove_info = Remove this dependency
2020-04-18 19:15:07 -05:00
issues.dependency.added_dependency = `added a new dependency %s`
issues.dependency.removed_dependency = `removed a dependency %s`
2021-08-20 18:13:45 -05: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 16:23:58 -05: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 11:40:08 -05:00
issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it.
2023-04-26 11:54:17 -05:00
issues.dependency.issue_batch_close_blocked = "Cannot batch close issues that you choose, because issue #%d still has open dependencies"
2018-07-20 11:40:08 -05:00
issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it.
2018-07-17 16:23:58 -05:00
issues.dependency.blocks_short = Blocks
issues.dependency.blocked_by_short = Depends on
issues.dependency.remove_header = Remove Dependency
2018-07-20 11:40:08 -05:00
issues.dependency.issue_remove_text = This will remove the dependency from this issue. Continue?
issues.dependency.pr_remove_text = This will remove the dependency from this pull request. Continue?
issues.dependency.setting = Enable Dependencies For Issues and Pull Requests
issues.dependency.add_error_same_issue = You cannot make an issue depend on itself.
issues.dependency.add_error_dep_issue_not_exist = Dependent issue does not exist.
issues.dependency.add_error_dep_not_exist = Dependency does not exist.
issues.dependency.add_error_dep_exists = Dependency already exists.
issues.dependency.add_error_cannot_create_circular = You cannot create a dependency with two issues blocking each other.
issues.dependency.add_error_dep_not_same_repo = Both issues must be in the same repository.
2018-08-20 00:04:01 -05:00
issues.review.self.approval = You cannot approve your own pull request.
issues.review.self.rejection = You cannot request changes on your own pull request.
2018-08-05 23:43:22 -05:00
issues.review.approve = "approved these changes %s"
issues.review.comment = "reviewed %s"
2021-02-11 12:32:25 -05:00
issues.review.dismissed = "dismissed %s’ s review %s"
issues.review.dismissed_label = Dismissed
2020-04-10 17:01:41 -05:00
issues.review.left_comment = left a comment
2018-08-07 12:15:41 -05:00
issues.review.content.empty = You need to leave a comment indicating the requested change(s).
2019-01-27 12:39:49 -05:00
issues.review.reject = "requested changes %s"
2020-04-06 11:33:34 -05:00
issues.review.wait = "was requested for review %s"
issues.review.add_review_request = "requested review from %s %s"
issues.review.remove_review_request = "removed review request for %s %s"
issues.review.remove_review_request_self = "refused to review %s"
2018-08-05 23:43:22 -05:00
issues.review.pending = Pending
2023-04-17 17:04:26 -05: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-05 23:43:22 -05:00
issues.review.review = Review
2018-11-22 08:17:36 -05:00
issues.review.reviewers = Reviewers
2020-10-15 03:17:48 -05:00
issues.review.outdated = Outdated
2023-06-21 11:08:12 -05: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-05 23:43:22 -05:00
issues.review.show_outdated = Show outdated
issues.review.hide_outdated = Hide outdated
2020-04-18 08:50:25 -05: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
2019-10-25 09:46:37 -05:00
issues.assignee.error = Not all assignees was added due to an unexpected error.
2021-01-21 08:51:17 -05:00
issues.reference_issue.body = Body
2021-10-10 17:40:03 -05: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 13:58:37 -05: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-14 18:07:38 -05: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 15:50:05 -05:00
2021-05-07 16:10:05 -05:00
compare.compare_base = base
compare.compare_head = compare
2019-08-27 15:33:48 -05:00
pulls.desc = Enable pull requests and code reviews.
2015-11-16 10:14:12 -05:00
pulls.new = New Pull Request
2021-12-24 07:14:42 -05:00
pulls.view = View Pull Request
2018-04-19 09:24:31 -05:00
pulls.compare_changes = New Pull Request
2022-04-28 10:45:33 -05: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 09:24:31 -05:00
pulls.compare_changes_desc = Select the branch to merge into and the branch to pull from.
2022-05-07 13:28:10 -05: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 08:11:02 -05:00
pulls.expand_files = Expand all files
pulls.collapse_files = Collapse all files
2018-04-19 09:24:31 -05:00
pulls.compare_base = merge into
pulls.compare_compare = pull from
2021-09-27 07:19:34 -05:00
pulls.switch_comparison_type = Switch comparison type
pulls.switch_head_and_base = Switch head and base
2015-09-02 03:08:05 -05:00
pulls.filter_branch = Filter branch
2015-08-09 12:04:23 -05:00
pulls.no_results = No results found.
2023-07-28 14:18:12 -05: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 09:24:31 -05:00
pulls.nothing_to_compare = These branches are equal. There is no need to create a pull request.
2024-01-21 10:13:00 -05:00
pulls.nothing_to_compare_have_tag = The selected branch/tag are equal.
2021-03-03 22:41:23 -05:00
pulls.nothing_to_compare_and_allow_empty_pr = These branches are equal. This PR will be empty.
2021-11-16 13:18:25 -05:00
pulls.has_pull_request = `A pull request between these branches already exists: <a href="%[1]s">%[2]s#%[3]d</a>`
2015-08-31 02:24:28 -05:00
pulls.create = Create Pull Request
2019-12-16 01:20:25 -05:00
pulls.title_desc = wants to merge %[1]d commits from <code>%[2]s</code> into <code id="branch_target">%[3]s</code>
2015-09-02 08:26:56 -05:00
pulls.merged_title_desc = merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s
2019-12-16 01:20:25 -05:00
pulls.change_target_branch_at = `changed target branch from <b>%s</b> to <b>%s</b> %s`
2015-09-01 18:07:02 -05:00
pulls.tab_conversation = Conversation
pulls.tab_commits = Commits
2018-04-19 09:24:31 -05:00
pulls.tab_files = Files Changed
2017-03-09 08:24:57 -05:00
pulls.reopen_to_merge = Please reopen this pull request to perform a merge.
2019-04-20 15:50:34 -05:00
pulls.cant_reopen_deleted_branch = This pull request cannot be reopened because the branch was deleted.
2015-09-02 08:26:56 -05:00
pulls.merged = Merged
2023-04-23 13:12:36 -05:00
pulls.merged_success = Pull request successfully merged and closed
pulls.closed = Pull request closed
2021-03-03 22:41:23 -05:00
pulls.manually_merged = Manually merged
2023-04-23 13:12:36 -05:00
pulls.merged_info_text = The branch %s can now be deleted.
2019-12-16 01:20:25 -05:00
pulls.is_closed = The pull request has been closed.
2018-08-13 14:04:39 -05: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 05:46:20 -05:00
pulls.cannot_merge_work_in_progress = This pull request is marked as a work in progress.
2021-05-27 15:02:04 -05:00
pulls.still_in_progress = Still in progress?
pulls.add_prefix = Add <strong>%s</strong> prefix
pulls.remove_prefix = Remove <strong>%s</strong> prefix
2018-04-19 09:24:31 -05:00
pulls.data_broken = This pull request is broken due to missing fork information.
2019-02-05 06:54:49 -05:00
pulls.files_conflicted = This pull request has changes conflicting with the target branch.
2018-04-19 09:24:31 -05:00
pulls.is_checking = "Merge conflict checking is in progress. Try again in few moments."
2022-07-13 03:22:51 -05:00
pulls.is_ancestor = "This branch is already included in the target branch. There is nothing to merge."
pulls.is_empty = "The changes on this branch are already on the target branch. This will be an empty commit."
2019-09-18 00:39:45 -05:00
pulls.required_status_check_failed = Some required checks were not successful.
2020-04-15 15:35:18 -05:00
pulls.required_status_check_missing = Some required checks are missing.
2019-09-18 00:39:45 -05:00
pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
2023-08-08 10:25:05 -05: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."
2024-02-06 13:45:48 -05:00
pulls.blocked_by_official_review_requests = "This pull request is blocked because it is missing approval from one or more official reviewers."
2023-08-08 10:25:05 -05:00
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 17:12:21 -05:00
pulls.can_auto_merge_desc = This pull request can be merged automatically.
2018-04-19 09:24:31 -05:00
pulls.cannot_auto_merge_desc = This pull request cannot be merged automatically due to conflicts.
pulls.cannot_auto_merge_helper = Merge manually to resolve the conflicts.
2020-02-07 11:38:18 -05:00
pulls.num_conflicting_files_1 = "%d conflicting file"
pulls.num_conflicting_files_n = "%d conflicting files"
2020-03-05 22:44:06 -05:00
pulls.approve_count_1 = "%d approval"
pulls.approve_count_n = "%d approvals"
pulls.reject_count_1 = "%d change request"
pulls.reject_count_n = "%d change requests"
2020-04-06 11:33:34 -05:00
pulls.waiting_count_1 = "%d waiting review"
pulls.waiting_count_n = "%d waiting reviews"
2021-03-03 22:41:23 -05:00
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-14 18:07:38 -05:00
pulls.blocked_by_user = You cannot create a pull request on this repository because you are blocked by the repository owner.
2020-03-05 22:44:06 -05:00
2018-04-19 09:24:31 -05: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 13:25:28 -05:00
pulls.no_merge_wip = This pull request cannot be merged because it is marked as being a work in progress.
2020-01-11 02:29:34 -05: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 14:23:57 -05: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 17:37:23 -05:00
pulls.fast_forward_only_merge_pull_request = Fast-forward only
2021-03-03 22:41:23 -05:00
pulls.merge_manually = Manually merged
pulls.merge_commit_id = The merge commit ID
2020-01-15 03:32:57 -05:00
pulls.require_signed_wont_sign = The branch requires signed commits but this merge will not be signed
2022-06-11 09:44:20 -05:00
2018-04-19 09:24:31 -05:00
pulls.invalid_merge_option = You cannot use this merge option for this pull request.
2020-10-20 18:50:10 -05:00
pulls.merge_conflict = Merge Failed: There was a conflict whilst merging. Hint: Try a different strategy
pulls.merge_conflict_summary = Error Message
pulls.rebase_conflict = Merge Failed: There was a conflict whilst rebasing commit: %[1]s. Hint: Try a different strategy
pulls.rebase_conflict_summary = Error Message
2019-11-10 03:42:51 -05:00
pulls.unrelated_histories = Merge Failed: The merge head and base do not share a common history. Hint: Try a different strategy
pulls.merge_out_of_date = Merge Failed: Whilst generating the merge, the base was updated. Hint: Try again.
2021-12-19 19:32:54 -05:00
pulls.head_out_of_date = Merge Failed: Whilst generating the merge, the head was updated. Hint: Try again.
2023-09-05 21:13:08 -05:00
pulls.has_merged = Failed: The pull request has been merged, you cannot merge again or change the target branch.
2021-12-23 22:56:57 -05:00
pulls.push_rejected = Merge Failed: The push was rejected. Review the Git Hooks for this repository.
2020-10-20 18:50:10 -05:00
pulls.push_rejected_summary = Full Rejection Message
2021-12-23 22:56:57 -05:00
pulls.push_rejected_no_message = Merge Failed: The push was rejected but there was no remote message.<br>Review the Git Hooks for this repository
2018-04-19 09:24:31 -05: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 02:57:59 -05:00
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
2020-04-16 14:08:20 -05: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 02:29:50 -05:00
pulls.status_checks_requested = Required
pulls.status_checks_details = Details
2023-11-02 09:49:02 -05:00
pulls.status_checks_hide_all = Hide all checks
pulls.status_checks_show_all = Show all checks
2021-08-31 09:03:45 -05:00
pulls.update_branch = Update branch by merge
pulls.update_branch_rebase = Update branch by rebase
2020-01-17 01:03:40 -05:00
pulls.update_branch_success = Branch update was successful
pulls.update_not_allowed = You are not allowed to update branch
pulls.outdated_with_base_branch = This branch is out-of-date with the base branch
2023-03-16 10:11:31 -05:00
pulls.close = Close Pull Request
2020-04-30 08:49:12 -05: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 14:17:46 -05:00
pulls.commit_ref_at = `referenced this pull request from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2023-10-25 10:01:31 -05:00
pulls.cmd_instruction_hint = `View <a class="show-instruction">command line instructions</a>.`
pulls.cmd_instruction_checkout_title = Checkout
pulls.cmd_instruction_checkout_desc = From your project repository, check out a new branch and test the changes.
pulls.cmd_instruction_merge_title = Merge
2024-01-21 12:25:58 -05:00
pulls.cmd_instruction_merge_desc = Merge the changes and update on Forgejo.
2022-11-23 05:24:03 -05: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 09:30:41 -05: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 09:44:20 -05: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 09:43:14 -05:00
2022-06-19 05:05:15 -05: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 12:25:58 -05:00
pulls.recently_pushed_new_branches = You pushed on branch <a href="%[3]s"><strong>%[1]s</strong></a> %[2]s
2023-07-07 22:19:00 -05:00
2023-08-03 17:07:15 -05:00
pull.deleted_branch = (deleted):%s
2015-08-03 04:42:09 -05:00
milestones.new = New Milestone
milestones.closed = Closed %s
2023-04-12 12:05:53 -05:00
milestones.update_ago = Updated %s
2016-01-01 18:30:00 -05:00
milestones.no_due_date = No due date
2015-08-03 04:42:09 -05:00
milestones.open = Open
milestones.close = Close
2023-08-08 10:25:05 -05:00
milestones.new_subheader = Milestones can help you organize issues and track their progress.
2023-06-05 01:25:46 -05:00
milestones.completeness = <strong>%d%%</strong> Completed
2015-08-05 02:24:26 -05:00
milestones.create = Create Milestone
milestones.title = Title
milestones.desc = Description
milestones.due_date = Due Date (optional)
2015-08-05 05:26:18 -05:00
milestones.clear = Clear
2018-04-19 09:24:31 -05:00
milestones.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
2023-04-17 17:04:26 -05:00
milestones.create_success = The milestone "%s" has been created.
2015-08-05 05:26:18 -05:00
milestones.edit = Edit Milestone
2018-04-19 09:24:31 -05:00
milestones.edit_subheader = Milestones organize issues and track progress.
2015-08-05 05:26:18 -05:00
milestones.cancel = Cancel
2018-04-19 09:24:31 -05:00
milestones.modify = Update Milestone
2023-04-17 17:04:26 -05:00
milestones.edit_success = Milestone "%s" has been updated.
2018-04-19 09:24:31 -05:00
milestones.deletion = Delete Milestone
milestones.deletion_desc = Deleting a milestone removes it from all related issues. Continue?
milestones.deletion_success = The milestone has been deleted.
2023-08-21 08:11:07 -05:00
milestones.filter_sort.earliest_due_data = Earliest due date
milestones.filter_sort.latest_due_date = Latest due date
2016-12-24 09:41:09 -05: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 04:42:09 -05:00
2023-08-08 10:25:05 -05:00
signing.will_sign = This commit will be signed with key "%s".
signing.wont_sign.error = There was an error whilst checking if the commit could be signed.
signing.wont_sign.nokey = There is no key available to sign this commit.
signing.wont_sign.never = Commits are never signed.
signing.wont_sign.always = Commits are always signed.
signing.wont_sign.pubkey = The commit will not be signed because you do not have a public key associated with your account.
signing.wont_sign.twofa = You must have two factor authentication enabled to have commits signed.
signing.wont_sign.parentsigned = The commit will not be signed as the parent commit is not signed.
signing.wont_sign.basesigned = The merge will not be signed as the base commit is not signed.
signing.wont_sign.headsigned = The merge will not be signed as the head commit is not signed.
signing.wont_sign.commitssigned = The merge will not be signed as all the associated commits are not signed.
signing.wont_sign.approved = The merge will not be signed as the PR is not approved.
signing.wont_sign.not_signed_in = You are not signed in.
2020-01-15 03:32:57 -05:00
2022-01-04 22:37:00 -05:00
ext_wiki = Access to External Wiki
2018-04-19 09:24:31 -05:00
ext_wiki.desc = Link to an external wiki.
2017-05-18 09:54:24 -05:00
2015-11-25 20:10:25 -05:00
wiki = Wiki
2018-04-19 09:24:31 -05:00
wiki.welcome = Welcome to the Wiki.
wiki.welcome_desc = The wiki lets you write and share documentation with collaborators.
wiki.desc = Write and share documentation with collaborators.
wiki.create_first_page = Create the First Page
2015-11-27 01:50:38 -05:00
wiki.page = Page
wiki.filter_page = Filter page
2018-04-19 09:24:31 -05:00
wiki.new_page = Page
2023-04-10 10:56:57 -05:00
wiki.page_title = Page title
wiki.page_content = Page content
2017-03-09 08:24:57 -05:00
wiki.default_commit_message = Write a note about this page update (optional).
2015-11-25 20:10:25 -05:00
wiki.save_page = Save Page
2024-01-21 12:25:58 -05:00
wiki.cancel = Cancel
2015-11-27 00:24:24 -05:00
wiki.last_commit_info = %s edited this page %s
2015-11-27 01:50:38 -05:00
wiki.edit_page_button = Edit
wiki.new_page_button = New Page
2019-07-08 03:20:22 -05:00
wiki.file_revision = Page Revision
wiki.wiki_page_revisions = Wiki Page Revisions
wiki.back_to_wiki = Back to wiki page
2016-03-03 17:06:50 -05:00
wiki.delete_page_button = Delete Page
2023-04-17 17:04:26 -05:00
wiki.delete_page_notice_1 = Deleting the wiki page "%s" cannot be undone. Continue?
2017-02-06 10:17:18 -05:00
wiki.page_already_exists = A wiki page with the same name already exists.
2023-04-17 17:04:26 -05:00
wiki.reserved_page = The wiki page name "%s" is reserved.
2015-11-27 02:16:12 -05:00
wiki.pages = Pages
wiki.last_updated = Last updated %s
2021-12-03 02:28:54 -05:00
wiki.page_name_desc = Enter a name for this Wiki page. Some special names are: 'Home', '_Sidebar' and '_Footer'.
2023-04-19 12:50:10 -05:00
wiki.original_git_entry_tooltip = View original Git file instead of using friendly link.
2015-11-25 20:10:25 -05:00
2017-10-14 18:17:39 -05:00
activity = Activity
2024-02-15 17:21:13 -05:00
activity.navbar.pulse = Pulse
activity.navbar.contributors = Contributors
2017-10-14 18:17:39 -05: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 00:45:48 -05:00
activity.period.quarterly = 3 months
activity.period.semiyearly = 6 months
activity.period.yearly = 1 year
2017-10-14 18:17:39 -05:00
activity.overview = Overview
activity.active_prs_count_1 = <strong>%d</strong> Active Pull Request
activity.active_prs_count_n = <strong>%d</strong> Active Pull Requests
activity.merged_prs_count_1 = Merged Pull Request
activity.merged_prs_count_n = Merged Pull Requests
activity.opened_prs_count_1 = Proposed Pull Request
activity.opened_prs_count_n = Proposed Pull Requests
activity.title.user_1 = %d user
activity.title.user_n = %d users
activity.title.prs_1 = %d Pull request
activity.title.prs_n = %d Pull requests
activity.title.prs_merged_by = %s merged by %s
activity.title.prs_opened_by = %s proposed by %s
activity.merged_prs_label = Merged
activity.opened_prs_label = Proposed
activity.active_issues_count_1 = <strong>%d</strong> Active Issue
activity.active_issues_count_n = <strong>%d</strong> Active Issues
activity.closed_issues_count_1 = Closed Issue
activity.closed_issues_count_n = Closed Issues
activity.title.issues_1 = %d Issue
activity.title.issues_n = %d Issues
2021-02-28 02:54:12 -05:00
activity.title.issues_closed_from = %s closed from %s
2017-10-14 18:17:39 -05:00
activity.title.issues_created_by = %s created by %s
activity.closed_issue_label = Closed
activity.new_issues_count_1 = New Issue
activity.new_issues_count_n = New Issues
activity.new_issue_label = Opened
2018-04-19 09:24:31 -05:00
activity.title.unresolved_conv_1 = %d Unresolved Conversation
activity.title.unresolved_conv_n = %d Unresolved Conversations
activity.unresolved_conv_desc = These recently changed issues and pull requests have not been resolved yet.
2017-10-14 18:17:39 -05:00
activity.unresolved_conv_label = Open
activity.title.releases_1 = %d Release
activity.title.releases_n = %d Releases
activity.title.releases_published_by = %s published by %s
activity.published_release_label = Published
2019-05-04 07:39:03 -05: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 15:32:37 -05:00
activity.git_stats_pushed_1 = has pushed
activity.git_stats_pushed_n = have pushed
2019-05-04 07:39:03 -05: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 15:32:37 -05: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 07:39:03 -05:00
activity.git_stats_addition_1 = %d addition
activity.git_stats_addition_n = %d additions
activity.git_stats_and_deletions = and
activity.git_stats_deletion_1 = %d deletion
activity.git_stats_deletion_n = %d deletions
2017-10-14 18:17:39 -05:00
2024-02-15 17:21:13 -05:00
contributors = Contributors
contributors.contribution_type.filter_label = Contribution type:
contributors.contribution_type.commits = Commits
contributors.contribution_type.additions = Additions
contributors.contribution_type.deletions = Deletions
contributors.loading_title = Loading contributions...
contributors.loading_title_failed = Could not load contributions
contributors.loading_info = This might take a bit…
contributors.component_failed_to_load = An unexpected error happened.
2017-10-27 01:10:54 -05:00
search = Search
search.search_repo = Search repository
2022-10-10 18:12:03 -05:00
search.type.tooltip = Search type
2021-01-27 05:00:35 -05:00
search.fuzzy = Fuzzy
2022-10-10 18:12:03 -05:00
search.fuzzy.tooltip = Include results that also matches the search term closely
2021-01-27 05:00:35 -05:00
search.match = Match
2022-10-10 18:12:03 -05:00
search.match.tooltip = Include only results that matches the exact search term
2017-11-01 11:03:10 -05:00
search.results = Search results for "%s" in <a href="%s">%s</a>
2022-01-27 03:30:51 -05:00
search.code_no_results = No source code matching your search term found.
search.code_search_unavailable = Currently code search is not available. Please contact your site administrator.
2017-10-27 01:10:54 -05:00
2014-08-02 12:47:33 -05:00
settings = Settings
2017-05-23 03:01:27 -05:00
settings.desc = Settings is where you can manage the settings for the repository
2018-04-19 09:24:31 -05:00
settings.options = Repository
settings.collaboration = Collaborators
settings.collaboration.admin = Administrator
2016-06-27 11:22:30 -05:00
settings.collaboration.write = Write
settings.collaboration.read = Read
2019-09-23 15:08:03 -05:00
settings.collaboration.owner = Owner
2016-06-27 11:22:30 -05:00
settings.collaboration.undefined = Undefined
2014-08-02 12:47:33 -05:00
settings.hooks = Webhooks
2014-10-06 16:50:00 -05:00
settings.githooks = Git Hooks
2014-08-02 12:47:33 -05:00
settings.basic_settings = Basic Settings
2016-08-30 18:18:33 -05:00
settings.mirror_settings = Mirror Settings
2023-05-29 06:32:52 -05: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 10:25:05 -05:00
settings.mirror_settings.docs.more_information_if_disabled = You can find out more about push and pull mirrors here:
2023-05-29 06:32:52 -05:00
settings.mirror_settings.docs.doc_link_title = How do I mirror repositories?
2023-08-08 10:25:05 -05:00
settings.mirror_settings.docs.doc_link_pull_section = the "Pulling from a remote repository" section of the documentation.
2023-05-29 06:32:52 -05:00
settings.mirror_settings.docs.pulling_remote_title = Pulling from a remote repository
2021-06-14 12:20:43 -05:00
settings.mirror_settings.mirrored_repository = Mirrored repository
2024-01-31 19:04:23 -05:00
settings.mirror_settings.pushed_repository = Pushed repository
2021-06-14 12:20:43 -05:00
settings.mirror_settings.direction = Direction
settings.mirror_settings.direction.pull = Pull
settings.mirror_settings.direction.push = Push
settings.mirror_settings.last_update = Last update
settings.mirror_settings.push_mirror.none = No push mirrors configured
settings.mirror_settings.push_mirror.remote_url = Git Remote Repository URL
settings.mirror_settings.push_mirror.add = Add Push Mirror
2023-08-01 11:00:59 -05:00
settings.mirror_settings.push_mirror.edit_sync_time = Edit mirror sync interval
2024-01-23 04:46:34 -05:00
settings.units.units = Repository Units
settings.units.overview = Overview
2024-01-23 04:57:49 -05:00
settings.units.add_more = Add more...
2024-01-23 04:46:34 -05:00
2018-04-19 09:24:31 -05:00
settings.sync_mirror = Synchronize Now
2023-10-02 09:52:18 -05: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 09:24:31 -05:00
settings.site = Website
2014-08-02 12:47:33 -05:00
settings.update_settings = Update Settings
2023-05-04 02:27:15 -05:00
settings.update_mirror_settings = Update Mirror Settings
2023-04-29 05:44:52 -05:00
settings.branches.switch_default_branch = Switch Default Branch
2021-05-16 13:24:47 -05:00
settings.branches.update_default_branch = Update Default Branch
2023-01-16 03:00:22 -05:00
settings.branches.add_new_rule = Add New Rule
2015-12-04 21:30:33 -05:00
settings.advanced_settings = Advanced Settings
2018-04-19 09:24:31 -05:00
settings.wiki_desc = Enable Repository Wiki
2024-01-21 12:25:58 -05:00
settings.wiki_globally_editable = Allow anyone to edit the Wiki
2018-04-19 09:24:31 -05:00
settings.use_internal_wiki = Use Built-In Wiki
settings.use_external_wiki = Use External Wiki
2015-12-11 04:55:08 -05:00
settings.external_wiki_url = External Wiki URL
2018-04-19 09:24:31 -05:00
settings.external_wiki_url_error = The external wiki URL is not a valid URL.
settings.external_wiki_url_desc = Visitors are redirected to the external wiki URL when clicking the wiki tab.
settings.issues_desc = Enable Repository Issue Tracker
settings.use_internal_issue_tracker = Use Built-In Issue Tracker
settings.use_external_issue_tracker = Use External Issue Tracker
2016-11-04 03:06:54 -05:00
settings.external_tracker_url = External Issue Tracker URL
2018-04-19 09:24:31 -05:00
settings.external_tracker_url_error = The external issue tracker URL is not a valid URL.
settings.external_tracker_url_desc = Visitors are redirected to the external issue tracker URL when clicking on the issues tab.
2015-12-04 21:30:33 -05:00
settings.tracker_url_format = External Issue Tracker URL Format
2018-08-15 01:29:37 -05:00
settings.tracker_url_format_error = The external issue tracker URL format is not a valid URL.
2018-04-19 09:24:31 -05:00
settings.tracker_issue_style = External Issue Tracker Number Format
2016-07-25 03:55:51 -05:00
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
2022-06-10 00:39:53 -05: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 09:24:31 -05:00
settings.tracker_url_format_desc = Use the placeholders <code>{user}</code>, <code>{repo}</code> and <code>{index}</code> for the username, repository name and issue index.
settings.enable_timetracker = Enable Time Tracking
settings.allow_only_contributors_to_track_time = Let Only Contributors Track Time
settings.pulls_desc = Enable Repository Pull Requests
settings.pulls.ignore_whitespace = Ignore Whitespace for Conflicts
2021-03-03 22:41:23 -05:00
settings.pulls.enable_autodetect_manual_merge = Enable autodetect manual merge (Note: In some special cases, misjudgments can occur)
2022-03-04 03:30:49 -05:00
settings.pulls.allow_rebase_update = Enable updating pull request branch by rebase
2021-07-12 18:26:25 -05:00
settings.pulls.default_delete_branch_after_merge = Delete pull request branch after merge by default
2023-02-13 01:09:52 -05:00
settings.pulls.default_allow_edits_from_maintainers = Allow edits from maintainers by default
2023-01-31 20:31:19 -05:00
settings.releases_desc = Enable Repository Releases
2022-03-30 03:42:47 -05:00
settings.packages_desc = Enable Repository Packages Registry
2020-08-16 22:07:38 -05:00
settings.projects_desc = Enable Repository Projects
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
settings.actions_desc = Enable Repository Actions
2018-04-19 09:24:31 -05:00
settings.admin_settings = Administrator Settings
settings.admin_enable_health_check = Enable Repository Health Checks (git fsck)
2021-12-16 10:55:12 -05:00
settings.admin_code_indexer = Code Indexer
settings.admin_stats_indexer = Code Statistics Indexer
settings.admin_indexer_commit_sha = Last Indexed SHA
settings.admin_indexer_unindexed = Unindexed
settings.reindex_button = Add to Reindex Queue
settings.reindex_requested = Reindex Requested
2019-02-10 14:27:19 -05:00
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
2015-12-04 21:30:33 -05:00
settings.danger_zone = Danger Zone
2015-03-19 14:26:04 -05: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-14 18:07:38 -05:00
settings.new_owner_blocked_doer = The new owner has blocked you.
2018-04-19 09:24:31 -05:00
settings.convert = Convert to Regular Repository
settings.convert_desc = You can convert this mirror into a regular repository. This cannot be undone.
settings.convert_notices_1 = This operation will convert the mirror into a regular repository and cannot be undone.
settings.convert_confirm = Convert Repository
settings.convert_succeed = The mirror has been converted into a regular repository.
2020-07-02 09:09:09 -05:00
settings.convert_fork = Convert to Regular Repository
settings.convert_fork_desc = You can convert this fork into a regular repository. This cannot be undone.
settings.convert_fork_notices_1 = This operation will convert the fork into a regular repository and cannot be undone.
settings.convert_fork_confirm = Convert Repository
settings.convert_fork_succeed = The fork has been converted into a regular repository.
2014-08-02 12:47:33 -05:00
settings.transfer = Transfer Ownership
2021-02-28 19:47:30 -05: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 10:25:05 -05:00
settings.transfer_abort_success = The repository transfer to %s was successfully canceled.
2018-04-19 09:24:31 -05:00
settings.transfer_desc = Transfer this repository to a user or to an organization for which you have administrator rights.
2024-01-31 05:20:57 -05:00
settings.enter_repo_name = Enter the repository name as confirmation:
2021-02-28 19:47:30 -05: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 09:24:31 -05: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 13:30:35 -05: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).
2021-02-28 19:47:30 -05:00
settings.transfer_owner = New Owner
settings.transfer_perform = Perform Transfer
settings.transfer_started = This repository has been marked for transfer and awaits confirmation from "%s"
settings.transfer_succeed = The repository has been transferred.
2020-09-19 11:44:55 -05:00
settings.signing_settings = Signing Verification Settings
settings.trust_model = Signature Trust Model
settings.trust_model.default = Default Trust Model
settings.trust_model.default.desc = Use the default repository trust model for this installation.
settings.trust_model.collaborator = Collaborator
settings.trust_model.collaborator.long = Collaborator: Trust signatures by collaborators
settings.trust_model.collaborator.desc = Valid signatures by collaborators of this repository will be marked "trusted" - (whether they match the committer or not). Otherwise, valid signatures will be marked "untrusted" if the signature matches the committer and "unmatched" if not.
settings.trust_model.committer = Committer
2024-01-21 12:25:58 -05: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 11:44:55 -05: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 12:25:58 -05: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 06:18:53 -05:00
settings.wiki_rename_branch_main = Normalize the Wiki branch name
settings.wiki_rename_branch_main_desc = Rename the branch used internally by the Wiki to "%s". This is a permanent and cannot be undone.
settings.wiki_rename_branch_main_notices_1 = This operation <strong>CANNOT</strong> be undone.
settings.wiki_rename_branch_main_notices_2 = This will premanently rename the the internal branch of %s's repository wiki. Existing checkouts will need to be updated.
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
2018-04-19 09:24:31 -05:00
settings.wiki_delete = Delete Wiki Data
settings.wiki_delete_desc = Deleting repository wiki data is permanent and cannot be undone.
settings.wiki_delete_notices_1 = - This will permanently delete and disable the repository wiki for %s.
settings.confirm_wiki_delete = Delete Wiki Data
settings.wiki_deletion_success = The repository wiki data has been deleted.
2016-02-14 16:40:39 -05:00
settings.delete = Delete This Repository
2018-04-19 09:24:31 -05:00
settings.delete_desc = Deleting a repository is permanent and cannot be undone.
2015-09-01 05:31:47 -05:00
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
2018-04-19 09:24:31 -05: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 04:39:06 -05:00
settings.update_settings_no_unit = The repository should allow at least some sort of interaction.
2018-04-19 09:24:31 -05:00
settings.confirm_delete = Delete Repository
settings.add_collaborator = Add Collaborator
settings.add_collaborator_success = The collaborator has been added.
2023-01-08 13:25:28 -05: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 05:01:06 -05: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-14 18:07:38 -05: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 09:24:31 -05: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.
2018-02-16 09:02:40 -05:00
settings.search_user_placeholder = Search user…
2018-04-19 09:24:31 -05:00
settings.org_not_allowed_to_be_collaborator = Organizations cannot be added as a collaborator.
2019-09-23 15:08:03 -05: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 07:39:17 -05:00
settings.teams = Teams
settings.add_team = Add Team
2019-09-23 15:08:03 -05: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 07:39:17 -05:00
settings.search_team = Search Team…
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 15:08:03 -05:00
settings.remove_team_success = The team's access to the repository has been removed.
2014-08-09 12:29:51 -05:00
settings.add_webhook = Add Webhook
2018-09-10 09:31:08 -05:00
settings.add_webhook.invalid_channel_name = Webhook channel name cannot be empty and cannot contain only a # character.
2024-01-21 12:25:58 -05: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>.
2018-04-19 09:24:31 -05:00
settings.webhook_deletion = Remove Webhook
settings.webhook_deletion_desc = Removing a webhook deletes its settings and delivery history. Continue?
settings.webhook_deletion_success = The webhook has been removed.
2015-12-05 13:24:13 -05:00
settings.webhook.test_delivery = Test Delivery
2018-04-19 09:24:31 -05:00
settings.webhook.test_delivery_desc = Test this webhook with a fake event.
2023-09-25 02:33:00 -05:00
settings.webhook.test_delivery_desc_disabled = To test this webhook with a fake event, activate it.
2015-08-27 10:06:14 -05:00
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
2018-04-19 09:24:31 -05:00
settings.webhook.payload = Content
2015-08-27 10:06:14 -05:00
settings.webhook.body = Body
2022-01-05 16:00:20 -05:00
settings.webhook.replay.description = Replay this webhook.
2023-09-25 02:33:00 -05:00
settings.webhook.replay.description_disabled = To replay this webhook, activate it.
2022-01-05 16:00:20 -05:00
settings.webhook.delivery.success = An event has been added to the delivery queue. It may take few seconds before it shows up in the delivery history.
2021-12-23 22:56:57 -05: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 14:26:04 -05:00
settings.githook_edit_desc = If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
2014-10-06 16:50:00 -05:00
settings.githook_name = Hook Name
settings.githook_content = Hook Content
settings.update_githook = Update Hook
2024-01-21 12:25:58 -05:00
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 09:24:31 -05:00
settings.payload_url = Target URL
2019-05-05 13:09:02 -05:00
settings.http_method = HTTP Method
2018-04-19 09:24:31 -05:00
settings.content_type = POST Content Type
2014-08-09 17:40:10 -05:00
settings.secret = Secret
2015-08-28 22:49:59 -05:00
settings.slack_username = Username
settings.slack_icon_url = Icon URL
2021-10-21 16:51:03 -05:00
settings.slack_color = Color
2017-08-28 00:06:45 -05:00
settings.discord_username = Username
settings.discord_icon_url = Icon URL
2018-04-19 09:24:31 -05:00
settings.event_desc = Trigger On:
settings.event_push_only = Push Events
settings.event_send_everything = All Events
settings.event_choose = Custom Events…
2020-03-06 00:10:48 -05:00
settings.event_header_repository = Repository Events
2015-08-28 10:36:13 -05:00
settings.event_create = Create
2018-04-19 09:24:31 -05:00
settings.event_create_desc = Branch or tag created.
2018-05-16 09:01:55 -05:00
settings.event_delete = Delete
2020-03-06 00:10:48 -05:00
settings.event_delete_desc = Branch or tag deleted.
2018-05-16 09:01:55 -05:00
settings.event_fork = Fork
2020-03-06 00:10:48 -05:00
settings.event_fork_desc = Repository forked.
2022-09-04 14:54:23 -05:00
settings.event_wiki = Wiki
settings.event_wiki_desc = Wiki page created, renamed, edited or deleted.
2018-05-16 09:01:55 -05:00
settings.event_release = Release
2018-05-20 21:28:29 -05:00
settings.event_release_desc = Release published, updated or deleted in a repository.
2015-08-28 10:36:13 -05:00
settings.event_push = Push
2018-04-19 09:24:31 -05:00
settings.event_push_desc = Git push to a repository.
2017-09-03 03:20:24 -05:00
settings.event_repository = Repository
2018-04-19 09:24:31 -05:00
settings.event_repository_desc = Repository created or deleted.
2020-03-06 00:10:48 -05:00
settings.event_header_issue = Issue Events
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, or edited.
settings.event_issue_assign = Issue Assigned
settings.event_issue_assign_desc = Issue assigned or unassigned.
settings.event_issue_label = Issue Labeled
settings.event_issue_label_desc = Issue labels updated or cleared.
settings.event_issue_milestone = Issue Milestoned
settings.event_issue_milestone_desc = Issue milestoned or demilestoned.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_header_pull_request = Pull Request Events
settings.event_pull_request = Pull Request
settings.event_pull_request_desc = Pull request opened, closed, reopened, or edited.
settings.event_pull_request_assign = Pull Request Assigned
settings.event_pull_request_assign_desc = Pull request assigned or unassigned.
settings.event_pull_request_label = Pull Request Labeled
settings.event_pull_request_label_desc = Pull request labels updated or cleared.
settings.event_pull_request_milestone = Pull Request Milestoned
settings.event_pull_request_milestone_desc = Pull request milestoned or demilestoned.
settings.event_pull_request_comment = Pull Request Comment
settings.event_pull_request_comment_desc = Pull request comment created, edited, or deleted.
settings.event_pull_request_review = Pull Request Reviewed
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comment.
settings.event_pull_request_sync = Pull Request Synchronized
settings.event_pull_request_sync_desc = Pull request synchronized.
2023-05-24 21:06:27 -05:00
settings.event_pull_request_review_request = Pull Request Review Requested
settings.event_pull_request_review_request_desc = Pull request review requested or review request removed.
2023-04-29 05:44:52 -05:00
settings.event_pull_request_approvals = Pull Request Approvals
settings.event_pull_request_merge = Pull Request Merge
2022-03-30 03:42:47 -05:00
settings.event_package = Package
settings.event_package_desc = Package created or deleted in a repository.
2020-03-06 00:10:48 -05:00
settings.branch_filter = Branch filter
2021-06-25 09:28:55 -05: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>.
2022-11-03 13:23:20 -05:00
settings.authorization_header = Authorization Header
settings.authorization_header_desc = Will be included as authorization header for requests when present. Examples: %s.
2018-08-15 06:55:17 -05:00
settings.active = Active
settings.active_helper = Information about triggered events will be sent to this webhook URL.
2018-04-19 09:24:31 -05:00
settings.add_hook_success = The webhook has been added.
2014-08-09 17:40:10 -05:00
settings.update_webhook = Update Webhook
2018-04-19 09:24:31 -05:00
settings.update_hook_success = The webhook has been updated.
settings.delete_webhook = Remove Webhook
2014-08-09 17:40:10 -05:00
settings.recent_deliveries = Recent Deliveries
2014-08-24 07:59:47 -05:00
settings.hook_type = Hook Type
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
2022-01-24 06:36:54 -05:00
settings.add_web_hook_desc = Integrate <a target="_blank" rel="noreferrer" href="%s">%s</a> into your repository.
settings.web_hook_name_gitea = Gitea
2024-01-21 12:25:58 -05:00
settings.web_hook_name_forgejo = Forgejo
2022-01-24 06:36:54 -05: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
settings.web_hook_name_feishu_or_larksuite = Feishu / Lark Suite
settings.web_hook_name_feishu = Feishu
settings.web_hook_name_larksuite = Lark Suite
settings.web_hook_name_wechatwork = WeCom (Wechat Work)
settings.web_hook_name_packagist = Packagist
2022-01-23 08:46:30 -05:00
settings.packagist_username = Packagist username
settings.packagist_api_token = API token
settings.packagist_package_url = Packagist package URL
2015-08-06 09:48:11 -05:00
settings.deploy_keys = Deploy Keys
settings.add_deploy_key = Add Deploy Key
2018-04-19 09:24:31 -05:00
settings.deploy_key_desc = Deploy keys have read-only pull access to the repository.
settings.is_writable = Enable Write Access
settings.is_writable_info = Allow this deploy key to <strong>push</strong> to the repository.
settings.no_deploy_keys = There are no deploy keys yet.
2015-08-06 09:48:11 -05:00
settings.title = Title
settings.deploy_key_content = Content
2018-04-19 09:24:31 -05: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-17 17:04:26 -05:00
settings.add_key_success = The deploy key "%s" has been added.
2018-04-19 09:24:31 -05:00
settings.deploy_key_deletion = Remove Deploy Key
settings.deploy_key_deletion_desc = Removing a deploy key will revoke its access to this repository. Continue?
settings.deploy_key_deletion_success = The deploy key has been removed.
settings.branches = Branches
settings.protected_branch = Branch Protection
2023-01-16 03:00:22 -05:00
settings.protected_branch.save_rule = Save Rule
settings.protected_branch.delete_rule = Delete Rule
2018-04-19 09:24:31 -05:00
settings.protected_branch_can_push = Allow push?
settings.protected_branch_can_push_yes = You can push
2023-01-08 13:25:28 -05:00
settings.protected_branch_can_push_no = You cannot push
2023-04-29 05:44:52 -05:00
settings.branch_protection = Branch Protection Rules for Branch '<b>%s</b>'
2018-04-19 09:24:31 -05:00
settings.protect_this_branch = Enable Branch Protection
2019-12-03 20:08:56 -05:00
settings.protect_this_branch_desc = Prevents deletion and restricts Git pushing and merging to the branch.
settings.protect_disable_push = Disable Push
settings.protect_disable_push_desc = No pushing will be allowed to this branch.
settings.protect_enable_push = Enable Push
settings.protect_enable_push_desc = Anyone with write access will be allowed to push to this branch (but not force push).
2023-04-29 05:44:52 -05:00
settings.protect_enable_merge = Enable Merge
settings.protect_enable_merge_desc = Anyone with write access will be allowed to merge the pull requests into this branch.
2019-12-03 20:08:56 -05:00
settings.protect_whitelist_committers = Whitelist Restricted Push
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 06:11:35 -05:00
settings.protect_whitelist_deploy_keys = Whitelist deploy keys with write access to push.
2018-04-19 09:24:31 -05:00
settings.protect_whitelist_users = Whitelisted users for pushing:
settings.protect_whitelist_search_users = Search users…
settings.protect_whitelist_teams = Whitelisted teams for pushing:
settings.protect_whitelist_search_teams = Search teams…
settings.protect_merge_whitelist_committers = Enable Merge Whitelist
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:
2019-09-18 00:39:45 -05:00
settings.protect_check_status_contexts = Enable Status Check
2023-05-17 03:11:13 -05: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 00:39:45 -05:00
settings.protect_check_status_contexts_list = Status checks found in the last week for this repository
2023-05-17 03:11:13 -05: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 06:28:37 -05:00
settings.protect_required_approvals = Required approvals:
2019-12-03 20:08:56 -05: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 06:23:09 -05: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 06:28:37 -05:00
settings.protect_approvals_whitelist_users = Whitelisted reviewers:
settings.protect_approvals_whitelist_teams = Whitelisted teams for reviews:
2020-01-08 20:47:45 -05: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 02:20:01 -05:00
settings.ignore_stale_approvals = Ignore stale approvals
settings.ignore_stale_approvals_desc = Do not count approvals that were made on older commits (stale reviews) towards how many approvals the PR has. Irrelevant if stale reviews are already dismissed.
2020-01-15 03:32:57 -05:00
settings.require_signed_commits = Require Signed Commits
2020-06-27 06:11:35 -05:00
settings.require_signed_commits_desc = Reject pushes to this branch if they are unsigned or unverifiable.
2023-01-16 03:00:22 -05:00
settings.protect_branch_name_pattern = Protected Branch Name Pattern
2023-12-01 06:45:04 -05: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 05:44:52 -05:00
settings.protect_patterns = Patterns
2023-03-30 23:16:41 -05: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 09:24:31 -05:00
settings.add_protected_branch = Enable protection
settings.delete_protected_branch = Disable protection
2023-04-17 17:04:26 -05:00
settings.update_protect_branch_success = Branch protection for rule "%s" has been updated.
settings.remove_protected_branch_success = Branch protection for rule "%s" has been removed.
settings.remove_protected_branch_failed = Removing branch protection rule "%s" failed.
2023-01-16 03:00:22 -05:00
settings.protected_branch_deletion = Delete Branch Protection
2018-04-19 09:24:31 -05:00
settings.protected_branch_deletion_desc = Disabling branch protection allows users with write permission to push to the branch. Continue?
2020-01-03 12:47:10 -05: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 14:30:46 -05: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-16 20:00:36 -05: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.
2018-04-19 09:24:31 -05:00
settings.default_branch_desc = Select a default repository branch for pull requests and code commits:
2023-02-13 01:09:52 -05:00
settings.merge_style_desc = Merge Styles
settings.default_merge_style_desc = Default Merge Style
2018-02-16 09:02:40 -05:00
settings.choose_branch = Choose a branch…
2018-04-19 09:24:31 -05:00
settings.no_protected_branch = There are no protected branches.
2018-07-13 15:57:20 -05:00
settings.edit_protected_branch = Edit
2023-01-16 03:00:22 -05:00
settings.protected_branch_required_rule_name = Required rule name
2023-02-20 06:30:41 -05:00
settings.protected_branch_duplicate_rule_name = Duplicate rule name
2018-12-11 06:28:37 -05:00
settings.protected_branch_required_approvals_min = Required approvals cannot be negative.
2021-06-25 09:28:55 -05:00
settings.tags = Tags
settings.tags.protection = Tag Protection
settings.tags.protection.pattern = Tag Pattern
settings.tags.protection.allowed = Allowed
settings.tags.protection.allowed.users = Allowed users
settings.tags.protection.allowed.teams = Allowed teams
settings.tags.protection.allowed.noone = No One
settings.tags.protection.create = Protect Tag
settings.tags.protection.none = There are no protected tags.
2024-01-21 12:25:58 -05: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>.
2019-04-18 21:45:02 -05:00
settings.bot_token = Bot Token
settings.chat_id = Chat ID
2023-08-13 09:00:06 -05:00
settings.thread_id = Thread ID
2020-03-28 08:09:55 -05:00
settings.matrix.homeserver_url = Homeserver URL
settings.matrix.room_id = Room ID
settings.matrix.message_type = Message Type
2019-01-23 13:58:38 -05:00
settings.archive.button = Archive Repo
settings.archive.header = Archive This Repo
2023-08-08 10:25:05 -05: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 13:58:38 -05:00
settings.archive.success = The repo was successfully archived.
2019-06-05 09:16:06 -05:00
settings.archive.error = An error occurred while trying to archive the repo. See the log for more details.
2019-01-23 13:58:38 -05: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 09:28:55 -05:00
settings.archive.tagsettings_unavailable = Tag settings are not available if the repo is archived.
2024-01-23 21:32:57 -05:00
settings.archive.mirrors_unavailable = Mirrors are not available if the repo is archived.
2023-08-08 10:25:05 -05:00
settings.unarchive.button = Unarchive repo
settings.unarchive.header = Unarchive this repo
settings.unarchive.text = Unarchiving the repo will restore its ability to receive commits and pushes, as well as new issues and pull-requests.
settings.unarchive.success = The repo was successfully unarchived.
settings.unarchive.error = An error occurred while trying to unarchive the repo. See the log for more details.
2019-05-29 21:22:26 -05:00
settings.update_avatar_success = The repository avatar has been updated.
2019-10-28 13:31:55 -05:00
settings.lfs = LFS
settings.lfs_filelist = LFS files stored in this repository
settings.lfs_no_lfs_files = No LFS files stored in this repository
settings.lfs_findcommits = Find commits
settings.lfs_lfs_file_no_commits = No Commits found for this LFS file
2019-12-12 08:18:07 -05:00
settings.lfs_noattribute = This path does not have the lockable attribute in the default branch
2019-10-28 13:31:55 -05:00
settings.lfs_delete = Delete LFS file with OID %s
settings.lfs_delete_warning = Deleting an LFS file may cause 'object does not exist' errors on checkout. Are you sure?
settings.lfs_findpointerfiles = Find pointer files
2019-12-12 08:18:07 -05:00
settings.lfs_locks = Locks
settings.lfs_invalid_locking_path = Invalid path: %s
settings.lfs_invalid_lock_directory = Cannot lock directory: %s
settings.lfs_lock_already_exists = Lock already exists: %s
settings.lfs_lock = Lock
settings.lfs_lock_path = Filepath to lock...
settings.lfs_locks_no_locks = No Locks
settings.lfs_lock_file_no_exist = Locked file does not exist in default branch
settings.lfs_force_unlock = Force Unlock
2019-10-28 13:31:55 -05:00
settings.lfs_pointers.found = Found %d blob pointer(s) - %d associated, %d unassociated (%d missing from store)
settings.lfs_pointers.sha = Blob SHA
settings.lfs_pointers.oid = OID
settings.lfs_pointers.inRepo = In Repo
settings.lfs_pointers.exists = Exists in store
settings.lfs_pointers.accessible = Accessible to User
settings.lfs_pointers.associateAccessible = Associate accessible %d OIDs
2021-10-08 12:03:04 -05: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 12:47:33 -05:00
2014-10-10 20:40:51 -05:00
diff.browse_source = Browse Source
diff.parent = parent
diff.commit = commit
2019-05-24 02:52:05 -05:00
diff.git-notes = Notes
2017-05-10 20:03:34 -05:00
diff.data_not_available = Diff Content Not Available
2019-10-15 05:44:36 -05:00
diff.options_button = Diff Options
diff.show_diff_stats = Show Stats
diff.download_patch = Download Patch File
diff.download_diff = Download Diff File
2016-01-01 18:30:00 -05:00
diff.show_split_view = Split View
2016-01-02 17:13:47 -05:00
diff.show_unified_view = Unified View
2018-08-14 12:49:33 -05: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-10 20:40:51 -05:00
diff.stats_desc = <strong> %d changed files</strong> with <strong>%d additions</strong> and <strong>%d deletions</strong>
2020-12-11 20:06:22 -05:00
diff.stats_desc_file = %d changes: %d additions and %d deletions
2014-10-10 20:40:51 -05:00
diff.bin = BIN
2021-03-29 15:44:28 -05:00
diff.bin_not_shown = Binary file not shown.
2014-10-10 20:40:51 -05:00
diff.view_file = View File
2019-09-16 04:03:22 -05: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 10:59:13 -05:00
diff.file_suppressed = File diff suppressed because it is too large
2021-05-04 07:58:49 -05:00
diff.file_suppressed_line_too_long = File diff suppressed because one or more lines are too long
2021-10-15 11:05:33 -05:00
diff.too_many_files = Some files were not shown because too many files have changed in this diff
diff.show_more = Show More
2021-11-21 11:51:08 -05:00
diff.load = Load Diff
2021-09-09 15:13:36 -05:00
diff.generated = generated
diff.vendored = vendored
2023-07-15 04:45:34 -05:00
diff.comment.add_line_comment = Add line comment
2018-08-05 23:43:22 -05: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
diff.review = Review
diff.review.header = Submit review
diff.review.placeholder = Review comment
diff.review.comment = Comment
diff.review.approve = Approve
2023-03-20 16:54:23 -05:00
diff.review.self_reject = Pull request authors can't request changes on their own pull request
2019-01-26 12:20:56 -05:00
diff.review.reject = Request changes
2023-03-20 16:54:23 -05:00
diff.review.self_approve = Pull request authors can't approve their own pull request
2020-06-02 21:40:08 -05:00
diff.committed_by = committed by
2020-10-13 13:50:57 -05:00
diff.protected = Protected
2021-02-27 12:25:00 -05:00
diff.image.side_by_side = Side by Side
diff.image.swipe = Swipe
diff.image.overlay = Overlay
2022-01-06 20:18:52 -05:00
diff.has_escaped = This line has hidden Unicode characters
2023-03-30 07:06:10 -05:00
diff.show_file_tree = Show file tree
diff.hide_file_tree = Hide file tree
2014-10-10 20:40:51 -05:00
2018-04-19 09:24:31 -05:00
releases.desc = Track project versions and downloads.
2014-12-10 16:37:54 -05:00
release.releases = Releases
2020-11-02 18:10:22 -05:00
release.detail = Release details
release.tags = Tags
2014-12-10 16:37:54 -05:00
release.new_release = New Release
release.draft = Draft
release.prerelease = Pre-Release
release.stable = Stable
2021-05-03 12:27:48 -05:00
release.compare = Compare
2014-12-10 16:37:54 -05:00
release.edit = edit
2020-06-05 13:44:54 -05:00
release.ahead.commits = <strong>%d</strong> commits
release.ahead.target = to %s since this release
2023-03-27 08:41:33 -05:00
tag.ahead.target = to %s since this tag
2014-12-10 16:37:54 -05:00
release.source_code = Source Code
2018-04-19 09:24:31 -05:00
release.new_subheader = Releases organize project versions.
release.edit_subheader = Releases organize project versions.
2014-12-10 16:37:54 -05:00
release.tag_name = Tag name
release.target = Target
2018-04-19 09:24:31 -05:00
release.tag_helper = Choose an existing tag or create a new tag.
2023-03-10 11:42:38 -05:00
release.tag_helper_new = New tag. This tag will be created from the target.
release.tag_helper_existing = Existing tag.
2023-04-10 10:56:57 -05:00
release.title = Release title
2023-04-06 20:44:52 -05:00
release.title_empty = Title cannot be empty.
2023-04-10 10:56:57 -05:00
release.message = Describe this release
2018-04-19 09:24:31 -05:00
release.prerelease_desc = Mark as Pre-Release
release.prerelease_helper = Mark this release unsuitable for production use.
2015-11-15 23:52:46 -05:00
release.cancel = Cancel
2014-12-10 16:37:54 -05:00
release.publish = Publish Release
release.save_draft = Save Draft
2018-04-19 09:24:31 -05:00
release.edit_release = Update Release
release.delete_release = Delete Release
2020-11-02 18:10:22 -05:00
release.delete_tag = Delete Tag
2018-04-19 09:24:31 -05:00
release.deletion = Delete Release
2024-01-21 12:25:58 -05: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-17 20:03:43 -05:00
release.deletion_success = The release has been deleted.
2020-11-02 18:10:22 -05: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 09:24:31 -05: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 09:28:55 -05:00
release.tag_name_protected = The tag name is protected.
2020-11-02 18:10:22 -05:00
release.tag_already_exist = This tag name already exists.
2015-11-15 23:52:46 -05:00
release.downloads = Downloads
2020-02-03 14:50:37 -05:00
release.download_count = Downloads: %s
2021-02-28 14:57:45 -05:00
release.add_tag_msg = Use the title and content of release as tag message.
release.add_tag = Create Tag Only
2022-12-21 16:06:26 -05:00
release.releases_for = Releases for %s
release.tags_for = Tags for %s
2014-12-10 16:37:54 -05:00
2018-04-19 09:24:31 -05:00
branch.name = Branch Name
2023-04-17 17:04:26 -05:00
branch.already_exists = A branch named "%s" already exists.
2017-10-25 19:49:16 -05:00
branch.delete_head = Delete
2023-04-17 17:04:26 -05:00
branch.delete = Delete Branch "%s"
2017-10-25 19:49:16 -05:00
branch.delete_html = Delete Branch
2023-08-08 10:25:05 -05: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-17 17:04:26 -05: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 14:59:24 -05:00
branch.create_branch = Create branch <strong>%s</strong>
2023-04-17 17:04:26 -05: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-25 19:49:16 -05:00
branch.deleted_by = Deleted by %s
2023-04-17 17:04:26 -05:00
branch.restore_success = Branch "%s" has been restored.
branch.restore_failed = Failed to restore branch "%s".
branch.protected_deletion_failed = Branch "%s" is protected. It cannot be deleted.
branch.default_deletion_failed = Branch "%s" is the default branch. It cannot be deleted.
branch.restore = Restore Branch "%s"
branch.download = Download Branch "%s"
2023-04-30 10:08:51 -05:00
branch.rename = Rename Branch "%s"
2023-09-17 03:24:40 -05:00
branch.search = Search Branch
2019-10-14 17:40:17 -05:00
branch.included_desc = This branch is part of the default branch
branch.included = Included
2021-05-24 09:57:46 -05:00
branch.create_new_branch = Create branch from branch:
branch.confirm_create_branch = Create branch
2023-05-04 17:54:38 -05:00
branch.warning_rename_default_branch = You are renaming the default branch.
2023-04-30 10:08:51 -05:00
branch.rename_branch_to = Rename "%s" to:
branch.confirm_rename_branch = Rename branch
2022-02-09 15:28:55 -05:00
branch.create_branch_operation = Create branch
2021-05-24 09:57:46 -05:00
branch.new_branch = Create new branch
2023-04-17 17:04:26 -05:00
branch.new_branch_from = Create new branch from "%s"
2021-10-08 12:03:04 -05:00
branch.renamed = Branch %s was renamed to %s.
2016-12-25 11:19:25 -05:00
2021-02-28 14:57:45 -05:00
tag.create_tag = Create tag <strong>%s</strong>
2022-02-09 15:28:55 -05:00
tag.create_tag_operation = Create tag
tag.confirm_create_tag = Create tag
2023-04-17 17:04:26 -05:00
tag.create_tag_from = Create new tag from "%s"
2022-02-09 15:28:55 -05:00
2023-04-17 17:04:26 -05:00
tag.create_success = Tag "%s" has been created.
2021-02-28 14:57:45 -05:00
2018-04-10 21:51:44 -05:00
topic.manage_topics = Manage Topics
topic.done = Done
2023-01-08 13:25:28 -05:00
topic.count_prompt = You cannot select more than 25 topics
2023-08-03 04:18:06 -05: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-10 21:51:44 -05:00
2022-06-09 06:15:08 -05:00
find_file.go_to_file = Go to file
find_file.no_matching = No matching file found
2021-03-29 15:44:28 -05: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.
2014-07-26 22:53:16 -05:00
[org]
org_name_holder = Organization Name
2015-11-03 14:34:21 -05:00
org_full_name_holder = Organization Full Name
2018-04-19 09:24:31 -05:00
org_name_helper = Organization names should be short and memorable.
2014-07-26 22:53:16 -05:00
create_org = Create Organization
2014-08-10 22:11:18 -05:00
repo_updated = Updated
2023-02-18 08:41:31 -05:00
members = Members
2014-08-10 22:11:18 -05:00
teams = Teams
2022-10-10 18:12:03 -05:00
code = Code
2014-08-10 22:11:18 -05:00
lower_members = members
lower_repositories = repositories
2018-03-09 12:37:24 -05:00
create_new_team = New Team
create_team = Create Team
2014-08-14 01:12:21 -05:00
org_desc = Description
2014-08-16 03:21:17 -05:00
team_name = Team Name
team_desc = Description
2018-04-19 09:24:31 -05: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 04:37:14 -05:00
team_access_desc = Repository access
2018-04-19 09:24:31 -05:00
team_permission_desc = Permission
team_unit_desc = Allow Access to Repository Sections
2020-01-17 02:34:37 -05:00
team_unit_disabled = (Disabled)
[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-14 18:07:38 -05:00
follow_blocked_user = You cannot follow this organisation because this organisation has blocked you.
2014-08-14 01:12:21 -05:00
2023-04-17 17:04:26 -05: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 09:24:31 -05:00
form.create_org_not_allowed = You are not allowed to create an organization.
2015-03-26 16:11:47 -05:00
2014-08-14 01:12:21 -05:00
settings = Settings
2018-04-19 09:24:31 -05:00
settings.options = Organization
2014-08-14 01:12:21 -05:00
settings.full_name = Full Name
2023-07-25 03:26:27 -05:00
settings.email = Contact Email
2014-08-14 01:12:21 -05:00
settings.website = Website
settings.location = Location
2019-09-23 15:08:03 -05:00
settings.permission = Permissions
settings.repoadminchangeteam = Repository admin can add and remove access for teams
2019-02-18 11:00:27 -05:00
settings.visibility = Visibility
settings.visibility.public = Public
2023-04-08 05:05:21 -05:00
settings.visibility.limited = Limited (Visible to authenticated users only)
2020-10-06 01:25:43 -05:00
settings.visibility.limited_shortname = Limited
2019-02-18 11:00:27 -05:00
settings.visibility.private = Private (Visible only to organization members)
2020-10-06 01:25:43 -05:00
settings.visibility.private_shortname = Private
2019-02-18 11:00:27 -05:00
2014-08-14 01:12:21 -05:00
settings.update_settings = Update Settings
2017-05-17 20:03:43 -05:00
settings.update_setting_success = Organization settings have been updated.
2023-07-23 23:17:32 -05: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 10:23:05 -05:00
settings.change_orgname_redirect_prompt = The old name will redirect until it is claimed.
2018-04-19 09:24:31 -05:00
settings.update_avatar_success = The organization's avatar has been updated.
2015-03-26 16:11:47 -05:00
settings.delete = Delete Organization
2014-08-14 01:12:21 -05:00
settings.delete_account = Delete This Organization
2018-04-19 09:24:31 -05:00
settings.delete_prompt = The organization will be permanently removed. This <strong>CANNOT</strong> be undone!
2014-08-14 01:12:21 -05:00
settings.confirm_delete_account = Confirm Deletion
2018-04-19 09:24:31 -05:00
settings.delete_org_title = Delete Organization
settings.delete_org_desc = This organization will be deleted permanently. Continue?
2017-07-11 21:25:45 -05:00
settings.hooks_desc = Add webhooks which will be triggered for <strong>all repositories</strong> under this organization.
2014-07-26 22:53:16 -05: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-03-31 23:14:46 -05:00
settings.labels_desc = Add labels which can be used on issues for <strong>all repositories</strong> under this organization.
2015-11-22 01:32:09 -05:00
members.membership_visibility = Membership Visibility:
2018-04-19 09:24:31 -05:00
members.public = Visible
members.public_helper = make hidden
members.private = Hidden
members.private_helper = make visible
2015-11-22 01:32:09 -05:00
members.member_role = Member Role:
2014-08-15 05:29:41 -05:00
members.owner = Owner
members.member = Member
members.remove = Remove
2021-08-26 21:57:40 -05:00
members.remove.detail = Remove %[1]s from %[2]s?
2014-08-16 03:21:17 -05:00
members.leave = Leave
2021-08-26 21:57:40 -05:00
members.leave.detail = Leave %s?
2015-11-22 01:32:09 -05:00
members.invite_desc = Add a new member to %s:
2014-08-15 05:29:41 -05:00
members.invite_now = Invite Now
2014-08-16 03:21:17 -05:00
teams.join = Join
teams.leave = Leave
2021-08-26 21:57:40 -05:00
teams.leave.detail = Leave %s?
2019-11-20 06:27:49 -05:00
teams.can_create_org_repo = Create repositories
teams.can_create_org_repo_helper = Members can create new repositories in organization. Creator will get administrator access to the new repository.
2022-01-04 22:37:00 -05:00
teams.none_access = No Access
2023-02-01 03:14:40 -05:00
teams.none_access_helper = Members cannot view or do any other action on this unit. It has no effect for public repositories.
2022-01-04 22:37:00 -05:00
teams.general_access = General Access
teams.general_access_helper = Members permissions will be decided by below permission table.
teams.read_access = Read
2018-04-19 09:24:31 -05:00
teams.read_access_helper = Members can view and clone team repositories.
2022-01-04 22:37:00 -05:00
teams.write_access = Write
2018-04-19 09:24:31 -05:00
teams.write_access_helper = Members can read and push to team repositories.
teams.admin_access = Administrator Access
teams.admin_access_helper = Members can pull and push to team repositories and add collaborators to them.
2014-08-23 07:24:02 -05:00
teams.no_desc = This team has no description
teams.settings = Settings
2018-04-19 09:24:31 -05:00
teams.owners_permission_desc = Owners have full access to <strong>all repositories</strong> and have <strong>administrator access</strong> to the organization.
2014-08-23 07:24:02 -05:00
teams.members = Team Members
2014-08-24 08:09:05 -05:00
teams.update_settings = Update Settings
2018-04-19 09:24:31 -05:00
teams.delete_team = Delete Team
2014-08-24 08:09:05 -05:00
teams.add_team_member = Add Team Member
2022-10-19 07:40:28 -05:00
teams.invite_team_member = Invite to %s
teams.invite_team_member.list = Pending Invitations
2018-04-19 09:24:31 -05:00
teams.delete_team_title = Delete Team
teams.delete_team_desc = Deleting a team revokes repository access from its members. Continue?
2017-05-17 20:03:43 -05:00
teams.delete_team_success = The team has been deleted.
2018-04-19 09:24:31 -05: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 06:27:49 -05:00
teams.create_repo_permission_desc = Additionally, this team grants <strong>Create repository</strong> permission: members can create new repositories in organization.
2014-08-26 05:11:15 -05:00
teams.repositories = Team Repositories
2018-02-16 09:02:40 -05:00
teams.search_repo_placeholder = Search repository…
2019-11-08 19:39:37 -05:00
teams.remove_all_repos_title = Remove all team repositories
teams.remove_all_repos_desc = This will remove all repositories from the team.
teams.add_all_repos_title = Add all repositories
teams.add_all_repos_desc = This will add all the organization's repositories to the team.
2023-03-23 12:27:03 -05:00
teams.add_nonexistent_repo = "The repository you're trying to add doesn't exist, please create it first."
2018-08-19 13:49:19 -05:00
teams.add_duplicate_users = User is already a team member.
2018-12-09 01:42:11 -05:00
teams.repos.none = No repositories could be accessed by this team.
teams.members.none = No members on this team.
2019-11-06 04:37:14 -05: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 10:25:05 -05:00
teams.invite.title = You have been invited to join team <strong>%s</strong> in organization <strong>%s</strong>.
2022-10-19 07:40:28 -05:00
teams.invite.by = Invited by %s
teams.invite.description = Please click the button below to join the team.
2014-08-16 03:21:17 -05:00
2014-08-28 09:29:00 -05:00
[admin]
dashboard = Dashboard
2024-01-10 06:03:23 -05:00
self_check = Self Check
2023-07-23 20:05:16 -05:00
identity_access = Identity & Access
2018-04-19 09:24:31 -05:00
users = User Accounts
2014-08-28 09:29:00 -05:00
organizations = Organizations
2023-07-23 20:05:16 -05:00
assets = Code Assets
2014-08-28 09:29:00 -05:00
repositories = Repositories
2021-01-14 18:24:03 -05:00
hooks = Webhooks
2023-07-23 20:05:16 -05:00
integrations = Integrations
2018-04-19 09:24:31 -05:00
authentication = Authentication Sources
2020-03-02 13:25:36 -05:00
emails = User Emails
2014-08-28 09:29:00 -05:00
config = Configuration
2014-10-08 17:29:18 -05:00
notices = System Notices
2014-08-28 09:29:00 -05:00
monitor = Monitoring
2015-09-11 19:42:26 -05:00
first_page = First
last_page = Last
2015-09-10 14:45:03 -05:00
total = Total: %d
2023-08-16 05:12:03 -05:00
settings = Admin Settings
2014-08-28 09:29:00 -05:00
2024-01-21 12:25:58 -05: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 09:24:31 -05:00
dashboard.statistic = Summary
dashboard.operations = Maintenance Operations
dashboard.system_status = System Status
2014-08-28 09:29:00 -05:00
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
dashboard.operation_run = Run
2017-05-17 20:03:43 -05:00
dashboard.clean_unbind_oauth = Clean unbound OAuth connections
dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted.
2020-07-05 14:38:03 -05:00
dashboard.task.started = Started Task: %[1]s
dashboard.task.process = Task: %[1]s
2023-08-08 10:25:05 -05:00
dashboard.task.cancelled = Task: %[1]s canceled: %[3]s
2020-07-05 14:38:03 -05: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-16 18:31:38 -05:00
dashboard.cron.started = Started Cron: %[1]s
dashboard.cron.process = Cron: %[1]s
2023-08-08 10:25:05 -05:00
dashboard.cron.cancelled = Cron: %[1]s canceled: %[3]s
2020-05-16 18:31:38 -05:00
dashboard.cron.error = Error in Cron: %s: %[3]s
dashboard.cron.finished = Cron: %[1]s has finished
dashboard.delete_inactive_accounts = Delete all unactivated accounts
dashboard.delete_inactive_accounts.started = Delete all unactivated accounts task started.
2021-02-19 01:24:51 -05:00
dashboard.delete_repo_archives = "Delete all repositories' archives (ZIP, TAR.GZ, etc..)"
2020-05-16 18:31:38 -05:00
dashboard.delete_repo_archives.started = Delete all repository archives task started.
2018-04-19 09:24:31 -05:00
dashboard.delete_missing_repos = Delete all repositories missing their Git files
2020-05-16 18:31:38 -05:00
dashboard.delete_missing_repos.started = Delete all repositories missing their Git files task started.
2019-06-02 01:40:12 -05:00
dashboard.delete_generated_repository_avatars = Delete generated repository avatars
2023-06-29 05:03:20 -05:00
dashboard.sync_repo_branches = Sync missed branches from git data to databases
2024-01-23 22:02:04 -05:00
dashboard.sync_repo_tags = Sync tags from git data to database
2020-05-16 18:31:38 -05:00
dashboard.update_mirrors = Update Mirrors
dashboard.repo_health_check = Health check all repositories
dashboard.check_repo_stats = Check all repository statistics
dashboard.archive_cleanup = Delete old repository archives
dashboard.deleted_branches_cleanup = Clean-up deleted branches
dashboard.update_migration_poster_id = Update migration poster IDs
2018-04-19 09:24:31 -05:00
dashboard.git_gc_repos = Garbage collect all repositories
2024-01-21 12:25:58 -05: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.
2018-04-19 09:24:31 -05:00
dashboard.resync_all_hooks = Resynchronize pre-receive, update and post-receive hooks of all repositories.
2017-07-11 21:25:45 -05:00
dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for which records exist
2017-05-10 08:10:18 -05:00
dashboard.sync_external_users = Synchronize external user data
2021-01-26 16:02:42 -05:00
dashboard.cleanup_hook_task_table = Cleanup hook_task table
2022-03-30 03:42:47 -05:00
dashboard.cleanup_packages = Cleanup expired packages
2023-09-06 02:41:06 -05:00
dashboard.cleanup_actions = Cleanup actions expired logs and artifacts
2014-08-28 09:29:00 -05:00
dashboard.server_uptime = Server Uptime
dashboard.current_goroutine = Current Goroutines
dashboard.current_memory_usage = Current Memory Usage
dashboard.total_memory_allocated = Total Memory Allocated
dashboard.memory_obtained = Memory Obtained
dashboard.pointer_lookup_times = Pointer Lookup Times
2018-04-19 09:24:31 -05:00
dashboard.memory_allocate_times = Memory Allocations
dashboard.memory_free_times = Memory Frees
2014-08-28 09:29:00 -05:00
dashboard.current_heap_usage = Current Heap Usage
dashboard.heap_memory_obtained = Heap Memory Obtained
dashboard.heap_memory_idle = Heap Memory Idle
dashboard.heap_memory_in_use = Heap Memory In Use
dashboard.heap_memory_released = Heap Memory Released
dashboard.heap_objects = Heap Objects
dashboard.bootstrap_stack_usage = Bootstrap Stack Usage
dashboard.stack_memory_obtained = Stack Memory Obtained
dashboard.mspan_structures_usage = MSpan Structures Usage
dashboard.mspan_structures_obtained = MSpan Structures Obtained
dashboard.mcache_structures_usage = MCache Structures Usage
dashboard.mcache_structures_obtained = MCache Structures Obtained
dashboard.profiling_bucket_hash_table_obtained = Profiling Bucket Hash Table Obtained
2015-12-16 16:52:38 -05:00
dashboard.gc_metadata_obtained = GC Metadata Obtained
2014-08-28 09:29:00 -05:00
dashboard.other_system_allocation_obtained = Other System Allocation Obtained
dashboard.next_gc_recycle = Next GC Recycle
dashboard.last_gc_time = Since Last GC Time
dashboard.total_gc_time = Total GC Pause
dashboard.total_gc_pause = Total GC Pause
dashboard.last_gc_pause = Last GC Pause
dashboard.gc_times = GC Times
2021-05-01 07:17:02 -05:00
dashboard.delete_old_actions = Delete all old actions from database
dashboard.delete_old_actions.started = Delete all old actions from database started.
2022-02-07 02:43:53 -05:00
dashboard.update_checker = Update checker
2022-03-28 07:54:59 -05:00
dashboard.delete_old_system_notices = Delete all old system notices from database
2023-01-16 14:50:53 -05: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-30 20:45:19 -05:00
dashboard.stop_zombie_tasks = Stop zombie tasks
dashboard.stop_endless_tasks = Stop endless tasks
dashboard.cancel_abandoned_jobs = Cancel abandoned jobs
2023-08-23 22:06:51 -05:00
dashboard.start_schedule_tasks = Start schedule tasks
2023-06-29 05:03:20 -05:00
dashboard.sync_branch.started = Branches Sync started
2024-01-23 22:02:04 -05:00
dashboard.sync_tag.started = Tags Sync started
2023-08-17 09:05:17 -05:00
dashboard.rebuild_issue_indexer = Rebuild issue indexer
2014-08-28 09:29:00 -05:00
2018-04-19 09:24:31 -05:00
users.user_manage_panel = User Account Management
users.new_account = Create User Account
users.name = Username
2020-03-02 13:25:36 -05:00
users.full_name = Full Name
2014-08-29 02:32:52 -05:00
users.activated = Activated
users.admin = Admin
2020-01-13 12:33:46 -05:00
users.restricted = Restricted
2023-09-14 01:53:36 -05:00
users.reserved = Reserved
users.bot = Bot
users.remote = Remote
2020-08-19 20:53:49 -05:00
users.2fa = 2FA
2014-08-29 02:32:52 -05:00
users.repos = Repos
users.created = Created
2018-04-19 09:24:31 -05:00
users.last_login = Last Sign-In
users.never_login = Never Signed-In
users.send_register_notify = Send User Registration Notification
2023-04-17 17:04:26 -05:00
users.new_success = The user account "%s" has been created.
2014-08-29 02:32:52 -05:00
users.edit = Edit
2015-09-07 10:51:53 -05:00
users.auth_source = Authentication Source
2014-08-29 02:32:52 -05:00
users.local = Local
2018-04-19 09:24:31 -05:00
users.auth_login_name = Authentication Sign-In Name
users.password_helper = Leave the password empty to keep it unchanged.
users.update_profile_success = The user account has been updated.
users.edit_account = Edit User Account
2019-11-12 10:47:29 -05:00
users.max_repo_creation = Maximum Number of Repositories
2018-04-19 09:24:31 -05:00
users.max_repo_creation_desc = (Enter -1 to use the global default limit.)
users.is_activated = User Account Is Activated
users.prohibit_login = Disable Sign-In
users.is_admin = Is Administrator
2020-01-13 12:33:46 -05:00
users.is_restricted = Is Restricted
2018-04-19 09:24:31 -05:00
users.allow_git_hook = May Create Git Hooks
2024-01-21 12:25:58 -05:00
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.
2018-04-19 09:24:31 -05:00
users.allow_import_local = May Import Local Repositories
users.allow_create_organization = May Create Organizations
users.update_profile = Update User Account
users.delete_account = Delete User Account
2022-05-08 15:22:55 -05:00
users.cannot_delete_self = "You cannot delete yourself"
2018-04-19 09:24:31 -05:00
users.still_own_repo = This user still owns one or more repositories. Delete or transfer these repositories first.
users.still_has_org = This user is a member of an organization. Remove the user from any organizations first.
2022-07-14 02:22:09 -05:00
users.purge = Purge User
2023-08-26 16:10:42 -05: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 12:27:03 -05:00
users.still_own_packages = This user still owns one or more packages, delete these packages first.
2018-04-19 09:24:31 -05:00
users.deletion_success = The user account has been deleted.
2021-01-05 08:54:48 -05:00
users.reset_2fa = Reset 2FA
2021-10-12 13:11:35 -05:00
users.list_status_filter.menu_text = Filter
users.list_status_filter.reset = Reset
users.list_status_filter.is_active = Active
users.list_status_filter.not_active = Inactive
users.list_status_filter.is_admin = Admin
users.list_status_filter.not_admin = Not Admin
users.list_status_filter.is_restricted = Restricted
users.list_status_filter.not_restricted = Not Restricted
users.list_status_filter.is_prohibit_login = Prohibit Login
users.list_status_filter.not_prohibit_login = Allow Login
users.list_status_filter.is_2fa_enabled = 2FA Enabled
users.list_status_filter.not_2fa_enabled = 2FA Disabled
2023-08-31 04:21:18 -05:00
users.details = User Details
2014-08-29 02:32:52 -05:00
2020-03-02 13:25:36 -05:00
emails.email_manage_panel = User Email Management
emails.primary = Primary
emails.activated = Activated
emails.filter_sort.email = Email
emails.filter_sort.email_reverse = Email (reverse)
emails.filter_sort.name = User Name
emails.filter_sort.name_reverse = User Name (reverse)
emails.updated = Email updated
emails.not_updated = Failed to update the requested email address: %v
emails.duplicate_active = This email address is already active for a different user.
emails.change_email_header = Update Email Properties
2023-10-25 12:21:23 -05:00
emails.change_email_text = Are you sure you want to update this email address?
2020-03-02 13:25:36 -05:00
2017-05-17 20:03:43 -05:00
orgs.org_manage_panel = Organization Management
2014-08-29 07:50:43 -05:00
orgs.name = Name
orgs.teams = Teams
orgs.members = Members
2018-04-19 09:24:31 -05:00
orgs.new_orga = New Organization
2014-08-29 07:50:43 -05:00
2017-05-17 20:03:43 -05:00
repos.repo_manage_panel = Repository Management
2020-09-24 23:09:23 -05:00
repos.unadopted = Unadopted Repositories
repos.unadopted.no_more = No more unadopted repositories found
2014-08-29 07:50:43 -05:00
repos.owner = Owner
repos.name = Name
repos.private = Private
repos.watches = Watches
repos.stars = Stars
2018-05-23 20:03:42 -05:00
repos.forks = Forks
2014-08-29 07:50:43 -05:00
repos.issues = Issues
2017-04-11 08:30:15 -05:00
repos.size = Size
2023-06-28 17:41:02 -05:00
repos.lfs_size = LFS Size
2014-08-29 07:50:43 -05:00
2022-03-30 03:42:47 -05:00
packages.package_manage_panel = Package Management
packages.total_size = Total Size: %s
2023-01-18 10:52:04 -05:00
packages.unreferenced_size = Unreferenced Size: %s
2023-08-07 19:46:10 -05:00
packages.cleanup = Clean up expired data
2023-11-20 08:41:10 -05:00
packages.cleanup.success = Cleaned up expired data successfully
2022-03-30 03:42:47 -05:00
packages.owner = Owner
packages.creator = Creator
packages.name = Name
packages.version = Version
packages.type = Type
packages.repository = Repository
packages.size = Size
packages.published = Published
2021-01-14 18:24:03 -05:00
defaulthooks = Default Webhooks
2024-01-21 12:25:58 -05: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-14 18:24:03 -05:00
defaulthooks.add_webhook = Add Default Webhook
defaulthooks.update_webhook = Update Default Webhook
2019-03-18 21:33:20 -05:00
2021-01-14 18:24:03 -05:00
systemhooks = System Webhooks
2024-01-21 12:25:58 -05: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 17:08:05 -05:00
systemhooks.add_webhook = Add System Webhook
systemhooks.update_webhook = Update System Webhook
2018-04-19 09:24:31 -05:00
auths.auth_manage_panel = Authentication Source Management
auths.new = Add Authentication Source
2014-08-29 07:50:43 -05:00
auths.name = Name
auths.type = Type
auths.enabled = Enabled
2018-04-19 09:24:31 -05:00
auths.syncenabled = Enable User Synchronization
2014-08-29 07:50:43 -05:00
auths.updated = Updated
2015-09-07 10:51:53 -05:00
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
2016-07-07 18:25:09 -05:00
auths.security_protocol = Security Protocol
2014-08-29 07:50:43 -05:00
auths.domain = Domain
auths.host = Host
auths.port = Port
2015-08-12 18:58:27 -05:00
auths.bind_dn = Bind DN
auths.bind_password = Bind Password
auths.user_base = User Search Base
2015-09-04 22:39:23 -05:00
auths.user_dn = User DN
2018-04-19 09:24:31 -05:00
auths.attribute_username = Username Attribute
2024-01-21 12:25:58 -05:00
auths.attribute_username_placeholder = Leave empty to use the username entered in Forgejo.
2018-04-19 09:24:31 -05:00
auths.attribute_name = First Name Attribute
auths.attribute_surname = Surname Attribute
auths.attribute_mail = Email Attribute
2018-05-23 23:59:02 -05:00
auths.attribute_ssh_public_key = Public SSH Key Attribute
2021-09-26 21:39:36 -05:00
auths.attribute_avatar = Avatar Attribute
2018-04-19 09:24:31 -05:00
auths.attributes_in_bind = Fetch Attributes in Bind DN Context
2020-01-19 22:47:39 -05:00
auths.allow_deactivate_all = Allow an empty search result to deactivate all users
2018-05-08 07:40:52 -05:00
auths.use_paged_search = Use Paged Search
auths.search_page_size = Page Size
2015-08-12 18:58:27 -05:00
auths.filter = User Filter
2015-08-18 23:34:03 -05:00
auths.admin_filter = Admin Filter
2020-03-05 01:30:33 -05:00
auths.restricted_filter = Restricted Filter
auths.restricted_filter_helper = Leave empty to not set any users as restricted. Use an asterisk ('*') to set all users that do not match Admin Filter as restricted.
2022-02-11 09:24:58 -05:00
auths.verify_group_membership = Verify group membership in LDAP (leave the filter empty to skip)
2020-09-10 10:30:07 -05: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 09:24:58 -05:00
auths.map_group_to_team = Map LDAP groups to Organization teams (leave the field empty to skip)
auths.map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding LDAP group
auths.enable_ldap_groups = Enable LDAP groups
2018-01-01 21:37:16 -05:00
auths.ms_ad_sa = MS AD Search Attributes
2015-09-07 10:51:53 -05:00
auths.smtp_auth = SMTP Authentication Type
2014-08-29 07:50:43 -05:00
auths.smtphost = SMTP Host
auths.smtpport = SMTP Port
2015-09-11 12:32:33 -05:00
auths.allowed_domains = Allowed Domains
2018-04-19 09:24:31 -05:00
auths.allowed_domains_helper = Leave empty to allow all domains. Separate multiple domains with a comma (',').
2015-08-29 02:45:58 -05:00
auths.skip_tls_verify = Skip TLS Verify
2021-08-11 15:42:58 -05:00
auths.force_smtps = Force SMTPS
2021-08-14 09:10:39 -05:00
auths.force_smtps_helper = SMTPS is always used on port 465. Set this to force SMTPS on other ports. (Otherwise STARTTLS will be used on other ports if it is supported by the host.)
2021-08-11 15:42:58 -05:00
auths.helo_hostname = HELO Hostname
auths.helo_hostname_helper = Hostname sent with HELO. Leave blank to send current hostname.
auths.disable_helo = Disable HELO
2015-04-23 06:58:57 -05:00
auths.pam_service_name = PAM Service Name
2021-05-13 17:11:47 -05:00
auths.pam_email_domain = PAM Email Domain (optional)
2017-05-01 08:26:53 -05:00
auths.oauth2_provider = OAuth2 Provider
2020-12-27 21:35:55 -05:00
auths.oauth2_icon_url = Icon URL
2017-02-22 02:14:37 -05:00
auths.oauth2_clientID = Client ID (Key)
auths.oauth2_clientSecret = Client Secret
2017-05-01 08:26:53 -05:00
auths.openIdConnectAutoDiscoveryURL = OpenID Connect Auto Discovery URL
2018-04-19 09:24:31 -05:00
auths.oauth2_use_custom_url = Use Custom URLs Instead of Default URLs
2017-05-01 08:26:53 -05:00
auths.oauth2_tokenURL = Token URL
auths.oauth2_authURL = Authorize URL
auths.oauth2_profileURL = Profile URL
auths.oauth2_emailURL = Email URL
2021-09-10 11:37:57 -05: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-05 20:11:08 -05:00
auths.oauth2_tenant = Tenant
2021-12-14 03:37:11 -05:00
auths.oauth2_scopes = Additional Scopes
auths.oauth2_required_claim_name = Required Claim Name
auths.oauth2_required_claim_name_helper = Set this name to restrict login from this source to users with a claim with this name
auths.oauth2_required_claim_value = Required Claim Value
auths.oauth2_required_claim_value_helper = Set this value to restrict login from this source to users with a claim with this name and value
2021-12-16 14:01:14 -05:00
auths.oauth2_group_claim_name = Claim name providing group names for this source. (Optional)
auths.oauth2_admin_group = Group Claim value for administrator users. (Optional - requires claim name above)
auths.oauth2_restricted_group = Group Claim value for restricted users. (Optional - requires claim name above)
2023-02-08 01:44:42 -05:00
auths.oauth2_map_group_to_team = Map claimed groups to Organization teams. (Optional - requires claim name above)
auths.oauth2_map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding group.
2014-08-29 07:50:43 -05:00
auths.enable_auto_register = Enable Auto Registration
2019-11-22 18:33:31 -05: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 07:50:43 -05:00
auths.tips = Tips
2017-05-01 08:26:53 -05:00
auths.tips.oauth2.general = OAuth2 Authentication
2023-06-14 20:12:50 -05:00
auths.tips.oauth2.general.tip = When registering a new OAuth2 authentication, the callback/redirect URL should be:
2017-05-01 08:26:53 -05:00
auths.tip.oauth2_provider = OAuth2 Provider
2018-04-19 09:24:31 -05: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-02 22:11:45 -05: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 08:30:21 -05:00
auths.tip.dropbox = Create a new application at https://www.dropbox.com/developers/apps
2017-11-01 11:03:10 -05:00
auths.tip.facebook = Register a new application at https://developers.facebook.com/apps and add the product "Facebook Login"
2017-05-01 08:26:53 -05:00
auths.tip.github = Register a new OAuth application on https://github.com/settings/applications/new
auths.tip.gitlab = Register a new application on https://gitlab.com/profile/applications
2018-04-19 09:24:31 -05:00
auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at https://console.developers.google.com/
2017-05-01 08:26:53 -05:00
auths.tip.openid_connect = Use the OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) to specify the endpoints
2018-04-19 09:24:31 -05: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 14:06:22 -05:00
auths.tip.discord = Register a new application on https://discordapp.com/developers/applications/me
2023-08-27 06:59:12 -05:00
auths.tip.gitea = Register a new OAuth2 application. Guide can be found at https://docs.gitea.com/development/oauth2-provider
2020-03-04 17:08:52 -05: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 13:21:49 -05:00
auths.tip.mastodon = Input a custom instance URL for the mastodon instance you want to authenticate with (or use the default one)
2018-04-19 09:24:31 -05:00
auths.edit = Edit Authentication Source
auths.activated = This Authentication Source is Activated
2023-04-17 17:04:26 -05:00
auths.new_success = The authentication "%s" has been added.
2018-04-19 09:24:31 -05:00
auths.update_success = The authentication source has been updated.
auths.update = Update Authentication Source
auths.delete = Delete Authentication Source
2017-05-17 20:03:43 -05:00
auths.delete_auth_title = Delete Authentication Source
2018-04-19 09:24:31 -05: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-17 17:04:26 -05:00
auths.login_source_exist = The authentication source "%s" already exists.
2019-11-22 18:33:31 -05:00
auths.login_source_of_type_exist = An authentication source of this type already exists.
2023-03-10 01:14:43 -05: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 07:50:43 -05:00
2014-08-30 07:49:51 -05:00
config.server_config = Server Configuration
2018-04-19 09:24:31 -05:00
config.app_name = Site Title
2024-01-21 12:25:58 -05:00
config.app_ver = Forgejo Version
config.app_url = Forgejo Base URL
2017-06-22 08:21:56 -05:00
config.custom_conf = Configuration File Path
2019-03-19 17:40:13 -05:00
config.custom_file_root_path = "Custom File Root Path"
2021-11-05 14:23:55 -05:00
config.domain = Server Domain
2018-04-19 09:24:31 -05:00
config.offline_mode = Local Mode
2014-08-30 07:49:51 -05:00
config.disable_router_log = Disable Router Log
2018-04-19 09:24:31 -05:00
config.run_user = Run As Username
2014-08-30 07:49:51 -05:00
config.run_mode = Run Mode
2017-02-13 06:49:42 -05:00
config.git_version = Git Version
2023-07-19 04:22:57 -05:00
config.app_data_path = App Data Path
2014-08-30 07:49:51 -05:00
config.repo_root_path = Repository Root Path
2016-12-25 20:16:37 -05:00
config.lfs_root_path = LFS Root Path
2018-04-19 09:24:31 -05:00
config.log_file_root_path = Log Path
2014-08-30 07:49:51 -05:00
config.script_type = Script Type
config.reverse_auth_user = Reverse Authentication User
2016-02-27 20:48:39 -05:00
config.ssh_config = SSH Configuration
config.ssh_enabled = Enabled
2018-04-19 09:24:31 -05:00
config.ssh_start_builtin_server = Use Built-In Server
2021-11-05 14:23:55 -05:00
config.ssh_domain = SSH Server Domain
2016-02-27 20:48:39 -05:00
config.ssh_port = Port
config.ssh_listen_port = Listen Port
config.ssh_root_path = Root Path
config.ssh_key_test_path = Key Test Path
config.ssh_keygen_path = Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check = Minimum Key Size Check
config.ssh_minimum_key_sizes = Minimum Key Sizes
2019-06-16 13:24:49 -05:00
config.lfs_config = LFS Configuration
config.lfs_enabled = Enabled
config.lfs_content_path = LFS Content Path
config.lfs_http_auth_expiry = LFS HTTP Auth Expiry
2014-08-30 07:49:51 -05:00
config.db_config = Database Configuration
config.db_type = Type
config.db_host = Host
config.db_name = Name
2018-04-19 09:24:31 -05:00
config.db_user = Username
2020-01-20 10:45:14 -05:00
config.db_schema = Schema
2018-04-19 09:24:31 -05:00
config.db_ssl_mode = SSL
2014-08-30 07:49:51 -05:00
config.db_path = Path
2016-08-10 13:01:42 -05:00
2014-08-30 07:49:51 -05:00
config.service_config = Service Configuration
2018-04-19 09:24:31 -05:00
config.register_email_confirm = Require Email Confirmation to Register
config.disable_register = Disable Self-Registration
2024-01-21 12:25:58 -05:00
config.allow_only_internal_registration = Allow Registration Only Through Forgejo itself
2018-07-20 11:40:08 -05:00
config.allow_only_external_registration = Allow Registration Only Through External Services
2018-04-19 09:24:31 -05:00
config.enable_openid_signup = Enable OpenID Self-Registration
config.enable_openid_signin = Enable OpenID Sign-In
2015-02-05 12:10:52 -05:00
config.show_registration_button = Show Register Button
2018-04-19 09:24:31 -05:00
config.require_sign_in_view = Require Sign-In to View Pages
config.mail_notify = Enable Email Notifications
config.enable_captcha = Enable CAPTCHA
2014-08-30 07:49:51 -05:00
config.active_code_lives = Active Code Lives
2019-04-18 02:23:59 -05:00
config.reset_password_code_lives = Recover Account Code Expiry Time
2018-04-19 09:24:31 -05:00
config.default_keep_email_private = Hide Email Addresses by Default
config.default_allow_create_organization = Allow Creation of Organizations by Default
config.enable_timetracking = Enable Time Tracking
config.default_enable_timetracking = Enable Time Tracking by Default
config.default_allow_only_contributors_to_track_time = Let Only Contributors Track Time
config.no_reply_address = Hidden Email Domain
2019-02-18 11:00:27 -05:00
config.default_visibility_organization = Default visibility for new Organizations
2018-07-20 11:40:08 -05:00
config.default_enable_dependencies = Enable Issue Dependencies by Default
2016-08-10 13:01:42 -05:00
2014-08-30 07:49:51 -05:00
config.webhook_config = Webhook Configuration
2015-07-25 13:14:07 -05:00
config.queue_length = Queue Length
2014-08-30 07:49:51 -05:00
config.deliver_timeout = Deliver Timeout
2017-05-17 20:03:43 -05:00
config.skip_tls_verify = Skip TLS Verification
2016-08-10 13:01:42 -05:00
2022-08-02 11:43:27 -05:00
config.mailer_config = Mailer Configuration
2014-08-30 07:49:51 -05:00
config.mailer_enabled = Enabled
2022-08-02 11:43:27 -05:00
config.mailer_enable_helo = Enable HELO
2014-08-30 07:49:51 -05:00
config.mailer_name = Name
2022-08-02 11:43:27 -05:00
config.mailer_protocol = Protocol
config.mailer_smtp_addr = SMTP Addr
config.mailer_smtp_port = SMTP Port
2014-08-30 07:49:51 -05:00
config.mailer_user = User
2017-10-26 03:47:16 -05:00
config.mailer_use_sendmail = Use Sendmail
config.mailer_sendmail_path = Sendmail Path
2018-04-19 09:24:31 -05:00
config.mailer_sendmail_args = Extra Arguments to Sendmail
2020-05-02 18:04:31 -05:00
config.mailer_sendmail_timeout = Sendmail Timeout
2022-08-02 11:43:27 -05:00
config.mailer_use_dummy = Dummy
2020-08-10 21:38:30 -05:00
config.test_email_placeholder = Email (e.g. test@example.com)
2018-04-19 09:24:31 -05:00
config.send_test_mail = Send Testing Email
2023-04-27 20:48:41 -05:00
config.send_test_mail_submit = Send
2023-04-17 17:04:26 -05:00
config.test_mail_failed = Failed to send a testing email to "%s": %v
config.test_mail_sent = A testing email has been sent to "%s".
2016-08-10 13:01:42 -05:00
2014-08-30 07:49:51 -05:00
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
2016-08-10 13:01:42 -05:00
2014-08-30 07:49:51 -05:00
config.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
2019-05-06 09:35:11 -05:00
config.cache_item_ttl = Cache Item TTL
2016-08-10 13:01:42 -05:00
2014-08-30 07:49:51 -05:00
config.session_config = Session Configuration
config.session_provider = Session Provider
config.provider_config = Provider Config
config.cookie_name = Cookie Name
config.gc_interval_time = GC Interval Time
config.session_life_time = Session Life Time
config.https_only = HTTPS Only
config.cookie_life_time = Cookie Life Time
2016-08-10 13:01:42 -05:00
2018-04-19 09:24:31 -05:00
config.picture_config = Picture and Avatar Configuration
2014-08-30 07:49:51 -05:00
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
2016-08-07 12:27:38 -05:00
config.enable_federated_avatar = Enable Federated Avatars
2016-08-10 13:01:42 -05:00
config.git_config = Git Configuration
config.git_disable_diff_highlight = Disable Diff Syntax Highlight
config.git_max_diff_lines = Max Diff Lines (for a single file)
config.git_max_diff_line_characters = Max Diff Characters (for a single line)
config.git_max_diff_files = Max Diff Files (to be shown)
config.git_gc_args = GC Arguments
config.git_migrate_timeout = Migration Timeout
config.git_mirror_timeout = Mirror Update Timeout
config.git_clone_timeout = Clone Operation Timeout
config.git_pull_timeout = Pull Operation Timeout
config.git_gc_timeout = GC Operation Timeout
2014-08-30 07:49:51 -05:00
config.log_config = Log Configuration
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-21 17:35:11 -05:00
config.logger_name_fmt = Logger: %s
2019-04-02 02:48:31 -05:00
config.disabled_logger = Disabled
config.access_log_mode = Access Log Mode
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-21 17:35:11 -05:00
config.access_log_template = Access Log Template
2019-04-02 02:48:31 -05:00
config.xorm_log_sql = Log SQL
2014-08-30 07:49:51 -05:00
2022-10-16 18:29:26 -05:00
config.set_setting_failed = Set setting %s failed
2023-06-03 09:03:41 -05:00
monitor.stats = Stats
2014-08-30 07:49:51 -05:00
monitor.cron = Cron Tasks
monitor.name = Name
monitor.schedule = Schedule
monitor.next = Next Time
monitor.previous = Previous Time
2018-04-19 09:24:31 -05:00
monitor.execute_times = Executions
2014-08-30 07:49:51 -05: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 02:45:47 -05:00
monitor.stacktrace = Stacktrace
monitor.processes_count = %d Processes
monitor.download_diagnosis_report = Download diagnosis report
2014-08-30 07:49:51 -05:00
monitor.desc = Description
monitor.start = Start Time
monitor.execute_time = Execution Time
2022-03-28 20:31:07 -05:00
monitor.last_execution_result = Result
2019-11-30 09:40:22 -05:00
monitor.process.cancel = Cancel process
2023-10-22 06:59:31 -05:00
monitor.process.cancel_desc = Cancelling a process may cause data loss
monitor.process.cancel_notices = Cancel: <strong>%s</strong>?
2021-11-30 15:06:32 -05: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 02:45:47 -05:00
2020-01-07 06:23:09 -05:00
monitor.queues = Queues
monitor.queue = Queue: %s
monitor.queue.name = Name
monitor.queue.type = Type
monitor.queue.exemplar = Exemplar Type
monitor.queue.numberworkers = Number of Workers
2023-09-04 08:07:32 -05:00
monitor.queue.activeworkers = Active Workers
2020-01-07 06:23:09 -05:00
monitor.queue.maxnumberworkers = Max Number of Workers
2022-02-12 00:31:26 -05:00
monitor.queue.numberinqueue = Number in Queue
2023-09-04 08:07:32 -05:00
monitor.queue.review_add = Review / Add Workers
2020-01-07 06:23:09 -05:00
monitor.queue.settings.title = Pool Settings
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 02:45:47 -05:00
monitor.queue.settings.desc = Pools dynamically grow in response to their worker queue blocking.
2020-01-07 06:23:09 -05:00
monitor.queue.settings.maxnumberworkers = Max Number of workers
monitor.queue.settings.maxnumberworkers.placeholder = Currently %[1]d
monitor.queue.settings.maxnumberworkers.error = Max number of workers must be a number
monitor.queue.settings.submit = Update Settings
monitor.queue.settings.changed = Settings Updated
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 02:45:47 -05: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 07:49:51 -05:00
2014-10-08 17:29:18 -05:00
notices.system_notice_list = System Notices
2017-05-10 20:03:34 -05:00
notices.view_detail_header = View Notice Details
2022-12-08 08:14:09 -05:00
notices.operations = Operations
2015-12-05 01:09:14 -05: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-08 17:29:18 -05:00
notices.type = Type
notices.type_1 = Repository
2020-05-16 18:31:38 -05:00
notices.type_2 = Task
2014-10-08 17:29:18 -05:00
notices.desc = Description
notices.op = Op.
2017-05-17 20:03:43 -05:00
notices.delete_success = The system notices have been deleted.
2014-10-08 17:29:18 -05:00
2024-01-10 06:03:23 -05:00
self_check.no_problem_found = No problem found yet.
self_check.database_collation_mismatch = Expect database to use collation: %s
2024-01-21 12:25:58 -05: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 06:03:23 -05: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.
self_check.database_fix_mssql = For MSSQL users, you could only fix the problem by "ALTER ... COLLATE ..." SQLs manually at the moment.
2014-07-25 23:24:27 -05:00
[action]
2017-11-01 11:03:10 -05: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 13:18:25 -05: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 10:49:00 -05:00
auto_merge_pull_request = `automatically merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2017-11-01 11:03:10 -05:00
transfer_repo = transferred repository <code>%s</code> to <a href="%s">%s</a>
2021-11-16 13:18:25 -05:00
push_tag = pushed tag <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a>
2017-11-01 11:03:10 -05: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-04 17:44:30 -05:00
compare_branch = Compare
2017-05-17 20:03:43 -05:00
compare_commits = Compare %d commits
2019-06-29 04:18:49 -05:00
compare_commits_general = Compare commits
2021-11-16 13:18:25 -05: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-06 21:06:09 -05: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 13:18:25 -05: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>`
2023-10-22 06:59:31 -05:00
publish_release = `released <a href="%[2]s"> "%[4]s" </a> at <a href="%[1]s">%[3]s</a>`
2021-11-16 13:18:25 -05:00
review_dismissed = `dismissed review from <b>%[4]s</b> for <a href="%[1]s">%[3]s#%[2]s</a>`
2021-02-11 12:32:25 -05:00
review_dismissed_reason = Reason:
2021-11-16 13:18:25 -05:00
create_branch = created branch <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
2021-10-28 02:05:00 -05:00
starred_repo = starred <a href="%[1]s">%[2]s</a>
2021-10-16 09:21:16 -05:00
watched_repo = started watching <a href="%[1]s">%[2]s</a>
2014-07-25 23:24:27 -05:00
[tool]
now = now
2017-06-28 00:43:28 -05: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 07:49:51 -05:00
raw_seconds = seconds
raw_minutes = minutes
2015-08-11 04:54:00 -05:00
[dropzone]
2018-04-19 09:24:31 -05:00
default_message = Drop files or click here to upload.
2023-01-08 13:25:28 -05:00
invalid_input_type = You cannot upload files of this type.
2017-03-09 08:24:57 -05:00
file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB).
2015-08-12 18:58:27 -05:00
remove_file = Remove file
2016-12-30 13:49:54 -05:00
[notification]
notifications = Notifications
unread = Unread
read = Read
2018-04-19 09:24:31 -05:00
no_unread = No unread notifications.
no_read = No read notifications.
2017-03-09 08:24:57 -05:00
pin = Pin notification
2017-01-17 20:18:55 -05:00
mark_as_read = Mark as read
mark_as_unread = Mark as unread
2017-12-07 00:52:57 -05:00
mark_all_as_read = Mark all as read
2022-09-29 14:09:14 -05:00
subscriptions = Subscriptions
watching = Watching
no_subscriptions = No subscriptions
2017-03-22 05:43:54 -05:00
[gpg]
2019-10-16 08:42:42 -05:00
default_key = Signed with default key
2017-03-22 05:43:54 -05:00
error.extract_sign = Failed to extract signature
error.generate_hash = Failed to generate hash of commit
2018-04-19 09:24:31 -05:00
error.no_committer_account = No account linked to committer's email address
2017-11-01 11:03:10 -05:00
error.no_gpg_keys_found = "No known key found for this signature in database"
error.not_signed_commit = "Not a signed commit"
2018-04-19 09:24:31 -05:00
error.failed_retrieval_gpg_keys = "Failed to retrieve any key attached to the committer's account"
2019-10-16 08:42:42 -05:00
error.probable_bad_signature = "WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS."
error.probable_bad_default_signature = "WARNING! Although the default key has this ID it does not verify this commit! This commit is SUSPICIOUS."
2017-05-18 09:54:24 -05:00
[units]
2022-01-04 22:37:00 -05:00
unit = Unit
2018-04-19 09:24:31 -05: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 03:42:47 -05:00
[packages]
title = Packages
desc = Manage repository packages.
empty = There are no packages yet.
2023-05-01 02:17:27 -05: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 06:58:21 -05: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 03:47:26 -05: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 03:42:47 -05:00
filter.type = Type
filter.type.all = All
filter.no_result = Your filter produced no results.
filter.container.tagged = Tagged
filter.container.untagged = Untagged
published_by = Published %[1]s by <a href="%[2]s">%[3]s</a>
published_by_in = Published %[1]s by <a href="%[2]s">%[3]s</a> in <a href="%[4]s"><strong>%[5]s</strong></a>
installation = Installation
about = About this package
requirements = Requirements
dependencies = Dependencies
keywords = Keywords
details = Details
details.author = Author
details.project_site = Project Site
2023-02-05 20:49:21 -05:00
details.repository_site = Repository Site
details.documentation_site = Documentation Site
2022-03-30 03:42:47 -05:00
details.license = License
assets = Assets
versions = Versions
versions.view_all = View all
dependency.id = ID
dependency.version = Version
2023-05-12 12:27:50 -05: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 05:12:31 -05: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-05 20:49:21 -05: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 03:42:47 -05: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 13:30:39 -05: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 03:42:47 -05:00
container.details.type = Image Type
container.details.platform = Platform
container.pull = Pull the image from the command line:
2022-09-14 15:45:13 -05:00
container.digest = Digest:
2022-03-30 03:42:47 -05:00
container.multi_arch = OS / Arch
container.layers = Image Layers
container.labels = Labels
container.labels.key = Key
container.labels.value = Value
2023-05-21 21:57:49 -05: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 11:31:35 -05: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 03:42:47 -05:00
generic.download = Download package from the command line:
2023-05-14 10:38:40 -05:00
go.install = Install the package from the command line:
2022-04-19 11:55:35 -05:00
helm.registry = Setup this registry from the command line:
helm.install = To install the package, run the following command:
2022-03-30 03:42:47 -05: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
npm.dependencies.peer = Peer Dependencies
npm.dependencies.optional = Optional Dependencies
npm.details.tag = Tag
2022-08-07 05:09:54 -05:00
pub.install = To install the package using Dart, run the following command:
2022-03-30 03:42:47 -05:00
pypi.requires = Requires Python
pypi.install = To install the package using pip, run the following command:
2023-05-05 15:33:37 -05:00
rpm.registry = Setup this registry from the command line:
2023-07-20 10:37:31 -05:00
rpm.distros.redhat = on RedHat based distributions
rpm.distros.suse = on SUSE based distributions
2023-05-05 15:33:37 -05:00
rpm.install = To install the package, run the following command:
2024-01-19 06:37:10 -05:00
rpm.repository = Repository Info
rpm.repository.architectures = Architectures
rpm.repository.multiple_groups = This package is available in multiple groups.
2022-03-30 03:42:47 -05: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 15:28:39 -05: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 02:04:45 -05:00
vagrant.install = To add a Vagrant box, run the following command:
2022-03-30 03:42:47 -05: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 05:54:40 -05:00
settings.link.success = Repository link was successfully updated.
2022-03-30 03:42:47 -05: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 14:17:05 -05:00
settings.delete.error = Failed to delete the package.
2023-02-05 05:12:31 -05:00
owner.settings.cargo.title = Cargo Registry Index
owner.settings.cargo.initialize = Initialize Index
2023-08-08 10:25:05 -05: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 05:12:31 -05:00
owner.settings.cargo.initialize.error = Failed to initialize Cargo index: %v
owner.settings.cargo.initialize.success = The Cargo index was successfully created.
owner.settings.cargo.rebuild = Rebuild Index
2023-08-08 10:25:05 -05:00
owner.settings.cargo.rebuild.description = Rebuilding can be useful if the index is not synchronized with the stored Cargo packages.
2023-02-05 05:12:31 -05:00
owner.settings.cargo.rebuild.error = Failed to rebuild Cargo index: %v
owner.settings.cargo.rebuild.success = The Cargo index was successfully rebuild.
2022-11-20 09:08:38 -05:00
owner.settings.cleanuprules.title = Manage Cleanup Rules
owner.settings.cleanuprules.add = Add Cleanup Rule
owner.settings.cleanuprules.edit = Edit Cleanup Rule
2023-08-08 10:25:05 -05:00
owner.settings.cleanuprules.none = No cleanup rules available. Please consult the documentation.
2022-11-20 09:08:38 -05:00
owner.settings.cleanuprules.preview = Cleanup Rule Preview
owner.settings.cleanuprules.preview.overview = %d packages are scheduled to be removed.
owner.settings.cleanuprules.preview.none = Cleanup rule does not match any packages.
owner.settings.cleanuprules.enabled = Enabled
owner.settings.cleanuprules.pattern_full_match = Apply pattern to full package name
owner.settings.cleanuprules.keep.title = Versions that match these rules are kept, even if they match a removal rule below.
owner.settings.cleanuprules.keep.count = Keep the most recent
owner.settings.cleanuprules.keep.count.1 = 1 version per package
owner.settings.cleanuprules.keep.count.n = %d versions per package
owner.settings.cleanuprules.keep.pattern = Keep versions matching
owner.settings.cleanuprules.keep.pattern.container = The <code>latest</code> version is always kept for Container packages.
owner.settings.cleanuprules.remove.title = Versions that match these rules are removed, unless a rule above says to keep them.
owner.settings.cleanuprules.remove.days = Remove versions older than
owner.settings.cleanuprules.remove.pattern = Remove versions matching
owner.settings.cleanuprules.success.update = Cleanup rule has been updated.
owner.settings.cleanuprules.success.delete = Cleanup rule has been deleted.
2023-02-05 20:49:21 -05:00
owner.settings.chef.title = Chef Registry
owner.settings.chef.keypair = Generate key pair
2023-08-08 10:25:05 -05: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 04:07:13 -05: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-17 17:04:26 -05:00
creation.success = The secret "%s" has been added.
2022-12-20 04:07:13 -05:00
creation.failed = Failed to add secret.
deletion = Remove secret
2023-02-01 07:53:04 -05:00
deletion.description = Removing a secret is permanent and cannot be undone. Continue?
2022-12-20 04:07:13 -05:00
deletion.success = The secret has been removed.
deletion.failed = Failed to remove secret.
2023-04-27 19:08:47 -05:00
management = Secrets Management
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
[actions]
actions = Actions
unit.desc = Manage actions
status.unknown = "Unknown"
status.waiting = "Waiting"
status.running = "Running"
status.success = "Success"
status.failure = "Failure"
2023-08-08 10:25:05 -05:00
status.cancelled = "Canceled"
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
status.skipped = "Skipped"
status.blocked = "Blocked"
runners = Runners
runners.runner_manage_panel = Runners Management
runners.new = Create new Runner
runners.new_notice = How to start a runner
runners.status = Status
runners.id = ID
runners.name = Name
runners.owner_type = Type
runners.description = Description
runners.labels = Labels
runners.last_online = Last Online Time
runners.runner_title = Runner
runners.task_list = Recent tasks on this runner
2023-06-13 09:28:31 -05: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-30 20:45:19 -05:00
runners.task_list.run = Run
runners.task_list.status = Status
runners.task_list.repository = Repository
runners.task_list.commit = Commit
runners.task_list.done_at = Done At
runners.edit_runner = Edit Runner
runners.update_runner = Update Changes
runners.update_runner_success = Runner updated successfully
runners.update_runner_failed = Failed to update runner
runners.delete_runner = Delete this runner
runners.delete_runner_success = Runner deleted successfully
runners.delete_runner_failed = Failed to delete runner
runners.delete_runner_header = Confirm to delete this runner
runners.delete_runner_notice = If a task is running on this runner, it will be terminated and mark as failed. It may break building workflow.
runners.none = No runners available
runners.status.unspecified = Unknown
runners.status.idle = Idle
runners.status.active = Active
runners.status.offline = Offline
2023-03-19 21:19:40 -05:00
runners.version = Version
2023-09-24 13:12:21 -05:00
runners.reset_registration_token = Reset registration token
2023-03-28 20:20:48 -05: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-30 20:45:19 -05:00
runs.all_workflows = All Workflows
runs.commit = Commit
2023-09-08 10:01:19 -05:00
runs.scheduled = Scheduled
2023-07-04 04:59:47 -05:00
runs.pushed_by = pushed by
2023-03-14 02:27:03 -05:00
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
2023-12-18 11:06:19 -05:00
runs.no_matching_online_runner_helper = No matching online runner with label: %s
2023-06-20 23:25:14 -05: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 03:27:33 -05:00
runs.no_workflows = There are no workflows yet.
2024-01-21 12:25:58 -05: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-20 23:25:14 -05:00
runs.no_runs = The workflow has no runs yet.
2023-11-20 22:00:59 -05:00
runs.empty_commit_message = (empty commit message)
2023-02-24 02:58:49 -05:00
2023-08-14 10:14:30 -05:00
workflow.disable = Disable Workflow
workflow.disable_success = Workflow '%s' disabled successfully.
workflow.enable = Enable Workflow
workflow.enable_success = Workflow '%s' enabled successfully.
2023-08-21 21:30:02 -05:00
workflow.disabled = Workflow is disabled.
2023-08-14 10:14:30 -05:00
2023-02-24 02:58:49 -05:00
need_approval_desc = Need approval to run workflows for fork pull request.
2023-04-21 16:15:17 -05:00
2023-06-20 17:54:15 -05:00
variables = Variables
variables.management = Variables Management
variables.creation = Add Variable
variables.none = There are no variables yet.
variables.deletion = Remove variable
variables.deletion.description = Removing a variable is permanent and cannot be undone. Continue?
variables.description = Variables will be passed to certain actions and cannot be read otherwise.
2024-01-03 05:43:38 -05:00
variables.id_not_exist = Variable with ID %d does not exist.
2023-06-20 17:54:15 -05: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 16:15:17 -05:00
[projects]
type-1.display_name = Individual Project
type-2.display_name = Repository Project
type-3.display_name = Organization Project
2023-08-06 14:52:34 -05:00
[git.filemode]
changed_filemode = %[1]s → %[2]s
2023-10-22 06:59:31 -05:00
; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
2023-08-06 14:52:34 -05:00
directory = Directory
normal_file = Normal file
executable_file = Executable file
symbolic_link = Symbolic link
submodule = Submodule