From 2343b9bd09cda3e474b36842fae419f9fe32b134 Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Sat, 17 Dec 2022 00:20:38 -1000 Subject: [PATCH 01/36] [BRANDING] add Forgejo logo (cherry picked from commit f42622c7d5a28859f535e0d86ece06101baad1ef) (cherry picked from commit a39e7f2a79f6527d45439f21bd88378264160c3a) (cherry picked from commit afa2a31bb99c0fd9cd25c3c0279e6c49695b1900) (cherry picked from commit 276e8856e594ad7e73414382d34fdf0278cbca6a) (cherry picked from commit 68e3bd469f2e8190db70d4e1564fb46d01feb5f4) (cherry picked from commit af124b9ccbb0b699ea5d1bf1530613cb9a96f205) (cherry picked from commit b89ab4874d403c784c92e579f4f6a854621c0078) (cherry picked from commit 0f2a2f0d0ff9851428d6899e307f3547d7651f87) (cherry picked from commit 80999363c73e4e01cbf9116491743c87baa952af) (cherry picked from commit f8880b5463aa1db047d89080d21e7a69979eb4a6) (cherry picked from commit 5f4cf4f6e143237c81da3e80875727cef4b76343) (cherry picked from commit b38e26bc1a8bb117f571672961a8445cfc02c953) (cherry picked from commit d839e0033244b63df16c8b548cc52106fc693629) (cherry picked from commit 32ffe2e4f12c16a44a759c906078d40731c1a0c7) (cherry picked from commit f1fd0504add78ae3fb5c710ab5a9ada20321afac) (cherry picked from commit 6d77ea4d60a193d9d4175c4943b34077228e5964) (cherry picked from commit 61a0a4a276303c3fd56f93fd109e3416cfdf7c60) (cherry picked from commit a90b4126fdd55feef43f45d1dc3e3400806a476b) (cherry picked from commit 9a20538fb4e88682e213a20813b77cc0f602fbfd) (cherry picked from commit ce0fc02f0fbaa45b146fed175ce68bd02c507f3e) (cherry picked from commit 541f7cb026f976d078ecb6da3a6c9e13cc4336f2) (cherry picked from commit d6d0c2ab78a14d7aac8d7b6b0d007149de2f7295) (cherry picked from commit 2c28f5ad2496cf30eb15d6caf9171b79e5017141) (cherry picked from commit 9571bddb3308e3c1f0383e60f972ca61a0a467b7) (cherry picked from commit c83ba08d01f149ecd52d983eec76bd60822c1ddd) (cherry picked from commit 30e7d567ede79c015d0d115d9a2d535e6c681cb9) (cherry picked from commit a8b8c3eba75511449dc97fa27b37db1076ce95f0) (cherry picked from commit 8e053e1ade4710ade3b6e4bc6aa04fe9281243d7) (cherry picked from commit 9e3b0f7520a56e5eb22cd0e33e231ea9063f0e1f) --- README.md | 2 +- assets/favicon.svg | 56 ++++++++++++------------- assets/logo.svg | 56 ++++++++++++------------- public/assets/img/apple-touch-icon.png | Bin 3162 -> 2709 bytes public/assets/img/avatar_default.png | Bin 4889 -> 3189 bytes public/assets/img/favicon.png | Bin 4351 -> 2968 bytes public/assets/img/favicon.svg | 2 +- public/assets/img/forgejo.svg | 1 + public/assets/img/gitea-original.svg | 1 + public/assets/img/gitea.svg | 2 +- public/assets/img/logo.png | Bin 14354 -> 6747 bytes public/assets/img/logo.svg | 2 +- 12 files changed, 58 insertions(+), 64 deletions(-) create mode 100644 public/assets/img/forgejo.svg create mode 100644 public/assets/img/gitea-original.svg diff --git a/README.md b/README.md index e223979d42..2c0a3ef3ea 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- +

Welcome to Forgejo

diff --git a/assets/favicon.svg b/assets/favicon.svg index 9df6b83b56..bcacdc0200 100644 --- a/assets/favicon.svg +++ b/assets/favicon.svg @@ -1,31 +1,27 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/assets/logo.svg b/assets/logo.svg index 9df6b83b56..bcacdc0200 100644 --- a/assets/logo.svg +++ b/assets/logo.svg @@ -1,31 +1,27 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/public/assets/img/apple-touch-icon.png b/public/assets/img/apple-touch-icon.png index 0c803d35dc34c01281a52c460cee9e65e29ad60f..1f6c1544f80bcd94adfa05ef4683537266de020c 100644 GIT binary patch delta 2702 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 diff --git a/public/assets/img/avatar_default.png b/public/assets/img/avatar_default.png index 129967112d13ef602f6ec42f28b264c4666be2e0..f335e51dad13df7ceb19701a71f8efe192173286 100644 GIT binary patch literal 3189 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 diff --git a/public/assets/img/favicon.png b/public/assets/img/favicon.png index dcd4edb1a30bf93049fd24c31317e3344e08d95b..eda0347effabb1b681c3816cfd3580b82227c063 100644 GIT binary patch literal 2968 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 diff --git a/public/assets/img/favicon.svg b/public/assets/img/favicon.svg index afeeacb77c..804b05e284 100644 --- a/public/assets/img/favicon.svg +++ b/public/assets/img/favicon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/assets/img/forgejo.svg b/public/assets/img/forgejo.svg new file mode 100644 index 0000000000..804b05e284 --- /dev/null +++ b/public/assets/img/forgejo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/img/gitea-original.svg b/public/assets/img/gitea-original.svg new file mode 100644 index 0000000000..dca9b4f4db --- /dev/null +++ b/public/assets/img/gitea-original.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/img/gitea.svg b/public/assets/img/gitea.svg index dca9b4f4db..804b05e284 100644 --- a/public/assets/img/gitea.svg +++ b/public/assets/img/gitea.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/assets/img/logo.png b/public/assets/img/logo.png index c7971f91835e889ed15a0e5252734400c5c65cae..1b2d9b4023427395448912e39a9883c279dc1618 100644 GIT binary patch literal 6747 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 literal 14354 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 aFyzSH&MYj4=hGek4$4X?Nmhy*ef>Wah!K+j diff --git a/public/assets/img/logo.svg b/public/assets/img/logo.svg index afeeacb77c..804b05e284 100644 --- a/public/assets/img/logo.svg +++ b/public/assets/img/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From c8bb51718360d1e90716c5c6253c55a6d7817a7e Mon Sep 17 00:00:00 2001 From: Gusted Date: Sun, 18 Dec 2022 19:03:34 +0000 Subject: [PATCH 02/36] [BRANDING] Rebrand systemd service (#137) - We can rebrand this quite safely, as only new installations would likely look into this file and configure the correct folders(to use forgejo instead of gitea). Co-authored-by: Gusted Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/137 (cherry picked from commit fa78e52b5d25556b4a4313c4ac78edf6306c5bbe) (cherry picked from commit e36d649989a69a1761c3d7cc709f97f80c8d378a) (cherry picked from commit 37e15a2f4108c4b7e082a69fb8cb77068fa6dc15) (cherry picked from commit a09a4b3ce0b6f63ac44bf4ea0f4ba275a9915598) (cherry picked from commit 3096b37c950db77296f22d16d64efe3737246a4b) (cherry picked from commit 187ad96c94b7fbc261c88a4ff513066acc562642) (cherry picked from commit e15eb31c6e6310d14175cc270707d7cbfb95b819) (cherry picked from commit e276abe3410cef5fe63bf05c6f089ed4a3da49dc) (cherry picked from commit 31223db5e3290ccf67a504db1937e5adb903b204) (cherry picked from commit 8ebffe0b71db27b40f2049ca77878748e6756ec1) (cherry picked from commit 1d198363469814584c50e4717a7f96cafb06aa46) (cherry picked from commit baaf749ce07f978466d6c397c1ed6bb6a1c75330) Conflicts: contrib/systemd/forgejo.service (cherry picked from commit c309b1a1f4fa2942218352a6ec3edbf39efb9a11) (cherry picked from commit d6f57409dacf2645cd19bcd8a79219a9a8c1bffe) (cherry picked from commit c6e665b0380f1d70c8c378b65c369a85eab9664c) (cherry picked from commit 8764e26c434ec8027acaaabdf65e3122e5965178) (cherry picked from commit a0560e454b4d5d7dac357a95dbaeb2b187a173ff) (cherry picked from commit e074e83094866421f94cb3cef912794a31b88c82) (cherry picked from commit 605b84bc779d41deac03595c8ddb7fa12b2b24e8) (cherry picked from commit 35b233202058e219dec5acfc72ff0d7085a41318) (cherry picked from commit b9c396f29566ec064a7c4031d4f766a25594eba4) (cherry picked from commit 83a7e91bad1d99092c8c553ce740c65256901abb) (cherry picked from commit 3794ad271a40bb4212cb14e24a6100b539d3a776) (cherry picked from commit 818451287d166658f6ce18892a6ed9811324aa67) (cherry picked from commit ec9bc9e6417fd7df3e636c231fb80a3442972542) (cherry picked from commit 8434efaed8637351f6fe53c01dd4fb3edf09fce1) (cherry picked from commit 3b1a4b7f389e7548f94d2d1b742de086aa77bfc6) (cherry picked from commit c186b5a3e51c24f795967dc4811d89ed0b841b24) (cherry picked from commit e35d92de1f37bea0a593093678f093845955e3fc) --- .../{gitea.service => forgejo.service} | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) rename contrib/systemd/{gitea.service => forgejo.service} (59%) diff --git a/contrib/systemd/gitea.service b/contrib/systemd/forgejo.service similarity index 59% rename from contrib/systemd/gitea.service rename to contrib/systemd/forgejo.service index c097fb0d17..0b8c8cccbf 100644 --- a/contrib/systemd/gitea.service +++ b/contrib/systemd/forgejo.service @@ -1,5 +1,5 @@ [Unit] -Description=Gitea (Git with a cup of tea) +Description=Forgejo (Beyond coding. We forge.) After=syslog.target After=network.target ### @@ -25,21 +25,21 @@ After=network.target # If using socket activation for main http/s ### # -#After=gitea.main.socket -#Requires=gitea.main.socket +#After=forgejo.main.socket +#Requires=forgejo.main.socket # ### -# (You can also provide gitea an http fallback and/or ssh socket too) +# (You can also provide forgejo an http fallback and/or ssh socket too) # -# An example of /etc/systemd/system/gitea.main.socket +# An example of /etc/systemd/system/forgejo.main.socket ### ## ## [Unit] -## Description=Gitea Web Socket -## PartOf=gitea.service +## Description=Forgejo Web Socket +## PartOf=forgejo.service ## ## [Socket] -## Service=gitea.service +## Service=forgejo.service ## ListenStream= ## NoDelay=true ## @@ -55,13 +55,13 @@ RestartSec=2s Type=notify User=git Group=git -WorkingDirectory=/var/lib/gitea/ -# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file -# (manually creating /run/gitea doesn't work, because it would not persist across reboots) -#RuntimeDirectory=gitea -ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini +WorkingDirectory=/var/lib/forgejo/ +# If using Unix socket: tells systemd to create the /run/forgejo folder, which will contain the forgejo.sock file +# (manually creating /run/forgejo doesn't work, because it would not persist across reboots) +#RuntimeDirectory=forgejo +ExecStart=/usr/local/bin/forgejo web --config /etc/forgejo/app.ini Restart=always -Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea +Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/forgejo WatchdogSec=30s # If you install Git to directory prefix other than default PATH (which happens # for example if you install other versions of Git side-to-side with @@ -69,15 +69,15 @@ WatchdogSec=30s # Don't forget to place git-lfs binary on the PATH below if you want to enable # Git LFS support #Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin -# If you want to bind Gitea to a port below 1024, uncomment -# the two values below, or use socket activation to pass Gitea its ports as above +# If you want to bind Forgejo to a port below 1024, uncomment +# the two values below, or use socket activation to pass Forgejo its ports as above ### #CapabilityBoundingSet=CAP_NET_BIND_SERVICE #AmbientCapabilities=CAP_NET_BIND_SERVICE ### # In some cases, when using CapabilityBoundingSet and AmbientCapabilities option, you may want to -# set the following value to false to allow capabilities to be applied on gitea process. The following -# value if set to true sandboxes gitea service and prevent any processes from running with privileges +# set the following value to false to allow capabilities to be applied on Forgejo process. The following +# value if set to true sandboxes Forgejo service and prevent any processes from running with privileges # in the host user namespace. ### #PrivateUsers=false From 9651bcf9c6c81451b6e2fdb736f3f6c1e133afe1 Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Sun, 18 Dec 2022 23:03:28 -1000 Subject: [PATCH 03/36] [BRANDING] Rebrand footer "powered by" links (cherry picked from commit 8b9237e47e067db4cb8b1d477865d75b258bee1e) (cherry picked from commit 47e5543f33a9dafac5517cb5cb29d0fe6d266e2a) (cherry picked from commit 456abff8c0567168b1a6c0d02d6830404d1b0dd3) (cherry picked from commit 2d2588187ec20cb2f552cd3ee2b04a541909dc5c) (cherry picked from commit a81e4e2588af2d1e9db253ca51649451d8dd94cf) (cherry picked from commit 70c4ee8fbad69efcc02493ab8e1c692573ac0409) (cherry picked from commit f12b0577e89ae223dc239c7ace5c692d30cd0e9b) (cherry picked from commit 025e6e1974c8066c27e918020a6094fc8372f521) (cherry picked from commit e051684c83e369177d22a77bff46e82998495267) (cherry picked from commit ee370f3f3cf5ec81e170fc16c8ef982b47c99797) (cherry picked from commit a1b53a8b883559a31b16a15a383ac5fe25a62189) (cherry picked from commit e01158af9b037cff4248b0b577505023c9564b7e) (cherry picked from commit c9f6b6c8a18b39e804e8464dfc80178af3efdada) (cherry picked from commit 6abaa468d5cc1ae7f59b9026f4221b15911f3ba1) (cherry picked from commit d039148bc83d6957435f2d3fd00b5f18c9af99e2) (cherry picked from commit d3aadcac8bf4e136bb16e86702831cbcb6e6692f) (cherry picked from commit e739f46aaef7d162bf42f152b665349e25aadc1b) (cherry picked from commit 228671e72353a1366488cd28406478ee866f823f) (cherry picked from commit 8965f9bdf248dfb80b80269d565ff17e8437a411) (cherry picked from commit 5e97896da347dcfb592eb0bcef172652f43fed90) (cherry picked from commit df8bdce12a1ef0d4578fca2b55d30c9f981feabb) (cherry picked from commit 33ecf86e423c4481cb34de4a2c6d743602631891) (cherry picked from commit 038ac822db5be6ad65f09050bb60cb0f2afffe66) (cherry picked from commit 6decbafd3a3d53f9dc9ae58da302968b31aca32a) (cherry picked from commit ad2b719be5629bf4ed544666a294a2f5c040da92) (cherry picked from commit d9b2f11a7b778b71f06f0256ccba188dee445f79) (cherry picked from commit 102033346275114f8de5f682749bda125c15a769) (cherry picked from commit c1279c7d45fe91cae6e88c143280601e9b866bee) (cherry picked from commit a0dfccbba42b498aa4024956eedcb3de12ed2db5) Conflicts: templates/base/footer_content.tmpl https://codeberg.org/forgejo/forgejo/pulls/1420 --- templates/base/footer_content.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/base/footer_content.tmpl b/templates/base/footer_content.tmpl index ad666152a0..212d01fff4 100644 --- a/templates/base/footer_content.tmpl +++ b/templates/base/footer_content.tmpl @@ -1,6 +1,6 @@
- + {{template "base/footer" .}} diff --git a/templates/post-install.tmpl b/templates/post-install.tmpl index 5048b910d8..d907fa1f87 100644 --- a/templates/post-install.tmpl +++ b/templates/post-install.tmpl @@ -7,7 +7,7 @@
- {{.locale.Tr + {{.locale.Tr
diff --git a/templates/repo/migrate/migrating.tmpl b/templates/repo/migrate/migrating.tmpl index d1bdc5a90f..1859bd2fc6 100644 --- a/templates/repo/migrate/migrating.tmpl +++ b/templates/repo/migrate/migrating.tmpl @@ -9,12 +9,12 @@
- +
- + {{svg "octicon-git-pull-request-closed" 256 "ui red icon"}}
From e3beb523007fe87951a4e901596aaef965de0771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Dachary?= Date: Sun, 25 Dec 2022 16:25:25 +0100 Subject: [PATCH 07/36] [BRANDING] container images: set APP_NAME (cherry picked from commit 12d7bc447edb272327200389c73bb04bb5fccc14) (cherry picked from commit 1335b17fc35b8b873b94435fddcc23c5cdf0117e) (cherry picked from commit 0d7da06c47ac3a7278602871b95234f823e11f1d) (cherry picked from commit 095c1ab679bce39dbaa89e8a86eaeab8a9b823ad) (cherry picked from commit 2220f00d09e2692d10e0d07f1e8ae2232a636a7d) (cherry picked from commit f0be8bbdbfb758fd13f2f9325358ad292f6c030c) (cherry picked from commit 15188180a15adb58bbde418018612561b68b6927) (cherry picked from commit 96c471d7d36a24824835b254bf785689f898d715) (cherry picked from commit 709052f1e79bbb0ee417f8001c9c0dbd03e78791) (cherry picked from commit 98cd2f5deee05ae9be67250c85fc17e31eaaf28a) (cherry picked from commit a1014654b13e338eaf35cd96d6115fe88459480f) (cherry picked from commit a16f4dc51dce3f9d22cf899186fc61931a82f35e) (cherry picked from commit abbed33d1699daa99620acdec5322846f562cb8d) (cherry picked from commit 4871447def0794027227280059bdfa29cacc0a23) (cherry picked from commit ea1218b237017fa3ca3e5204afd56a18e8336650) (cherry picked from commit 6dd67d60de567e70a36524db940b8e88420251c0) (cherry picked from commit 71761f04afff6d1552c5604fcf7f9b5a27cf01ba) (cherry picked from commit 7cb28a3a06b1b665a6ac9d2687c79ef5ceed0dba) (cherry picked from commit d116336cb5a2df68260fbec42b606fa35c27ba30) (cherry picked from commit 4138a698b2744f504cc6e3590ab8b14753cb719d) (cherry picked from commit 38c572bc1928fc138503a88b66aa8e6d1c06aa6e) (cherry picked from commit 94c759b47f93dde23473d45eff2309dce5055d8a) (cherry picked from commit e1f52bf1d5087df6c7905afc08a7cbada6854f7f) (cherry picked from commit 8bc7000cfa7d0caa87f99c07543f36925fbe984b) (cherry picked from commit fa60007c3464a8d7fc278df1f6d51fb40c6ed130) (cherry picked from commit 0328db39c9a9359046aea0a422002a3072509345) (cherry picked from commit d028010b64e9d12dc3698fadd8b6f017ea2762ef) (cherry picked from commit 0283c920f01e8ec599613f8e28fa39157f698e4c) (cherry picked from commit f5bdf3e11f93c508d03ce38d66550aadeb41abdd) --- docker/root/etc/s6/gitea/setup | 2 +- docker/rootless/usr/local/bin/docker-setup.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/root/etc/s6/gitea/setup b/docker/root/etc/s6/gitea/setup index b801ef4e03..f8d76273c7 100755 --- a/docker/root/etc/s6/gitea/setup +++ b/docker/root/etc/s6/gitea/setup @@ -32,7 +32,7 @@ if [ ! -f ${GITEA_CUSTOM}/conf/app.ini ]; then fi # Substitute the environment variables in the template - APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} \ + APP_NAME=${APP_NAME:-"Forgejo: Beyond coding. We forge."} \ RUN_MODE=${RUN_MODE:-"prod"} \ DOMAIN=${DOMAIN:-"localhost"} \ SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} \ diff --git a/docker/rootless/usr/local/bin/docker-setup.sh b/docker/rootless/usr/local/bin/docker-setup.sh index feab02a379..b480685863 100755 --- a/docker/rootless/usr/local/bin/docker-setup.sh +++ b/docker/rootless/usr/local/bin/docker-setup.sh @@ -26,7 +26,7 @@ if [ ! -f ${GITEA_APP_INI} ]; then fi # Substitute the environment variables in the template - APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} \ + APP_NAME=${APP_NAME:-"Forgejo: Beyond coding. We forge."} \ RUN_MODE=${RUN_MODE:-"prod"} \ RUN_USER=${USER:-"git"} \ SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} \ From 58f11e7310dfec6fc6f195aa36e465c846a431c5 Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Sun, 25 Dec 2022 01:44:04 -1000 Subject: [PATCH 08/36] [BRANDING] Add Forgejo light, dark, and auto themes (cherry picked from commit faab0c670e22588bc643d71b650560c2ccca2c8e) (cherry picked from commit b6d59493c7fa0bfa62095abb99c5c5a29bcf1659) (cherry picked from commit 837da0c1f41b40853eb4aebc40af16433cf7a9c2) (cherry picked from commit 71ad245e1d6f7f5b002c1c5e9831e872d157f906) (cherry picked from commit 85a7032f1b1c0d80e3d3960e9d902e9e66e687a5) Conflicts: web_src/css/themes/theme-forgejo-auto.less web_src/css/themes/theme-forgejo-dark.less web_src/css/themes/theme-forgejo-light.less web_src/less/_home.less see https://codeberg.org/forgejo/forgejo/pulls/552 (cherry picked from commit 0c2c131bb06024fca7d5c8ef6a2696d5f6aa4a1b) [BRANDING] Add Forgejo light, dark, and auto themes: fix import Closes: https://codeberg.org/forgejo/forgejo/issues/562 (cherry picked from commit 2b0dc1f80ff18d1c94df74c77a80e3651e7cb2ed) (cherry picked from commit 494ad6a3b7cd3328c835e6c7c76a55a77d47a60d) (cherry picked from commit 6940fc22c4917e86b25cf3c6c2ead9057ae726d4) (cherry picked from commit bd6f00656c457339ef3d08612911594358a15f14) (cherry picked from commit ebb506a1247751b1182348b281089dc00a65c741) (cherry picked from commit 43d72d37811c8b9d00b1d046341401643f66b289) (cherry picked from commit 1a87adca018545f6d2db0dad9e5d7cb59f6a97b8) (cherry picked from commit 0704c410b4e8a0b610e82f6ebe9209fb485ee722) (cherry picked from commit 9039b47c160e7fce2bd75167a0358eb7e7458e2d) (cherry picked from commit e32bb7892481a80156163dbf5063da0c8ead27d4) (cherry picked from commit 053ad84f91f994f96f4d9d037ff37e25b468c424) (cherry picked from commit a35f1b6da7a061a3d0717548d8f4e0972e7bb0ec) (cherry picked from commit 8cb94c01d5bcd453938924ce6c6a6804ce9ec255) [BRANDING] fix invisible label in branch protection settings (cherry picked from commit 23e5d457219a68f49938395b5532231ce4ac0022) (cherry picked from commit f02e4582e51a6a2eba93ddd599b7ea3679388e55) [BRANDING] Fix commit label for Forgejo Dark theme (#843) - Define the `--color-label-text` variable with a light color, which is currently used for commit's SHA Co-authored-by: Gusted Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/843 (cherry picked from commit 74c186a3806e37fcca8087ad79ba7c1f8e0d559e) (cherry picked from commit 7e185c5ca5298fad12fcc78b504d96163e71ad71) [BRANDING] Add Forgejo light, dark, and auto themes (squash) variables Adapt to b6bcb79987ae3c9095fe2b2c7c0a3e4b42cdebba Improve notification icon and navbar Refs: https://codeberg.org/forgejo/forgejo/issues/893 [BRANDING] Add Forgejo light variables Updates the Forgejo light theme with the changes in b6bcb7998 These are the same changes as made in 2574dbcff to the dark theme Refs: forgejo/forgejo#893 (cherry picked from commit 9e99fe4f9ec79aebbf34490e12b0acf3097dd5c7) (cherry picked from commit acbb98bd912fc3a28d464eaef1d756f54fd87e8e) (cherry picked from commit c80245ed87d09067d880d6f91c3edaa35e4346de) [BRANDING] fix code highlight color in Forgejo themes (cherry picked from commit ffc49a4e992162a480d5056e1211fc7496e4aa06) (cherry picked from commit c5f45a941e3dd8882164a88b2653407fedf6dea0) (cherry picked from commit eee5427c9d581b8e2cd254d4a15508200622aef0) (cherry picked from commit 89be50ca27a7ad33f109bbc3549220b37875206a) (cherry picked from commit 74e4776ef504870d9831818ee141b12afd5f46ab) (cherry picked from commit 6c4e07a6a718c375ee2d3975ea7bb01d382d1d90) [BRANDING] more accessible text selection color in Forgejo themes (cherry picked from commit 7407605ffdedef8fa320477a3bd7efa06df263e2) (cherry picked from commit 5aab3872cc5bd267bc16bfbcedef66fd03616488) (cherry picked from commit 1ec77d8bd00bc6914d0926d98d503debe41cc6fd) (cherry picked from commit 964c89fce7bb5b4be06d4cd1cac247426061ec2e) (cherry picked from commit 8a8023a4414e27d28f4503e2d2fb12afc4b7aac6) (cherry picked from commit 1c9ffeadf5ce419d576afc89faff9fdd6c1b5478) [BRANDING] Fix navigation hover color (squash) - For items in the navigation bar, use different background colours for hover. - Regression since https://github.com/go-gitea/gitea/pull/25343 (cherry picked from commit 8f3f4b219c449011a810c6a9f946fe216d841778) (cherry picked from commit edfb0eef06e798009389b12b2c0a417c4c845887) (cherry picked from commit a6367fa48a2d10465b5d00aa6fb3db886f3c238f) (cherry picked from commit d5697abe4257390a687102d0964fee15f9214b73) (cherry picked from commit eaf537091997650d9370457b7eb53205a552d267) --- modules/setting/ui.go | 4 +- web_src/css/home.css | 4 +- web_src/css/themes/theme-forgejo-auto.css | 2 + web_src/css/themes/theme-forgejo-dark.css | 285 +++++++++++++++++++++ web_src/css/themes/theme-forgejo-light.css | 255 ++++++++++++++++++ 5 files changed, 546 insertions(+), 4 deletions(-) create mode 100644 web_src/css/themes/theme-forgejo-auto.css create mode 100644 web_src/css/themes/theme-forgejo-dark.css create mode 100644 web_src/css/themes/theme-forgejo-light.css diff --git a/modules/setting/ui.go b/modules/setting/ui.go index 4116da1166..c095606f3a 100644 --- a/modules/setting/ui.go +++ b/modules/setting/ui.go @@ -76,8 +76,8 @@ var UI = struct { CodeCommentLines: 4, ReactionMaxUserNum: 10, MaxDisplayFileSize: 8388608, - DefaultTheme: `auto`, - Themes: []string{`auto`, `gitea`, `arc-green`}, + DefaultTheme: `forgejo-auto`, + Themes: []string{`forgejo-auto`, `forgejo-light`, `forgejo-dark`, `auto`, `gitea`, `arc-green`}, Reactions: []string{`+1`, `-1`, `laugh`, `hooray`, `confused`, `heart`, `rocket`, `eyes`}, CustomEmojis: []string{`git`, `gitea`, `codeberg`, `gitlab`, `github`, `gogs`, `forgejo`}, CustomEmojisMap: map[string]string{"git": ":git:", "gitea": ":gitea:", "codeberg": ":codeberg:", "gitlab": ":gitlab:", "github": ":github:", "gogs": ":gogs:", "forgejo": ":forgejo:"}, diff --git a/web_src/css/home.css b/web_src/css/home.css index 28992ef31f..22f1a2dc98 100644 --- a/web_src/css/home.css +++ b/web_src/css/home.css @@ -21,7 +21,7 @@ } .home .hero .svg { - color: var(--color-green); + color: var(--color-primary); height: 40px; width: 50px; vertical-align: bottom; @@ -40,7 +40,7 @@ } .home a { - color: var(--color-green); + color: var(--color-primary); } .page-footer { diff --git a/web_src/css/themes/theme-forgejo-auto.css b/web_src/css/themes/theme-forgejo-auto.css new file mode 100644 index 0000000000..ebf59942ea --- /dev/null +++ b/web_src/css/themes/theme-forgejo-auto.css @@ -0,0 +1,2 @@ +@import "theme-forgejo-light.css"; +@import "theme-forgejo-dark.css" (prefers-color-scheme: dark); diff --git a/web_src/css/themes/theme-forgejo-dark.css b/web_src/css/themes/theme-forgejo-dark.css new file mode 100644 index 0000000000..e3b031ed2e --- /dev/null +++ b/web_src/css/themes/theme-forgejo-dark.css @@ -0,0 +1,285 @@ +@import "../chroma/dark.css"; +@import "../codemirror/dark.css"; +:root { + --steel-900: #10161D; + --steel-850: #131A21; + --steel-800: #171E26; + --steel-750: #1D262F; + --steel-700: #242D38; + --steel-650: #2B3642; + --steel-600: #374351; + --steel-550: #445161; + --steel-500: #515F70; + --steel-450: #5F6E80; + --steel-400: #6D7D8F; + --steel-350: #7C8C9F; + --steel-300: #8C9CAF; + --steel-250: #9DADC0; + --steel-200: #AEBED0; + --steel-150: #C0CFE0; + --steel-100: #D2E0F0; + --is-dark-theme: true; + --color-primary: #fb923c; + --color-primary-contrast: #000; + --color-primary-dark-1: #fdba74; + --color-primary-dark-2: #fdba74; + --color-primary-dark-3: #fed7aa; + --color-primary-dark-4: #fed7aa; + --color-primary-dark-5: #ffedd5; + --color-primary-dark-6: #ffedd5; + --color-primary-dark-7: #fff7ed; + --color-primary-light-1: #f97316; + --color-primary-light-2: #ea580c; + --color-primary-light-3: #c2410c; + --color-primary-light-4: #9a3412; + --color-primary-light-5: #9a3412; + --color-primary-light-6: #7c2d12; + --color-primary-light-7: #7c2d12; + --color-primary-alpha-10: #ea580c19; + --color-primary-alpha-20: #ea580c33; + --color-primary-alpha-30: #ea580c4b; + --color-primary-alpha-40: #ea580c66; + --color-primary-alpha-50: #ea580c80; + --color-primary-alpha-60: #ea580c99; + --color-primary-alpha-70: #ea580cb3; + --color-primary-alpha-80: #ea580ccc; + --color-primary-alpha-90: #ea580ce1; + --color-secondary: var(--steel-700); + --color-secondary-dark-1: var(--steel-550); + --color-secondary-dark-2: var(--steel-500); + --color-secondary-dark-3: var(--steel-450); + --color-secondary-dark-4: var(--steel-400); + --color-secondary-dark-5: var(--steel-350); + --color-secondary-dark-6: var(--steel-300); + --color-secondary-dark-7: var(--steel-250); + --color-secondary-dark-8: var(--steel-200); + --color-secondary-dark-9: var(--steel-150); + --color-secondary-dark-10: var(--steel-100); + --color-secondary-dark-11: var(--steel-100); + --color-secondary-dark-12: var(--steel-100); + --color-secondary-dark-13: var(--steel-100); + --color-secondary-light-1: var(--steel-650); + --color-secondary-light-2: var(--steel-700); + --color-secondary-light-3: var(--steel-750); + --color-secondary-light-4: var(--steel-800); + --color-secondary-alpha-10: #2B364219; + --color-secondary-alpha-20: #2B364233; + --color-secondary-alpha-30: #2B36424b; + --color-secondary-alpha-40: #2B364266; + --color-secondary-alpha-50: #2B364280; + --color-secondary-alpha-60: #2B364299; + --color-secondary-alpha-70: #2B3642b3; + --color-secondary-alpha-80: #2B3642cc; + --color-secondary-alpha-90: #2B3642e1; + /* colors */ + --color-red: #b91c1c; + --color-orange: #ea580c; + --color-yellow: #ca8a04; + --color-olive: #91a313; + --color-green: #15803d; + --color-teal: #0d9488; + --color-blue: #2563eb; + --color-violet: #7c3aed; + --color-purple: #9333ea; + --color-pink: #db2777; + --color-brown: #a47252; + --color-grey: var(--steel-500); + --color-black: #111827; + /* light variants */ + --color-red-light: #dc2626; + --color-orange-light: #f97316; + --color-yellow-light: #eab308; + --color-olive-light: #839311; + --color-green-light: #16a34a; + --color-teal-light: #14b8a6; + --color-blue-light: #3b82f6; + --color-violet-light: #8b5cf6; + --color-purple-light: #a855f7; + --color-pink-light: #ec4899; + --color-brown-light: #94674a; + --color-grey-light: var(--steel-300); + --color-black-light: #1f2937; + /* other colors */ + --color-gold: #b1983b; + --color-white: #ffffff; + --color-diff-removed-word-bg: #783030; + --color-diff-added-word-bg: #255C39; + --color-diff-removed-row-bg: #432121; + --color-diff-moved-row-bg: #825718; + --color-diff-added-row-bg: #1B3625; + --color-diff-removed-row-border: #783030; + --color-diff-moved-row-border: #A67A1D; + --color-diff-added-row-border: #255C39; + --color-diff-inactive: var(--steel-650); + --color-error-border: #783030; + --color-error-bg: #5F2525; + --color-error-bg-active: #783030; + --color-error-bg-hover: #783030; + --color-error-text: #fef2f2; + --color-success-border: #1F6E3C; + --color-success-bg: #1D462C; + --color-success-text: #f0fdf4; + --color-warning-border: #A67A1D; + --color-warning-bg: #644821; + --color-warning-text: #fefce8; + --color-info-border: #2E50B0; + --color-info-bg: #2A396B; + --color-info-text: var(--steel-100); + --color-red-badge: #B91C1C; + --color-red-badge-bg: #B91C1C22; + --color-red-badge-hover-bg: #B91C1C44; + --color-green-badge: #16a34a; + --color-green-badge-bg: #16a34a22; + --color-green-badge-hover-bg: #16a34a44; + --color-yellow-badge: #ca8a04; + --color-yellow-badge-bg: #ca8a0422; + --color-yellow-badge-hover-bg: #ca8a0444; + --color-orange-badge: #ea580c; + --color-orange-badge-bg: #ea580c22; + --color-orange-badge-hover-bg: #ea580c44; + --color-git: #f05133; + /* target-based colors */ + --color-body: var(--steel-800); + --color-box-header: var(--steel-700); + --color-box-body: var(--steel-750); + --color-box-body-highlight: var(--steel-650); + --color-text-dark: #fff; + --color-text: var(--steel-100); + --color-text-light: var(--steel-150); + --color-text-light-1: var(--steel-150); + --color-text-light-2: var(--steel-200); + --color-text-light-3: var(--steel-200); + --color-footer: var(--steel-900); + --color-timeline: var(--steel-650); + --color-input-text: var(--steel-100); + --color-input-background: var(--steel-650); + --color-input-toggle-background: var(--steel-650); + --color-input-border: var(--steel-550); + --color-input-border-hover: var(--steel-450); + --color-header-wrapper: var(--steel-850); + --color-header-wrapper-transparent: #242D3800; + --color-light: #00000028; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #ffffff28; + --color-hover: var(--steel-600); + --color-active: var(--steel-650); + --color-menu: var(--steel-700); + --color-card: var(--steel-700); + --color-markup-table-row: #ffffff06; + --color-markup-code-block: var(--steel-800); + --color-button: var(--steel-600); + --color-code-bg: var(--steel-750); + --color-code-sidebar-bg: var(--steel-600); + --color-shadow: #00000060; + --color-secondary-bg: var(--steel-700); + --color-text-focus: #fff; + --color-expand-button: #3c404d; + --color-placeholder-text: var(--steel-450); + --color-editor-line-highlight: var(--steel-700); + --color-project-board-bg: var(--color-secondary-light-3); + --color-project-board-dark-label: var(--color-text-light-3); + --color-caret: var(--color-text); + /* should ideally be --color-text-dark, see #15651 */ + --color-reaction-bg: #ffffff12; + --color-reaction-active-bg: var(--color-primary-alpha-30); + --color-nav-bg: var(--steel-900); + --color-nav-hover-bg: var(--steel-600); + --color-label-active-bg: #4c525e; + --color-label-text: #fff; + --color-accent: var(--color-primary-light-1); + --color-small-accent: var(--color-primary-light-5); + --color-active-line: var(--color-primary-alpha-20); + accent-color: var(--color-accent); + color-scheme: dark; +} +/* invert emojis that are hard to read otherwise */ +.emoji[aria-label="check mark"], +.emoji[aria-label="currency exchange"], +.emoji[aria-label="TOP arrow"], +.emoji[aria-label="END arrow"], +.emoji[aria-label="ON! arrow"], +.emoji[aria-label="SOON arrow"], +.emoji[aria-label="heavy dollar sign"], +.emoji[aria-label="copyright"], +.emoji[aria-label="registered"], +.emoji[aria-label="trade mark"], +.emoji[aria-label="multiply"], +.emoji[aria-label="plus"], +.emoji[aria-label="minus"], +.emoji[aria-label="divide"], +.emoji[aria-label="curly loop"], +.emoji[aria-label="double curly loop"], +.emoji[aria-label="wavy dash"], +.emoji[aria-label="paw prints"], +.emoji[aria-label="musical note"], +.emoji[aria-label="musical notes"] { + filter: invert(100%) hue-rotate(180deg); +} +.following.bar.light { + border-bottom-color: #ffffff11 !important; +} +.text.green.svg { + color: #16a34a !important; +} +i.grey.icon.icon.icon.icon { + color: var(--steel-350) !important; +} +.ui.red.button, +.ui.negative.button { + background-color: #7f1d1d !important; + color: #fff !important; + border-color: var(--color-light-border) !important; +} +.ui.red.button:hover, +.ui.negative.button:hover { + background-color: #991b1b !important; +} +.ui.secondary.vertical.menu { + border-radius: 0.28571429rem !important; + overflow: hidden; +} +.ui.secondary.vertical.menu > .item { + border-radius: 0 !important; +} +.ui.basic.primary.button.item { + background-color: var(--color-active) !important; + color: var(--color-text) !important; + box-shadow: none !important; +} +.ui.red.label.notification_count, +.ui.primary.label, +.ui.primary.labels .label { + background-color: var(--color-primary-light-3) !important; +} +.repository.view.issue .comment-list .code-comment + .code-comment { + margin: 1.25rem 0 !important; + padding-top: 1.25rem !important; + border-top-color: var(--steel-650) !important; +} +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + background-color: rgba(0, 0, 0, 0.05) !important; +} +#review-box .review-comments-counter { + background-color: #00000088 !important; + color: #fff !important; + margin-left: 0.5em; +} +.ui.tabs .ui.primary.label, +.ui.menu .ui.primary.label { + background-color: rgba(192, 192, 255, 0.2) !important; + color: var(--color-text-dark) !important; +} +.ui.basic.yellow.label.pending-label { + background: var(--color-light) !important; +} +.ui.tertiary.button { + color: #fff9; +} +.ui.tertiary.button:hover { + color: #ccc; +} +::selection { + background: var(--steel-100) !important; + color: #000 !important; +} diff --git a/web_src/css/themes/theme-forgejo-light.css b/web_src/css/themes/theme-forgejo-light.css new file mode 100644 index 0000000000..7fc09a7994 --- /dev/null +++ b/web_src/css/themes/theme-forgejo-light.css @@ -0,0 +1,255 @@ +:root { + --steel-900: #10161D; + --steel-850: #131A21; + --steel-800: #171E26; + --steel-750: #1D262F; + --steel-700: #242D38; + --steel-650: #2B3642; + --steel-600: #374351; + --steel-550: #445161; + --steel-500: #515F70; + --steel-450: #5F6E80; + --steel-400: #6D7D8F; + --steel-350: #7C8C9F; + --steel-300: #8C9CAF; + --steel-250: #9DADC0; + --steel-200: #AEBED0; + --steel-150: #C0CFE0; + --steel-100: #D2E0F0; + --zinc-50: #FAFAFA; + --zinc-100: #F4F4F5; + --zinc-150: #ECECEE; + --zinc-200: #E4E4E7; + --zinc-250: #DCDCE0; + --zinc-300: #D4D4D8; + --zinc-350: #BABAC1; + --zinc-400: #A1A1AA; + --zinc-450: #898992; + --zinc-500: #71717A; + --zinc-550: #61616A; + --zinc-600: #52525B; + --zinc-650: #484850; + --zinc-700: #3F3F46; + --zinc-750: #333338; + --zinc-800: #27272A; + --zinc-850: #1F1F23; + --zinc-900: #18181B; + --color-primary: #c2410c; + --color-primary-contrast: #ffffff; + --color-primary-dark-1: #c2410c; + --color-primary-dark-2: #9a3412; + --color-primary-dark-3: #9a3412; + --color-primary-dark-4: #7c2d12; + --color-primary-dark-5: #7c2d12; + --color-primary-dark-6: #7c2d12; + --color-primary-dark-7: #7c2d12; + --color-primary-light-1: #ea580c; + --color-primary-light-2: #f97316; + --color-primary-light-3: #fb923c; + --color-primary-light-4: #fdba74; + --color-primary-light-5: #fed7aa; + --color-primary-light-6: #ffedd5; + --color-primary-light-7: #fff7ed; + --color-primary-alpha-10: #c2410c19; + --color-primary-alpha-20: #c2410c33; + --color-primary-alpha-30: #c2410c4b; + --color-primary-alpha-40: #c2410c66; + --color-primary-alpha-50: #c2410c80; + --color-primary-alpha-60: #c2410c99; + --color-primary-alpha-70: #c2410cb3; + --color-primary-alpha-80: #c2410ccc; + --color-primary-alpha-90: #c2410ce1; + --color-secondary: var(--zinc-200); + --color-secondary-dark-1: var(--zinc-200); + --color-secondary-dark-2: var(--zinc-300); + --color-secondary-dark-3: var(--zinc-300); + --color-secondary-dark-4: var(--zinc-400); + --color-secondary-dark-5: var(--zinc-400); + --color-secondary-dark-6: var(--zinc-500); + --color-secondary-dark-7: var(--zinc-500); + --color-secondary-dark-8: var(--zinc-600); + --color-secondary-dark-9: var(--zinc-600); + --color-secondary-dark-10: var(--zinc-700); + --color-secondary-dark-11: var(--zinc-700); + --color-secondary-dark-12: var(--zinc-800); + --color-secondary-dark-13: var(--zinc-800); + --color-secondary-light-1: var(--zinc-200); + --color-secondary-light-2: var(--zinc-100); + --color-secondary-light-3: var(--zinc-100); + --color-secondary-light-4: var(--zinc-50); + --color-secondary-alpha-10: #d4d4d819; + --color-secondary-alpha-20: #d4d4d833; + --color-secondary-alpha-30: #d4d4d84b; + --color-secondary-alpha-40: #d4d4d866; + --color-secondary-alpha-50: #d4d4d880; + --color-secondary-alpha-60: #d4d4d899; + --color-secondary-alpha-70: #d4d4d8b3; + --color-secondary-alpha-80: #d4d4d8cc; + --color-secondary-alpha-90: #d4d4d8e1; + /* colors */ + --color-red: #dc2626; + --color-orange: #ea580c; + --color-yellow: #ca8a04; + --color-olive: #91a313; + --color-green: #15803d; + --color-teal: #0d9488; + --color-blue: #2563eb; + --color-violet: #7c3aed; + --color-purple: #9333ea; + --color-pink: #db2777; + --color-brown: #a47252; + --color-grey: #4b5563; + --color-black: #000000; + /* light variants */ + --color-red-light: #ef4444; + --color-orange-light: #f97316; + --color-yellow-light: #eab308; + --color-olive-light: #839311; + --color-green-light: #16a34a; + --color-teal-light: #14b8a6; + --color-blue-light: #3b82f6; + --color-violet-light: #8b5cf6; + --color-purple-light: #a855f7; + --color-pink-light: #ec4899; + --color-brown-light: #94674a; + --color-grey-light: #6b7280; + --color-black-light: #181818; + /* other colors */ + --color-gold: #b1983b; + --color-white: #ffffff; + --color-diff-removed-word-bg: #fca5a5; + --color-diff-added-word-bg: #86efac; + --color-diff-removed-row-bg: #fee2e2; + --color-diff-moved-row-bg: #fef9c3; + --color-diff-added-row-bg: #dcfce7; + --color-diff-removed-row-border: #fca5a5; + --color-diff-moved-row-border: #fde047; + --color-diff-added-row-border: #86efac; + --color-diff-inactive: var(--zinc-100); + --color-error-border: #fecaca; + --color-error-bg: #fee2e2; + --color-error-bg-active: #fca5a5; + --color-error-bg-hover: #fecaca; + --color-error-text: #7f1d1d; + --color-success-border: #bbf7d0; + --color-success-bg: #dcfce7; + --color-success-text: #14532d; + --color-warning-border: #fde047; + --color-warning-bg: #fef3c7; + --color-warning-text: #78350f; + --color-info-border: #bae6fd; + --color-info-bg: #e0f2fe; + --color-info-text: #0c4a6e; + --color-red-badge: #B91C1C; + --color-red-badge-bg: #B91C1C22; + --color-red-badge-hover-bg: #B91C1C44; + --color-green-badge: #16a34a; + --color-green-badge-bg: #16a34a22; + --color-green-badge-hover-bg: #16a34a44; + --color-yellow-badge: #ca8a04; + --color-yellow-badge-bg: #ca8a0422; + --color-yellow-badge-hover-bg: #ca8a0444; + --color-orange-badge: #ea580c; + --color-orange-badge-bg: #ea580c22; + --color-orange-badge-hover-bg: #ea580c44; + --color-git: #f05133; + /* target-based colors */ + --color-body: #fff; + --color-box-header: var(--zinc-100); + --color-box-body: var(--zinc-50); + --color-box-body-highlight: var(--zinc-200); + --color-text-dark: #000; + --color-text: var(--zinc-900); + --color-text-light: var(--zinc-700); + --color-text-light-1: var(--zinc-650); + --color-text-light-2: var(--zinc-600); + --color-text-light-3: var(--zinc-550); + --color-footer: var(--zinc-100); + --color-timeline: var(--zinc-200); + --color-input-text: var(--zinc-800); + --color-input-background: #fff; + --color-input-toggle-background: #fff; + --color-input-border: var(--zinc-300); + --color-input-border-hover: var(--zinc-400); + --color-header-wrapper: var(--zinc-50); + --color-header-wrapper-transparent: #D2E0F000; + --color-light: #ffffffcc; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(6 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #0000001d; + --color-hover: #e4e4e4aa; + --color-active: #d4d4d8aa; + --color-menu: var(--zinc-100); + --color-card: var(--zinc-50); + --color-markup-table-row: #ffffff06; + --color-markup-code-block: var(--zinc-150); + --color-button: var(--zinc-150); + --color-code-bg: var(--zinc-50); + --color-code-sidebar-bg: var(--zinc-100); + --color-shadow: #00000060; + --color-secondary-bg: var(--zinc-100); + --color-text-focus: #fff; + --color-expand-button: var(--zinc-200); + --color-placeholder-text: var(--zinc-400); + --color-editor-line-highlight: var(--zinc-100); + --color-project-board-bg: var(--color-secondary-light-2); + --color-project-board-dark-label: var(--color-text-light-3); + --color-caret: var(--color-text); + /* should ideally be --color-text-dark, see #15651 */ + --color-reaction-bg: #0000000a; + --color-reaction-active-bg: var(--color-primary-alpha-20); + --color-nav-bg: var(--zinc-100); + --color-nav-hover-bg: var(--zinc-300); + --color-label-active-bg: #4c525e; + --color-accent: var(--color-primary-light-1); + --color-small-accent: var(--color-primary-light-5); + --color-active-line: var(--color-primary-light-6); + accent-color: var(--color-accent); + color-scheme: light; +} +.text.green.svg { + color: #16a34a !important; +} +.ui.secondary.vertical.menu { + border-radius: 0.28571429rem !important; + overflow: hidden; +} +.ui.secondary.vertical.menu > .item { + border-radius: 0 !important; +} +.ui.basic.primary.button.item { + background-color: var(--color-active) !important; + color: var(--color-text) !important; + box-shadow: none !important; +} +.ui.red.label.notification_count, +.ui.primary.labels .label { + background-color: var(--color-primary-dark-1) !important; +} +.repository.view.issue .comment-list .code-comment + .code-comment { + margin: 1.25rem 0 !important; + padding-top: 1.25rem !important; + border-top-color: var(--zinc-250) !important; +} +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + background-color: rgba(0, 0, 0, 0.05) !important; +} +#review-box .review-comments-counter { + background-color: #ffffffaa !important; + color: #000 !important; + margin-left: 0.5em; +} +.ui.tabs .ui.primary.label, +.ui.menu .ui.primary.label { + background-color: rgba(0, 0, 0, 0.15) !important; + color: var(--color-text-dark) !important; +} +.ui.basic.yellow.label.pending-label { + background: var(--color-warning-bg) !important; + color: var(--color-warning-text) !important; + border-color: #eab308 !important; +} +::selection { + background: var(--steel-450) !important; + color: #fff !important; +} From f14f26c940abd341ae6bd8e20e93bd736e907b52 Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Wed, 28 Dec 2022 00:28:39 -1000 Subject: [PATCH 09/36] [BRANDING] Rebrand default meta tags (cherry picked from commit b1a792b63547df1471a125c2384a9623ffae409e) (cherry picked from commit ba71acccdb8eb4d1c87b50708fe3b03a3324dd9c) (cherry picked from commit ef58efb8e0c48a782e01aac8d754e70b7611a2c8) (cherry picked from commit 6a1b08241ebb862bdd39c708852e3e23c4d96c9d) (cherry picked from commit 132c7a3a07d5a11b9b165295ef12111ce74aea70) (cherry picked from commit a1f07975d67ceccedc808ddaf657f8e7e0da74b1) (cherry picked from commit f3793598b24d00ca3ae80dbde4ef9909b298ca03) (cherry picked from commit 60f38116afc60b055c6b40be8a1e94f646252bf6) (cherry picked from commit 88884cf2833429749b9a6ec6110b4c4727304903) (cherry picked from commit 520de41aefa6c1f5c939b2345878697094962812) (cherry picked from commit cfd5e5b95ab081d10d4f5d6022d09db4877f51fc) (cherry picked from commit 5cf1738f0a08d99aba2016100f3f0083b51efcf4) (cherry picked from commit b95f9b3142089d90df93708638b2ae6c857dbc87) (cherry picked from commit 0118fba9703a1e3f9da6c7b5c479b8b919a5f5e2) (cherry picked from commit ef213ec79d8d0ae006bfda0b9e49d2da2be47ca3) (cherry picked from commit f6794f694b9fb262c66f8d3958dd5145c7ef0dbb) (cherry picked from commit 639110c03bc2d2f91fb6a5c619f1138a0522f836) (cherry picked from commit 2be6eca1e1c8488bdc9e6ce164dbd9f3d79771ce) (cherry picked from commit eb929d0d566b3dff8454e62ff9f2384a896fb549) (cherry picked from commit c49dd4ed7f771e8fa1573add6cbadc193a473ead) (cherry picked from commit 8ea074c4ddaa737c4faa83c1b4746dbd7cb84440) (cherry picked from commit 3145df43d60593700b60409a8d5ac12e4fbbc197) (cherry picked from commit d0df3e306a4f0a4f773c7cbc1409922fe69973aa) (cherry picked from commit 8f4850705eb4e016ebebc738f629bcc9ce87ca61) (cherry picked from commit 5a24d4319cf7ac2e56b9e43e4181b066d76d6d8d) (cherry picked from commit 756c04c6c46a55852089711f7859f533b85fd042) (cherry picked from commit ea627e79e36d0bc7514b28e6b7d5847b5bdf5922) (cherry picked from commit c52b141902ef0be06c100f4a1285f28419e6f497) (cherry picked from commit 49ab0c55597dc12a50be39a2bd35cb870ba8e361) --- modules/setting/ui.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/setting/ui.go b/modules/setting/ui.go index c095606f3a..c8ad75856e 100644 --- a/modules/setting/ui.go +++ b/modules/setting/ui.go @@ -123,9 +123,9 @@ var UI = struct { Description string Keywords string }{ - Author: "Gitea - Git with a cup of tea", - Description: "Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go", - Keywords: "go,git,self-hosted,gitea", + Author: "Forgejo – Beyond coding. We forge.", + Description: "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.", + Keywords: "git,forge,forgejo", }, } From a92f044ea96bbe9c47689455a417e4f1bc3cd648 Mon Sep 17 00:00:00 2001 From: TomZ Date: Mon, 9 Jan 2023 14:01:00 +0100 Subject: [PATCH 10/36] [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. As the docs of codeberg refer to the strings printed by the Forgejo ssh servers, this is user-facing and is nice to update to the new product name. (cherry picked from commit 103991d73f0f78f31a5f1dae47824c2fe481bcc6) (cherry picked from commit 2a0d3f85f199d28a4180becdebcb90af0d6f3504) (cherry picked from commit eb2b4ce388810dc145dd90d3358d4d4373e31b80) (cherry picked from commit 0998b51716ef5d3c25e139886aa8b7bfde703b20) [BRANDING] forgejo log message (cherry picked from commit d51a046ebe774236f8b902c45486dc8cbd041e0e) (cherry picked from commit d66e1c7b6e2fbfefb976103805b18eb29b6406af) (cherry picked from commit b5bffe4ce8a8353c9e5529350a7932d4a2d9e53e) (cherry picked from commit 3fa776d8566c42ce31540024ce5bf5a6cb5cd4e4) (cherry picked from commit 18d064f47214327dc5b6c55c2d02a3da53358dbc) (cherry picked from commit c95094e355212d4baf607f3778152ceb455d4f82) (cherry picked from commit 5784290bc46afffca9b93e0faa3bd88944e54919) (cherry picked from commit aee336886b2606beaf8c27a2992c21aa2a574966) (cherry picked from commit ec2f60b516b1ee11b5e7c52ecb02fdf8e5bbcaec) (cherry picked from commit 7af742a28469d6725248d5519e69217b844ed792) (cherry picked from commit f279e2a264ae028ab511ba61a71e00739dc5020a) (cherry picked from commit fd38cfb14eebe34dc72b8358479e53d27fe01180) (cherry picked from commit 64c82266183943f062016479c2d1868ccdee2cec) (cherry picked from commit b546fb23042c6d231ce29241d1991c9cb1bf1bba) (cherry picked from commit ad102021776a8dd407ef19cbfadc42b3ca7fabd5) (cherry picked from commit c89cab9c2b019a592dffe4b6de29482feca1bb33) (cherry picked from commit 9579322ec2eec40cb8f113458c1d5669f5d4b818) (cherry picked from commit 16b44ad18de82b0429a8b0a05ed93445d1524241) (cherry picked from commit 2571ff703b77cc8527f37f82c36e9260a80ac673) (cherry picked from commit ad61d9ce9b93503b04deb9ecdb5f214566caf820) (cherry picked from commit 9b2c45d4d3b1c6401a3d7d0a5544213e1486ab9e) (cherry picked from commit ed01b79a598a0698324392dab66a2cd3d41c628c) (cherry picked from commit d040b664279292f9f7304f96db0d172672c1e904) (cherry picked from commit ffe0bbea48d036c26149d98856add938bb08a475) (cherry picked from commit 4c1b2c409bb90a0c2876f3a7323cf162a7e58765) (cherry picked from commit 3d8338ed106cb6260a4dae249ddef71489c47357) --- cmd/serv.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/serv.go b/cmd/serv.go index 26fc91a3b7..55fa50cd3d 100644 --- a/cmd/serv.go +++ b/cmd/serv.go @@ -171,13 +171,13 @@ func runServ(c *cli.Context) error { } switch key.Type { case asymkey_model.KeyTypeDeploy: - println("Hi there! You've successfully authenticated with the deploy key named " + key.Name + ", but Gitea does not provide shell access.") + println("Hi there! You've successfully authenticated with the deploy key named " + key.Name + ", but Forgejo does not provide shell access.") case asymkey_model.KeyTypePrincipal: - println("Hi there! You've successfully authenticated with the principal " + key.Content + ", but Gitea does not provide shell access.") + println("Hi there! You've successfully authenticated with the principal " + key.Content + ", but Forgejo does not provide shell access.") default: - println("Hi there, " + user.Name + "! You've successfully authenticated with the key named " + key.Name + ", but Gitea does not provide shell access.") + println("Hi there, " + user.Name + "! You've successfully authenticated with the key named " + key.Name + ", but Forgejo does not provide shell access.") } - println("If this is unexpected, please log in with password and setup Gitea under another user.") + println("If this is unexpected, please log in with password and setup Forgejo under another user.") return nil } else if c.Bool("debug") { log.Debug("SSH_ORIGINAL_COMMAND: %s", os.Getenv("SSH_ORIGINAL_COMMAND")) From b3f31c2f7bc5b4f5ed3f7fb6e6a6649331eb179a Mon Sep 17 00:00:00 2001 From: Gusted Date: Mon, 9 Jan 2023 22:28:04 +0100 Subject: [PATCH 11/36] [BRANDING] Replace branding in Swagger - "Gitea" is automatically being determined in Swagger and cannot be overridden, therefor we override it after `swagger generate spec` is run. - Resolves https://codeberg.org/forgejo/forgejo/issues/226 (cherry picked from commit 0b453807656b6fbe54284d865e59880460f3d253) [BRANDING] Change Swagger title to Forgejo API (cherry picked from commit 79f6a70b53421be9984a9ad96ebd0d06ab5af02e) (cherry picked from commit 6cd47afe3366a615d40655a435275d5543910065) (cherry picked from commit a7ae2e4c09431cd7a1f18c5b87b9dd87981b538d) (cherry picked from commit 59f837e4661233dafc202ded9ad907dbdf7e3e69) (cherry picked from commit c1c3d1f0e63b880baa32d285d3eba6034137b45a) (cherry picked from commit 4b088713fb0a55c2c37f734ce82f13190ca412dd) (cherry picked from commit 3df1d2137112a95279a8c84a8601e4c137d75d4f) (cherry picked from commit a4a5fdbde4f9ebbf5ba6ba66c8f20a89e54860de) (cherry picked from commit 57aa9ed710a95aa51ae3824873c3766b38da7850) (cherry picked from commit 948b49bf9449af744a1f2e1324187897ed1c0809) (cherry picked from commit be4929ab6a802d7d748f537ab8b798e30588c1d4) (cherry picked from commit 9ecb507457d8a6aa60713762a1a5d2995ed986e5) Conflicts: templates/swagger/ui.tmpl (cherry picked from commit 8e57e688637b9fbd3c33d3e38aed8768a2c07208) (cherry picked from commit f0b3f621e34130c75b35c113ad509ab73118e123) (cherry picked from commit 5b0a6d093ea5210a5ba27705b1d1636e23da8738) (cherry picked from commit 2e0f6b5de8837a439ecadaf3434d006d7014016c) (cherry picked from commit bb08076f5c26481d78855823c2daa1a76d3865fb) (cherry picked from commit 5c9360e38a41a4494b1b1b247f9d57b1a0d91ef0) (cherry picked from commit 2f277561489e1228af163fa4e5d153ceb7eec864) (cherry picked from commit 6fce7eeb511d949249e045a995cc637d3788a1f0) (cherry picked from commit 8d27e7bebd961468bd492c4d64e132a46d97f62b) (cherry picked from commit fda2ee2aaedac8f394d9fc38085f768c775d2c38) (cherry picked from commit fe0489a4d856655fdcf93c16a41995709c47f78f) (cherry picked from commit fe9479b357d2ef0f5fd8247e8356ce7c75135b88) (cherry picked from commit 1deadb2f35c8c0c87cd93b6f04675312b1e667bb) (cherry picked from commit d1cb84b2f225c484755172735841e3b75abce409) (cherry picked from commit 9de15d49f8ff0ef0803e8b3a7437a45358e924b9) (cherry picked from commit 461fbe219c30de7e756ce2cb6dbc354417655a6f) (cherry picked from commit f39bf3ba5b6325898968533e79fdfc5fe74c3810) --- Makefile | 2 ++ templates/swagger/ui.tmpl | 2 +- templates/swagger/v1_json.tmpl | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 78b35120cc..589dd48e1e 100644 --- a/Makefile +++ b/Makefile @@ -150,6 +150,7 @@ SWAGGER_SPEC_S_TMPL := s|"basePath": *"/api/v1"|"basePath": "{{AppSubUrl \| JSEs SWAGGER_SPEC_S_JSON := s|"basePath": *"{{AppSubUrl \| JSEscape \| Safe}}/api/v1"|"basePath": "/api/v1"|g SWAGGER_EXCLUDE := code.gitea.io/sdk SWAGGER_NEWLINE_COMMAND := -e '$$a\' +SWAGGER_SPEC_BRANDING := s|Gitea API|Forgejo API|g TEST_MYSQL_HOST ?= mysql:3306 TEST_MYSQL_DBNAME ?= testgitea @@ -339,6 +340,7 @@ $(SWAGGER_SPEC): $(GO_SOURCES_NO_BINDATA) $(GO) run $(SWAGGER_PACKAGE) generate spec -x "$(SWAGGER_EXCLUDE)" -o './$(SWAGGER_SPEC)' $(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)' $(SED_INPLACE) $(SWAGGER_NEWLINE_COMMAND) './$(SWAGGER_SPEC)' + $(SED_INPLACE) '$(SWAGGER_SPEC_BRANDING)' './$(SWAGGER_SPEC)' .PHONY: swagger-check swagger-check: generate-swagger diff --git a/templates/swagger/ui.tmpl b/templates/swagger/ui.tmpl index e2324f9b5b..355169f007 100644 --- a/templates/swagger/ui.tmpl +++ b/templates/swagger/ui.tmpl @@ -1,7 +1,7 @@ - Gitea API + Forgejo API diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 70e3d9b176..a74fd2d065 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -13,8 +13,8 @@ ], "swagger": "2.0", "info": { - "description": "This documentation describes the Gitea API.", - "title": "Gitea API.", + "description": "This documentation describes the Forgejo API.", + "title": "Forgejo API.", "license": { "name": "MIT", "url": "http://opensource.org/licenses/MIT" From 507abee353f120247276fe9165f09976421f926d Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 14 Jan 2023 08:16:30 +0100 Subject: [PATCH 12/36] [BRANDING] add X-Forgejo-* headers (cherry picked from commit 0a3388f93f53f53cce79ebcc194d67979cbe61cc) (cherry picked from commit 7eba0a440a3138443d0b7461560f9f6f1c46b256) (cherry picked from commit eb9646c7ef0b1a9e73bf22806acbc2caeaee7ff3) (cherry picked from commit f1972578f5cb72ad9e1ef1ded9aa324b1d669864) Conflicts: (cherry picked from commit 7f96222fb4b4a773193a11d4ba76f449013c30ef) (cherry picked from commit e3c7c9fe7b5809cdb75f1eb629c82b27986f7e98) (cherry picked from commit 84fdead90242e68493efb96a7fee1e3b5fd417e9) (cherry picked from commit 85148e11961b86269b7cda30294a4cdc817787d0) (cherry picked from commit c0086bd70d39d9a1075fa624cdbfdf5ef26f7a2c) (cherry picked from commit d1e31ef31817e5e811f6bea7aee5582383d53b12) (cherry picked from commit 681d3ed5c43d45f802dc13c58c5b821da938374d) (cherry picked from commit 76a3001f5bc5a064054514c179ba14008952e914) (cherry picked from commit a55a9567d36f6b60557df3df3a0801c0fccec963) (cherry picked from commit aa7adc167d4e4ee7879b88fe799f2afca2fd5531) (cherry picked from commit d5354cb52c26ab0090388d019efe61770e7ec452) (cherry picked from commit 472c48999699420d15aaa7c61a42db8136221616) (cherry picked from commit dc816d065b715f2bfdc7fa68fa2d254f3d481b35) (cherry picked from commit 4795f9ea85eac21c70db1159914a7b7b035b7374) (cherry picked from commit ddd4ae53433d4adab823aa974c0f1c39d0394414) (cherry picked from commit 0e95f2a36b1c0f480f94fef85d341792c7a7b759) (cherry picked from commit 47a41a4e7b3c5d3cf247dafef17a64415069f171) (cherry picked from commit d4416fcd3ee0f1d74c2b03fbe40c15b83f80b56d) (cherry picked from commit f279d153b61677e2a766859c7a7688b0327e7c9a) (cherry picked from commit 959f908ffdc9dd2fb07aefdf7cb85ba34f9071a3) (cherry picked from commit 82df95310176a083abb9eaa51de9e9754d4f72c6) (cherry picked from commit 8f8c9fd9e3deca0af0f087fc44fcd271e8440a7b) (cherry picked from commit d4a0db7706f30a394192c6023072ad5185a7d600) (cherry picked from commit 44594d623942128072bd86a20b5b90603517005e) (cherry picked from commit 62b1de579ebfe326340b218cc9a980b705b8e6a2) --- modules/httpcache/httpcache.go | 1 + modules/httpcache/httpcache_test.go | 3 +++ routers/api/v1/api.go | 2 +- routers/api/v1/repo/file.go | 7 ++++++- services/mailer/mail.go | 10 ++++++++++ services/webhook/deliver.go | 4 ++++ 6 files changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/httpcache/httpcache.go b/modules/httpcache/httpcache.go index b57b321832..10f626b3f3 100644 --- a/modules/httpcache/httpcache.go +++ b/modules/httpcache/httpcache.go @@ -30,6 +30,7 @@ func SetCacheControlInHeader(h http.Header, maxAge time.Duration, additionalDire // to remind users they are using non-prod setting. h.Set("X-Gitea-Debug", "RUN_MODE="+setting.RunMode) + h.Set("X-Forgejo-Debug", "RUN_MODE="+setting.RunMode) } h.Set("Cache-Control", strings.Join(append(directives, additionalDirectives...), ", ")) diff --git a/modules/httpcache/httpcache_test.go b/modules/httpcache/httpcache_test.go index d81f06097c..65a8a9b8fb 100644 --- a/modules/httpcache/httpcache_test.go +++ b/modules/httpcache/httpcache_test.go @@ -18,6 +18,9 @@ func countFormalHeaders(h http.Header) (c int) { if strings.HasPrefix(k, "X-Gitea-") { continue } + if strings.HasPrefix(k, "X-Forgejo-") { + continue + } c++ } return c diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index d0af47239c..22e135a563 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -721,7 +721,7 @@ func Routes() *web.Route { // setting.CORSConfig.AllowSubdomain // FIXME: the cors middleware needs allowSubdomain option AllowedMethods: setting.CORSConfig.Methods, AllowCredentials: setting.CORSConfig.AllowCredentials, - AllowedHeaders: append([]string{"Authorization", "X-Gitea-OTP"}, setting.CORSConfig.Headers...), + AllowedHeaders: append([]string{"Authorization", "X-Gitea-OTP", "X-Forgejo-OTP"}, setting.CORSConfig.Headers...), MaxAge: int(setting.CORSConfig.MaxAge.Seconds()), })) } diff --git a/routers/api/v1/repo/file.go b/routers/api/v1/repo/file.go index ea311c3202..9ee10f6ce1 100644 --- a/routers/api/v1/repo/file.go +++ b/routers/api/v1/repo/file.go @@ -33,7 +33,10 @@ import ( files_service "code.gitea.io/gitea/services/repository/files" ) -const giteaObjectTypeHeader = "X-Gitea-Object-Type" +const ( + giteaObjectTypeHeader = "X-Gitea-Object-Type" + forgejoObjectTypeHeader = "X-Forgejo-Object-Type" +) // GetRawFile get a file by path on a repository func GetRawFile(ctx *context.APIContext) { @@ -80,6 +83,7 @@ func GetRawFile(ctx *context.APIContext) { } ctx.RespHeader().Set(giteaObjectTypeHeader, string(files_service.GetObjectTypeFromTreeEntry(entry))) + ctx.RespHeader().Set(forgejoObjectTypeHeader, string(files_service.GetObjectTypeFromTreeEntry(entry))) if err := common.ServeBlob(ctx.Base, ctx.Repo.TreePath, blob, lastModified); err != nil { ctx.Error(http.StatusInternalServerError, "ServeBlob", err) @@ -129,6 +133,7 @@ func GetRawFileOrLFS(ctx *context.APIContext) { } ctx.RespHeader().Set(giteaObjectTypeHeader, string(files_service.GetObjectTypeFromTreeEntry(entry))) + ctx.RespHeader().Set(forgejoObjectTypeHeader, string(files_service.GetObjectTypeFromTreeEntry(entry))) // LFS Pointer files are at most 1024 bytes - so any blob greater than 1024 bytes cannot be an LFS file if blob.Size() > 1024 { diff --git a/services/mailer/mail.go b/services/mailer/mail.go index 50d59a4452..50a2cc57d3 100644 --- a/services/mailer/mail.go +++ b/services/mailer/mail.go @@ -415,6 +415,16 @@ func generateAdditionalHeaders(ctx *mailCommentContext, reason string, recipient "X-Gitea-Issue-ID": strconv.FormatInt(ctx.Issue.Index, 10), "X-Gitea-Issue-Link": ctx.Issue.HTMLURL(), + "X-Forgejo-Reason": reason, + "X-Forgejo-Sender": ctx.Doer.DisplayName(), + "X-Forgejo-Recipient": recipient.DisplayName(), + "X-Forgejo-Recipient-Address": recipient.Email, + "X-Forgejo-Repository": repo.Name, + "X-Forgejo-Repository-Path": repo.FullName(), + "X-Forgejo-Repository-Link": repo.HTMLURL(), + "X-Forgejo-Issue-ID": strconv.FormatInt(ctx.Issue.Index, 10), + "X-Forgejo-Issue-Link": ctx.Issue.HTMLURL(), + "X-GitHub-Reason": reason, "X-GitHub-Sender": ctx.Doer.DisplayName(), "X-GitHub-Recipient": recipient.DisplayName(), diff --git a/services/webhook/deliver.go b/services/webhook/deliver.go index fd7a3d7fba..d13fe1c5d3 100644 --- a/services/webhook/deliver.go +++ b/services/webhook/deliver.go @@ -123,6 +123,10 @@ func Deliver(ctx context.Context, t *webhook_model.HookTask) error { event := t.EventType.Event() eventType := string(t.EventType) + req.Header.Add("X-Forgejo-Delivery", t.UUID) + req.Header.Add("X-Forgejo-Event", event) + req.Header.Add("X-Forgejo-Event-Type", eventType) + req.Header.Add("X-Forgejo-Signature", signatureSHA256) req.Header.Add("X-Gitea-Delivery", t.UUID) req.Header.Add("X-Gitea-Event", event) req.Header.Add("X-Gitea-Event-Type", eventType) From 270f4020b0714ac553498fc986457b0c627d85a6 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 14 Jan 2023 10:07:01 +0100 Subject: [PATCH 13/36] [BRANDING] add the forgejo webhook type & update webhook docs URLs templates/swagger/v1_json.tmpl updated with `make generate-swagger` (cherry picked from commit 88899c492efeedd138ba088a36b9c0bc733ead7b) (cherry picked from commit 7171bd9617c32c4911e3bdbc23c02a19e80d2465) (cherry picked from commit 1a742446c17aef9ca62fe75bfc0a388d40138154) (cherry picked from commit d7c189d7b2f9fea299a31adf068db969920ae39d) Conflicts: routers/web/web.go (cherry picked from commit cbdea868e41fb38ca491f8b449c3e525ec82d6b9) (cherry picked from commit 6cd150483b06e17aee023c0afd01a3f2460b3415) (cherry picked from commit 47246da8d3f50a02d11b77b3d402618b144aa720) (cherry picked from commit f2aa0e6b769d432e627798bcf294b04b7d253213) (cherry picked from commit 5a4fc69a16de8d6199ea24198299297ef7a3587b) (cherry picked from commit 48e444ca09c22f930514a01846b0c8bc3cef35ab) (cherry picked from commit 888e53781175d8d977f66d78991bd66563fcddfb) (cherry picked from commit 5121f493c99f19d8050aa09224ac3532b4100ec7) (cherry picked from commit 9394e55fdf80bf3d7bf8b2aba561ad44a84e3913) (cherry picked from commit 3a2ce51768de65892e3ec73596e3862354c9502e) (cherry picked from commit 719ead3a651f12afbb59c856914b0085e5cee157) (cherry picked from commit 83e6f82e2aea619a3cd502e133773d33c0e60133) (cherry picked from commit 494a429b21c6234be38b9e3db0f930fbb8118205) (cherry picked from commit 4d775db6b41f731e956cc6bb9217ef349b4a3635) (cherry picked from commit b68f777dc2822ec5c4e30186675cc82daec092a9) (cherry picked from commit 5b934023fa58820f27c349c26f2a1ce89aee6795) (cherry picked from commit 3b1ed8b16c73374cd5b6339f5315229dc82488da) (cherry picked from commit 6bc4a46c9fc6472e1c4bf0bb20dea6867f1b392f) (cherry picked from commit 8064bb24a3c752a86271f154ad4d0c4763e07295) Conflicts: templates/admin/hook_new.tmpl templates/org/settings/hook_new.tmpl templates/repo/settings/webhook/base_list.tmpl templates/repo/settings/webhook/new.tmpl templates/user/settings/hook_new.tmpl https://codeberg.org/forgejo/forgejo/pulls/1181 (cherry picked from commit 55f5588a9150d8912c0f8342495f858e4e1e2959) (cherry picked from commit a428bc06b353e7b678acc6a1ec2576608f1a5d9a) (cherry picked from commit d2186eceb960773d037756c991f50d177fd63954) (cherry picked from commit b4e126e9afd1c51b214e36a585bb454dac32862f) (cherry picked from commit e4c7a92c2d7142cac74cf05a2b1fe3f0bd0c7373) (cherry picked from commit a7165c8146a604b6ec5f8ee4db4c926fef180857) Conflicts: templates/admin/hook_new.tmpl templates/repo/settings/webhook/new.tmpl https://codeberg.org/forgejo/forgejo/pulls/1420 [BRANDING] add the forgejo webhook type & update webhook docs URLs (squash) gitea logo for gitea webhooks Refs: https://codeberg.org/forgejo/forgejo/issues/1367 (cherry picked from commit 2d8c1b93734acec918729e27c5613a8f9fb41ceb) (cherry picked from commit 9135a5e1dbcff07e9fff4c1001fcac8c05e0c82b) --- modules/setting/webhook.go | 2 +- modules/structs/hook.go | 2 +- modules/webhook/type.go | 1 + routers/web/repo/setting/webhook.go | 30 +++++++++++++- routers/web/web.go | 2 + services/webhook/webhook.go | 4 +- .../repo/settings/webhook/base_list.tmpl | 4 ++ templates/repo/settings/webhook/forgejo.tmpl | 40 +++++++++++++++++++ templates/repo/settings/webhook/gitea.tmpl | 2 +- templates/repo/settings/webhook/gogs.tmpl | 2 +- templates/shared/webhook/icon.tmpl | 6 ++- templates/swagger/v1_json.tmpl | 1 + templates/webhook/new.tmpl | 1 + tests/integration/links_test.go | 30 ++++++++++++++ 14 files changed, 118 insertions(+), 9 deletions(-) create mode 100644 templates/repo/settings/webhook/forgejo.tmpl diff --git a/modules/setting/webhook.go b/modules/setting/webhook.go index c01261dbbd..b56c55c439 100644 --- a/modules/setting/webhook.go +++ b/modules/setting/webhook.go @@ -35,7 +35,7 @@ func loadWebhookFrom(rootCfg ConfigProvider) { Webhook.DeliverTimeout = sec.Key("DELIVER_TIMEOUT").MustInt(5) Webhook.SkipTLSVerify = sec.Key("SKIP_TLS_VERIFY").MustBool() Webhook.AllowedHostList = sec.Key("ALLOWED_HOST_LIST").MustString("") - Webhook.Types = []string{"gitea", "gogs", "slack", "discord", "dingtalk", "telegram", "msteams", "feishu", "matrix", "wechatwork", "packagist"} + Webhook.Types = []string{"forgejo", "gitea", "gogs", "slack", "discord", "dingtalk", "telegram", "msteams", "feishu", "matrix", "wechatwork", "packagist"} Webhook.PagingNum = sec.Key("PAGING_NUM").MustInt(10) Webhook.ProxyURL = sec.Key("PROXY_URL").MustString("") if Webhook.ProxyURL != "" { diff --git a/modules/structs/hook.go b/modules/structs/hook.go index 0babe84410..9afcebdc59 100644 --- a/modules/structs/hook.go +++ b/modules/structs/hook.go @@ -41,7 +41,7 @@ type CreateHookOptionConfig map[string]string // CreateHookOption options when create a hook type CreateHookOption struct { // required: true - // enum: dingtalk,discord,gitea,gogs,msteams,slack,telegram,feishu,wechatwork,packagist + // enum: forgejo,dingtalk,discord,gitea,gogs,msteams,slack,telegram,feishu,wechatwork,packagist Type string `json:"type" binding:"Required"` // required: true Config CreateHookOptionConfig `json:"config" binding:"Required"` diff --git a/modules/webhook/type.go b/modules/webhook/type.go index 7042d391b7..7f427f2ea8 100644 --- a/modules/webhook/type.go +++ b/modules/webhook/type.go @@ -72,6 +72,7 @@ type HookType = string // Types of webhooks const ( + FORGEJO HookType = "forgejo" GITEA HookType = "gitea" GOGS HookType = "gogs" SLACK HookType = "slack" diff --git a/routers/web/repo/setting/webhook.go b/routers/web/repo/setting/webhook.go index 33ea2c206b..718e2a0bc2 100644 --- a/routers/web/repo/setting/webhook.go +++ b/routers/web/repo/setting/webhook.go @@ -44,7 +44,7 @@ func Webhooks(ctx *context.Context) { ctx.Data["PageIsSettingsHooks"] = true ctx.Data["BaseLink"] = ctx.Repo.RepoLink + "/settings/hooks" ctx.Data["BaseLinkNew"] = ctx.Repo.RepoLink + "/settings/hooks" - ctx.Data["Description"] = ctx.Tr("repo.settings.hooks_desc", "https://docs.gitea.com/usage/webhooks") + ctx.Data["Description"] = ctx.Tr("repo.settings.hooks_desc", "https://forgejo.org/docs/latest/user/webhooks/") ws, err := webhook.ListWebhooksByOpts(ctx, &webhook.ListWebhookOptions{RepoID: ctx.Repo.Repository.ID}) if err != nil { @@ -309,6 +309,34 @@ func editWebhook(ctx *context.Context, params webhookParams) { ctx.Redirect(fmt.Sprintf("%s/%d", orCtx.Link, w.ID)) } +// ForgejoHooksNewPost response for creating Forgejo webhook +func ForgejoHooksNewPost(ctx *context.Context) { + createWebhook(ctx, forgejoHookParams(ctx)) +} + +// ForgejoHooksEditPost response for editing Forgejo webhook +func ForgejoHooksEditPost(ctx *context.Context) { + editWebhook(ctx, forgejoHookParams(ctx)) +} + +func forgejoHookParams(ctx *context.Context) webhookParams { + form := web.GetForm(ctx).(*forms.NewWebhookForm) + + contentType := webhook.ContentTypeJSON + if webhook.HookContentType(form.ContentType) == webhook.ContentTypeForm { + contentType = webhook.ContentTypeForm + } + + return webhookParams{ + Type: webhook_module.FORGEJO, + URL: form.PayloadURL, + ContentType: contentType, + Secret: form.Secret, + HTTPMethod: form.HTTPMethod, + WebhookForm: form.WebhookForm, + } +} + // GiteaHooksNewPost response for creating Gitea webhook func GiteaHooksNewPost(ctx *context.Context) { createWebhook(ctx, giteaHookParams(ctx)) diff --git a/routers/web/web.go b/routers/web/web.go index bb0327f8f7..51e955525f 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -279,6 +279,7 @@ func registerRoutes(m *web.Route) { addWebhookAddRoutes := func() { m.Get("/{type}/new", repo_setting.WebhooksNew) + m.Post("/forgejo/new", web.Bind(forms.NewWebhookForm{}), repo_setting.ForgejoHooksNewPost) m.Post("/gitea/new", web.Bind(forms.NewWebhookForm{}), repo_setting.GiteaHooksNewPost) m.Post("/gogs/new", web.Bind(forms.NewGogshookForm{}), repo_setting.GogsHooksNewPost) m.Post("/slack/new", web.Bind(forms.NewSlackHookForm{}), repo_setting.SlackHooksNewPost) @@ -293,6 +294,7 @@ func registerRoutes(m *web.Route) { } addWebhookEditRoutes := func() { + m.Post("/forgejo/{id}", web.Bind(forms.NewWebhookForm{}), repo_setting.ForgejoHooksEditPost) m.Post("/gitea/{id}", web.Bind(forms.NewWebhookForm{}), repo_setting.GiteaHooksEditPost) m.Post("/gogs/{id}", web.Bind(forms.NewGogshookForm{}), repo_setting.GogsHooksEditPost) m.Post("/slack/{id}", web.Bind(forms.NewSlackHookForm{}), repo_setting.SlackHooksEditPost) diff --git a/services/webhook/webhook.go b/services/webhook/webhook.go index 9d5dab85f7..f15c853331 100644 --- a/services/webhook/webhook.go +++ b/services/webhook/webhook.go @@ -70,7 +70,7 @@ var webhooks = map[webhook_module.HookType]*webhook{ // IsValidHookTaskType returns true if a webhook registered func IsValidHookTaskType(name string) bool { - if name == webhook_module.GITEA || name == webhook_module.GOGS { + if name == webhook_module.FORGEJO || name == webhook_module.GITEA || name == webhook_module.GOGS { return true } _, ok := webhooks[name] @@ -177,7 +177,7 @@ func PrepareWebhook(ctx context.Context, w *webhook_model.Webhook, event webhook // Avoid sending "0 new commits" to non-integration relevant webhooks (e.g. slack, discord, etc.). // Integration webhooks (e.g. drone) still receive the required data. if pushEvent, ok := p.(*api.PushPayload); ok && - w.Type != webhook_module.GITEA && w.Type != webhook_module.GOGS && + w.Type != webhook_module.FORGEJO && w.Type != webhook_module.GITEA && w.Type != webhook_module.GOGS && len(pushEvent.Commits) == 0 { return nil } diff --git a/templates/repo/settings/webhook/base_list.tmpl b/templates/repo/settings/webhook/base_list.tmpl index 1bc9447110..755f0a57c6 100644 --- a/templates/repo/settings/webhook/base_list.tmpl +++ b/templates/repo/settings/webhook/base_list.tmpl @@ -4,6 +4,10 @@
- +
@@ -359,7 +359,7 @@
- +
diff --git a/templates/admin/auth/source/ldap.tmpl b/templates/admin/auth/source/ldap.tmpl index a2bd37be0c..6ecff413b4 100644 --- a/templates/admin/auth/source/ldap.tmpl +++ b/templates/admin/auth/source/ldap.tmpl @@ -106,7 +106,7 @@
- +
diff --git a/templates/admin/auth/source/oauth.tmpl b/templates/admin/auth/source/oauth.tmpl index aaa8b7fe2d..8e62bdfc5b 100644 --- a/templates/admin/auth/source/oauth.tmpl +++ b/templates/admin/auth/source/oauth.tmpl @@ -100,7 +100,7 @@
- +
diff --git a/templates/install.tmpl b/templates/install.tmpl index ac2ba8ec18..82b085280f 100644 --- a/templates/install.tmpl +++ b/templates/install.tmpl @@ -124,7 +124,7 @@
- + {{.locale.Tr "install.domain_helper"}}
@@ -139,7 +139,7 @@
- + {{.locale.Tr "install.app_url_helper"}}
From bf830a0dab534efc33ca5376bccc72ea18e934df Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 27 May 2023 08:13:00 +0200 Subject: [PATCH 23/36] [BRANDING] systemd service Type=simple The problem is Type=notify - when that is set, systemd waits for a signal from the service that it's ready so systemctl start forgejo takes forever (or until it runs into a timeout). Refs: https://codeberg.org/forgejo/forgejo/issues/777 (cherry picked from commit c127369bba3d36f34ef944679a4c40680cad4d2e) (cherry picked from commit 883a7eb570d74c4fd7f44396556148ab88d54f58) (cherry picked from commit 4dfa4c7d210fe33effe26d7a4b74395acd2436b1) (cherry picked from commit 961163d010e107baf6b30d6da334dc569c1d2f9a) (cherry picked from commit 6a058126287ed25f8b5a7790dea616d2a5506098) (cherry picked from commit 112c419f0b365d64a025e56aaa9e424c7256b06a) (cherry picked from commit f3cd60dee739e09189c3821d07c9330d7c247c57) (cherry picked from commit 6fccc6bf0b11f973e911e95cb3d005a0c21216ca) (cherry picked from commit 556862de70314d4c71a5cf60f5637fec673bac48) (cherry picked from commit eb8e2880f717f84876d7155d20768a95172bf72f) (cherry picked from commit 264d85330c38bff2590168d9cd149d55588613d6) (cherry picked from commit 083e66a2b6f00d7b8ff247fd35572dfa13094714) (cherry picked from commit c1385bca5521e34ac854f13467a57015558d368f) (cherry picked from commit d61930730d1f89ff9150e89a2809d3d0184d6af8) (cherry picked from commit cfc815254f56719bbd2c09faa3f3f39f1d9753a9) (cherry picked from commit 613192ae64fbcfb8f0a10ab6fccd2e227c8e0957) --- contrib/systemd/forgejo.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/systemd/forgejo.service b/contrib/systemd/forgejo.service index 0b8c8cccbf..ce5810b5fa 100644 --- a/contrib/systemd/forgejo.service +++ b/contrib/systemd/forgejo.service @@ -52,7 +52,7 @@ After=network.target # Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that # LimitNOFILE=524288:524288 RestartSec=2s -Type=notify +Type=simple User=git Group=git WorkingDirectory=/var/lib/forgejo/ From 07c4ac8a33fd067481d11527df4ee29007ef2f1c Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Fri, 9 Jun 2023 17:49:15 +0200 Subject: [PATCH 24/36] [BRANDING] systemd service trim WatchdogSec=30s Refs: https://codeberg.org/forgejo/forgejo/issues/777 (cherry picked from commit 11b646dc6a59b3fe3873b8f70d08498e655b5cc1) (cherry picked from commit e37847b9e689405a414d05a9875a28fadfde0910) (cherry picked from commit 794aa9dbc8d6e8739b709f138ac7173d02f00a33) (cherry picked from commit f4d3bfbc0da58505331c8d1060e44be2dbddffbb) (cherry picked from commit b48faeaf29e783c397bccfd45e62303aa43139da) (cherry picked from commit 150c44c903c7d77733836947e6829560816eb3ae) (cherry picked from commit f1b4bc7c908045b58655196f86a28843c6e30cc1) (cherry picked from commit e1ef3c5a71b22392a96eccf88b00f8ec95fab2bf) (cherry picked from commit 84399c24e0bd2bfba9cc8a0bdc9c946270c81628) (cherry picked from commit 8242651ab3ffb4a04e3fe3e35745b7772ab40b03) (cherry picked from commit 97a13e6a263f41f6d15e18da7260ed70c41e6c28) (cherry picked from commit 2b00b6477bd2e397c7c5327c3e3e4a8633b3218c) (cherry picked from commit f3870ed880eced44e1ea7d214cc8a6d2207de0ee) (cherry picked from commit 4d14ded61108e9d43dfc8da9d779620ea1388004) --- contrib/systemd/forgejo.service | 1 - 1 file changed, 1 deletion(-) diff --git a/contrib/systemd/forgejo.service b/contrib/systemd/forgejo.service index ce5810b5fa..04ef69adc0 100644 --- a/contrib/systemd/forgejo.service +++ b/contrib/systemd/forgejo.service @@ -62,7 +62,6 @@ WorkingDirectory=/var/lib/forgejo/ ExecStart=/usr/local/bin/forgejo web --config /etc/forgejo/app.ini Restart=always Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/forgejo -WatchdogSec=30s # If you install Git to directory prefix other than default PATH (which happens # for example if you install other versions of Git side-to-side with # distribution version), uncomment below line and add that prefix to PATH From 312a6b92f384fdb09fc26e5da5a4acf0680ff698 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sun, 11 Jun 2023 09:31:34 +0200 Subject: [PATCH 25/36] [BRANDING] How to start a runner: URL to Actions admin documentation (cherry picked from commit da91799e6f06ac3c91c1cfc763f4ec0b5cc3cf21) (cherry picked from commit 28231663b634f6d877173ba4956f6c0a5d128b2b) (cherry picked from commit 533a90345bb0236c8fc088f2ab1b92535f8a4269) (cherry picked from commit 6a0e4e55dd02beff179b8503259d1cc774e8e81b) (cherry picked from commit f47cd611c68f9da2df9b0e5e0a8332f6fcc17932) (cherry picked from commit 001264b7840aaad6aa25e0b06a927300751ef20e) (cherry picked from commit e4099e9bb9f557e99bb0117eaf6ad88467684527) (cherry picked from commit 3a1885649ff1dcaf5acdb1bb237c477a92aeb01f) (cherry picked from commit c42802c710c0fce2eea06a93a7f4373557515616) (cherry picked from commit a611ce8d6d293573534d4ce1efde81d32129723a) (cherry picked from commit a3d7d10a80ba6104ee6f260290518936b210c16b) (cherry picked from commit 52adde671f8dcb309235506a3c39a38db87e9537) (cherry picked from commit c9a3820fef10ef0b20e52f5f70d7794dde0974b3) (cherry picked from commit dce40997c956244742325b5b10d13e8ec918082c) --- templates/shared/actions/runner_list.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/shared/actions/runner_list.tmpl b/templates/shared/actions/runner_list.tmpl index c4b70282ae..8bd42d1da2 100644 --- a/templates/shared/actions/runner_list.tmpl +++ b/templates/shared/actions/runner_list.tmpl @@ -11,7 +11,7 @@
- +
diff --git a/templates/package/content/cargo.tmpl b/templates/package/content/cargo.tmpl index b7a34632e4..e7721bfd61 100644 --- a/templates/package/content/cargo.tmpl +++ b/templates/package/content/cargo.tmpl @@ -5,9 +5,9 @@
[registry]
-default = "gitea"
+default = "forgejo"
 
-[registries.gitea]
+[registries.forgejo]
 index = ""
 
 [net]
@@ -18,7 +18,7 @@ git-fetch-with-cli = true
cargo add {{.PackageDescriptor.Package.Name}}@{{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/chef.tmpl b/templates/package/content/chef.tmpl index 2596f8d493..7e88d39d3b 100644 --- a/templates/package/content/chef.tmpl +++ b/templates/package/content/chef.tmpl @@ -11,7 +11,7 @@
knife supermarket install {{.PackageDescriptor.Package.Name}} {{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/composer.tmpl b/templates/package/content/composer.tmpl index 80997c583f..117f97fa50 100644 --- a/templates/package/content/composer.tmpl +++ b/templates/package/content/composer.tmpl @@ -17,7 +17,7 @@
composer require {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/conan.tmpl b/templates/package/content/conan.tmpl index c8904216af..179031d73a 100644 --- a/templates/package/content/conan.tmpl +++ b/templates/package/content/conan.tmpl @@ -8,10 +8,10 @@
-
conan install --remote=gitea {{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}
+
conan install --remote=forgejo {{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/conda.tmpl b/templates/package/content/conda.tmpl index 23d640944b..17d20b30ed 100644 --- a/templates/package/content/conda.tmpl +++ b/templates/package/content/conda.tmpl @@ -16,7 +16,7 @@ default_channels:
conda install{{if $channel}} -c {{$channel}}{{end}} {{.PackageDescriptor.PackageProperties.GetByName "conda.name"}}={{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/container.tmpl b/templates/package/content/container.tmpl index cba5d9e7c1..47e3de1414 100644 --- a/templates/package/content/container.tmpl +++ b/templates/package/content/container.tmpl @@ -19,7 +19,7 @@
{{range .PackageDescriptor.Files}}{{if eq .File.LowerName "manifest.json"}}{{.Properties.GetByName "container.digest"}}{{end}}{{end}}
- +
diff --git a/templates/package/content/cran.tmpl b/templates/package/content/cran.tmpl index 1f3200130c..62d5c72396 100644 --- a/templates/package/content/cran.tmpl +++ b/templates/package/content/cran.tmpl @@ -4,14 +4,14 @@
-
options("repos" = c(getOption("repos"), c(gitea="")))
+
options("repos" = c(getOption("repos"), c(forgejo="")))
install.packages("{{.PackageDescriptor.Package.Name}}")
- +
diff --git a/templates/package/content/debian.tmpl b/templates/package/content/debian.tmpl index b222767035..b57e430096 100644 --- a/templates/package/content/debian.tmpl +++ b/templates/package/content/debian.tmpl @@ -4,8 +4,8 @@
-
sudo curl  -o /etc/apt/trusted.gpg.d/gitea-{{$.PackageDescriptor.Owner.Name}}.asc
-echo "deb  $distribution $component" | sudo tee -a /etc/apt/sources.list.d/gitea.list
+				
sudo curl  -o /etc/apt/trusted.gpg.d/forgejo-{{$.PackageDescriptor.Owner.Name}}.asc
+echo "deb  $distribution $component" | sudo tee -a /etc/apt/sources.list.d/forgejo.list
 sudo apt update

{{.locale.Tr "packages.debian.registry.info" | Safe}}

@@ -16,7 +16,7 @@ sudo apt update
- +
diff --git a/templates/package/content/generic.tmpl b/templates/package/content/generic.tmpl index 01012a5f0a..e5093a4e56 100644 --- a/templates/package/content/generic.tmpl +++ b/templates/package/content/generic.tmpl @@ -11,7 +11,7 @@ curl - + diff --git a/templates/package/content/go.tmpl b/templates/package/content/go.tmpl index db25cc2b92..1bcfc4fee8 100644 --- a/templates/package/content/go.tmpl +++ b/templates/package/content/go.tmpl @@ -7,7 +7,7 @@
GOPROXY= go install {{$.PackageDescriptor.Package.Name}}@{{$.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/helm.tmpl b/templates/package/content/helm.tmpl index 44d01b6013..58ef7e1bfd 100644 --- a/templates/package/content/helm.tmpl +++ b/templates/package/content/helm.tmpl @@ -12,7 +12,7 @@ helm repo update
helm install {{.PackageDescriptor.Package.Name}} {{AppDomain}}/{{.PackageDescriptor.Package.Name}}
- +
diff --git a/templates/package/content/maven.tmpl b/templates/package/content/maven.tmpl index f5da72d711..7aa8dc9b18 100644 --- a/templates/package/content/maven.tmpl +++ b/templates/package/content/maven.tmpl @@ -40,7 +40,7 @@
mvn dependency:get -DremoteRepositories= -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}
- +
diff --git a/templates/package/content/npm.tmpl b/templates/package/content/npm.tmpl index c648d96162..5b68e3c878 100644 --- a/templates/package/content/npm.tmpl +++ b/templates/package/content/npm.tmpl @@ -15,7 +15,7 @@
"{{.PackageDescriptor.Package.Name}}": "{{.PackageDescriptor.Version.Version}}"
- +
diff --git a/templates/package/content/nuget.tmpl b/templates/package/content/nuget.tmpl index 2b3a74316c..dfafc83bd4 100644 --- a/templates/package/content/nuget.tmpl +++ b/templates/package/content/nuget.tmpl @@ -11,7 +11,7 @@
dotnet add package --source {{.PackageDescriptor.Owner.Name}} --version {{.PackageDescriptor.Version.Version}} {{.PackageDescriptor.Package.Name}}
- +
diff --git a/templates/package/content/pub.tmpl b/templates/package/content/pub.tmpl index 075d52cf49..fbe8e6f660 100644 --- a/templates/package/content/pub.tmpl +++ b/templates/package/content/pub.tmpl @@ -7,7 +7,7 @@
dart pub add {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}} --hosted-url=
- +
diff --git a/templates/package/content/pypi.tmpl b/templates/package/content/pypi.tmpl index 1534197219..3c7740eb45 100644 --- a/templates/package/content/pypi.tmpl +++ b/templates/package/content/pypi.tmpl @@ -7,7 +7,7 @@
pip install --index-url  {{.PackageDescriptor.Package.Name}}
- +
diff --git a/templates/package/content/rpm.tmpl b/templates/package/content/rpm.tmpl index fc7af639aa..bdf72dae2b 100644 --- a/templates/package/content/rpm.tmpl +++ b/templates/package/content/rpm.tmpl @@ -21,7 +21,7 @@ zypper install {{$.PackageDescriptor.Package.Name}}
- +
diff --git a/templates/package/content/rubygems.tmpl b/templates/package/content/rubygems.tmpl index f94968b094..007b6069e3 100644 --- a/templates/package/content/rubygems.tmpl +++ b/templates/package/content/rubygems.tmpl @@ -13,7 +13,7 @@ end
- +
diff --git a/templates/package/content/swift.tmpl b/templates/package/content/swift.tmpl index 92559491a9..64ea8de840 100644 --- a/templates/package/content/swift.tmpl +++ b/templates/package/content/swift.tmpl @@ -17,7 +17,7 @@
swift package resolve
- +
diff --git a/templates/package/content/vagrant.tmpl b/templates/package/content/vagrant.tmpl index 8590b44b37..f1843239d5 100644 --- a/templates/package/content/vagrant.tmpl +++ b/templates/package/content/vagrant.tmpl @@ -7,7 +7,7 @@
vagrant box add --box-version {{.PackageDescriptor.Version.Version}} ""
- +
diff --git a/templates/package/shared/cargo.tmpl b/templates/package/shared/cargo.tmpl index 8831cd8988..faf0f8d80e 100644 --- a/templates/package/shared/cargo.tmpl +++ b/templates/package/shared/cargo.tmpl @@ -18,7 +18,7 @@
- +
diff --git a/templates/package/shared/list.tmpl b/templates/package/shared/list.tmpl index afa360fd93..35dab8c695 100644 --- a/templates/package/shared/list.tmpl +++ b/templates/package/shared/list.tmpl @@ -45,7 +45,7 @@ {{$packagesUrl := URLJoin .Owner.HomeLink "-" "packages"}}

{{.locale.Tr "packages.empty.repo" $packagesUrl | Safe}}

{{end}} -

{{.locale.Tr "packages.empty.documentation" "https://docs.gitea.com/usage/packages/overview/" | Safe}}

+

{{.locale.Tr "packages.empty.documentation" "https://forgejo.org/docs/latest/user/packages/" | Safe}}

{{else}}

{{.locale.Tr "packages.filter.no_result"}}

diff --git a/templates/user/settings/packages.tmpl b/templates/user/settings/packages.tmpl index 304940feb8..f55ccc8e61 100644 --- a/templates/user/settings/packages.tmpl +++ b/templates/user/settings/packages.tmpl @@ -16,7 +16,7 @@
- +
From 8baab7c0c1b826884b02649ec5ccf34d01f0e9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Dachary?= Date: Fri, 21 Jul 2023 11:36:24 +0200 Subject: [PATCH 29/36] [BRANDING] add forgejo target to Makefile The gitea target is kept as is, for the sake of compatibility with build systems that rely on it. The forgejo target creates a hard link with forgejo. (cherry picked from commit ce156c7cb4265e3d94ad41db26d6a5be9667200e) (cherry picked from commit b2cb23282534cfdf756fcce3e494be756841a9d1) (cherry picked from commit 85543c22bdd3cf268c77055f644dad42ff4f456e) (cherry picked from commit 302955a20d3130ef83458810ca6368c612c0a76f) (cherry picked from commit 4b1be0858ef652ad79c69c1d6331884408cbc2cb) (cherry picked from commit afed1a6e202386588738a7af08562b9073a5f992) (cherry picked from commit e81304bcd167c2ca838b2c89db47c44c59a48543) (cherry picked from commit 479cd51a038b7f98f576dda946595885327082f7) --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 589dd48e1e..25e6db0d87 100644 --- a/Makefile +++ b/Makefile @@ -846,6 +846,9 @@ security-check: $(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ) CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ +forgejo: $(EXECUTABLE) + ln -f $(EXECUTABLE) forgejo + static-executable: $(GO_SOURCES) $(TAGS_PREREQ) CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags 'netgo osusergo $(TAGS)' -ldflags '-s -w -linkmode external -extldflags "-static" $(LDFLAGS)' -o $(EXECUTABLE) From b325b2653faa5e7069b1bf611363e91a6c403390 Mon Sep 17 00:00:00 2001 From: Rodion Borisov Date: Tue, 25 Jul 2023 02:55:51 +0300 Subject: [PATCH 30/36] [BRANDING] Replace links to GitHub with Codeberg guides about adding SSH/GPG keys (cherry picked from commit f409deabe6e45d9300b6195ec37868cdf3e3c65f) (cherry picked from commit a62a3d0cf6b9a0bd119739c69086f25d61a66bd3) (cherry picked from commit a28d2ddd5e4a0bff6a911f5c2cf1c4dedbea1fff) (cherry picked from commit 2f8ac92a1772f388f2b491dab92c097e9271602c) (cherry picked from commit d43c158a2fc68864898b4a9622462a5becf734ff) (cherry picked from commit a2fc2dd1e28c9ec555b67c2f0271ab83749ef709) (cherry picked from commit 00e6fa60d788d84c9a30f0fb3ef9f2ef7fcc5d52) (cherry picked from commit 350f14bc8a1d88a2b0f9aaec6fbb36ac6fa908c4) Conflicts: templates/user/settings/keys_gpg.tmpl templates/user/settings/keys_ssh.tmpl https://codeberg.org/forgejo/forgejo/pulls/1420 --- options/locale/locale_en-US.ini | 4 ++-- templates/user/settings/keys_gpg.tmpl | 2 +- templates/user/settings/keys_ssh.tmpl | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 932d7311f1..a107a16bd6 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -734,8 +734,8 @@ add_key = Add Key ssh_desc = These public SSH keys are associated with your account. The corresponding private keys allow full access to your repositories. principal_desc = These SSH certificate principals are associated with your account and allow full access to your repositories. gpg_desc = These public GPG keys are associated with your account. Keep your private keys safe as they allow commits to be verified. -ssh_helper = Need help? Have a look at GitHub's guide to create your own SSH keys or solve common problems you may encounter using SSH. -gpg_helper = Need help? Have a look at GitHub's guide about GPG. +ssh_helper = Need help? Have a look at the guide to create your own SSH keys or solve common problems you may encounter using SSH. +gpg_helper = Need help? Have a look at the guide about GPG. add_new_key = Add SSH Key add_new_gpg_key = Add GPG Key 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' diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl index 2ecebcd7c0..c27d330699 100644 --- a/templates/user/settings/keys_gpg.tmpl +++ b/templates/user/settings/keys_gpg.tmpl @@ -43,7 +43,7 @@

{{.locale.Tr "settings.gpg_desc"}}
- {{.locale.Tr "settings.gpg_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-commit-signature-verification#gpg-commit-signature-verification" | Str2html}} + {{.locale.Tr "settings.gpg_helper" "https://docs.codeberg.org/security/gpg-key/" | Str2html}}

{{range .GPGKeys}} diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl index 8419f72ff5..a0f7af0b29 100644 --- a/templates/user/settings/keys_ssh.tmpl +++ b/templates/user/settings/keys_ssh.tmpl @@ -31,7 +31,7 @@

{{.locale.Tr "settings.ssh_desc"}}
- {{.locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh" | Str2html}} + {{.locale.Tr "settings.ssh_helper" "https://docs.codeberg.org/security/ssh-key/" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh" | Str2html}}

{{if .DisableSSH}} From 30ade1ea0b6de3b634283bd3741b49abf37f9bf0 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 5 Aug 2023 21:58:30 +0200 Subject: [PATCH 31/36] [BRANDING] security.txt - The [security.txt](https://securitytxt.org/) is a standardized file to help with reporting security vulnerabilities, by having the most essential information served at `.well-known/security.txt`. - Brand this file to point to the Forgejo security team. - Resolves https://codeberg.org/forgejo/forgejo/issues/1192 (cherry picked from commit 7ca1d0ec87bc23881f59ce3ea04390bf508ec0fa) (cherry picked from commit ba974b016199cd279b8c7aca76a936910e9f4d69) (cherry picked from commit 966fbcdcfdc8027aa31fe46eafa229854fe120ad) (cherry picked from commit 8b9efebc6e5a211b64b003284bf3bb8c66c85662) (cherry picked from commit 91b1c84c1873b6e07ff7e700429a4fc6f6c1e3bf) --- public/.well-known/security.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/public/.well-known/security.txt b/public/.well-known/security.txt index 2cae3cbea4..f301a00542 100644 --- a/public/.well-known/security.txt +++ b/public/.well-known/security.txt @@ -1,6 +1,8 @@ -# This site is running a Gitea instance. -# Gitea related security problems could be reported to Gitea community. -# Site related security problems should be reported to this site's admin. -Contact: https://github.com/go-gitea/gitea/blob/main/SECURITY.md -Policy: https://github.com/go-gitea/gitea/blob/main/SECURITY.md +# This site is running a Forgejo instance. +# Forgejo-related security problems should be reported to the Forgejo security team. +# Site-related security problems should be reported to this site's admin. +Policy: https://codeberg.org/forgejo/forgejo/src/branch/forgejo/CONTRIBUTING.md +Contact: mailto:security@forgejo.org +Encryption: https://keys.openpgp.org/vks/v1/by-fingerprint/1B638BDF10969D627926B8D9F585D0F99E1FB56F Preferred-Languages: en +Expires: 2025-06-25T00:00:00Z From 191d96afe4198d3b6498aa21eaeb7686a59865bc Mon Sep 17 00:00:00 2001 From: Gusted Date: Wed, 9 Aug 2023 15:12:01 +0200 Subject: [PATCH 32/36] [BRANDING] Docker readme - Modify the README of the docker directory to point to the relevant docker files and documentation for Forgejo. (cherry picked from commit aca6371215c1bf95b6c0b19b9fadb797544adc48) (cherry picked from commit 0ba96b1bc4c4df84ce3dca9875ad4a9ac8f1f759) (cherry picked from commit 5c8e6b53f164dd16b527c603a3089735ff16df89) Conflicts: docker/README.md https://codeberg.org/forgejo/forgejo/pulls/1351 (cherry picked from commit b3121c8004f675b31482cdbd564f9a830be48acd) (cherry picked from commit 607f8704163bd24bfc7ff1d6a812b5e887746797) --- docker/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/README.md b/docker/README.md index a6d7c9a843..5f65c8c973 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,7 +1,7 @@ -# Gitea - Docker +# Forgejo - Docker -Dockerfile is found in root of repository. +The Dockerfile can be found in the root of repository. [Dockerfile](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/Dockerfile) & [Dockerfile.rootless](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/Dockerfile.rootless). -Docker image can be found on [docker hub](https://hub.docker.com/r/gitea/gitea) +The Docker image can be found on [Coddeberg](https://codeberg.org/forgejo/-/packages/container/forgejo/). -Documentation on using docker image can be found on [Gitea Docs site](https://docs.gitea.com/installation/install-with-docker-rootless) +Documentation on how you can use the docker image can be found on the [Forgejo documentation website](https://forgejo.org/docs/latest/admin/installation/#installation-with-docker). From 14d3ae7e3ae67dff3443db17e4373e5947ed6c6c Mon Sep 17 00:00:00 2001 From: firefly-cpp Date: Mon, 28 Aug 2023 23:11:04 +0200 Subject: [PATCH 33/36] [BRANDING] healthcheck/check.go (cherry picked from commit d703a236cebadc0186b7b2431b3b42a54b3d1f09) (cherry picked from commit d84ce3ff2098e9ba3c7241605ea25951dcb57ca6) (cherry picked from commit 2dbb8446069c79017dcc4a9921dffcb73594d02c) --- routers/web/healthcheck/check.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/healthcheck/check.go b/routers/web/healthcheck/check.go index ecb73a928f..e89498a8ae 100644 --- a/routers/web/healthcheck/check.go +++ b/routers/web/healthcheck/check.go @@ -105,7 +105,7 @@ func checkDatabase(ctx context.Context, checks checks) status { if !setting.EnableSQLite3 { st.Status = fail st.Time = getCheckTime() - log.Error("SQLite3 health check failed with error: %v", "this Gitea binary is built without SQLite3 enabled") + log.Error("SQLite3 health check failed with error: %v", "this Forgejo binary is built without SQLite3 enabled") } else { if _, err := os.Stat(setting.Database.Path); err != nil { st.Status = fail From a81e4e46f3b0e619cea959de5ffde2e811d6008e Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Tue, 29 Aug 2023 15:28:23 +0100 Subject: [PATCH 34/36] [BRANDING] s/Gitea/Forgejo/g in CLI output (cherry picked from commit 7543c126bbb78d5d29c253a88b56ccd2dd394928) (cherry picked from commit b66f422fc3b9018aa948a869045cb3684e80f5f2) --- cmd/actions.go | 2 +- cmd/cert.go | 2 +- cmd/docs.go | 2 +- cmd/doctor.go | 6 +++--- cmd/hook.go | 12 ++++++------ cmd/keys.go | 2 +- cmd/main.go | 2 +- cmd/manager_logging.go | 4 ++-- cmd/serv.go | 6 +++--- cmd/web.go | 18 +++++++++--------- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/cmd/actions.go b/cmd/actions.go index 052afb9ebc..6b9ce19d65 100644 --- a/cmd/actions.go +++ b/cmd/actions.go @@ -17,7 +17,7 @@ var ( CmdActions = &cli.Command{ Name: "actions", Usage: "", - Description: "Commands for managing Gitea Actions", + Description: "Commands for managing Forgejo Actions", Subcommands: []*cli.Command{ subcmdActionsGenRunnerToken, }, diff --git a/cmd/cert.go b/cmd/cert.go index 38241d71a3..bf83af389f 100644 --- a/cmd/cert.go +++ b/cmd/cert.go @@ -136,7 +136,7 @@ func runCert(c *cli.Context) error { SerialNumber: serialNumber, Subject: pkix.Name{ Organization: []string{"Acme Co"}, - CommonName: "Gitea", + CommonName: "Forgejo", }, NotBefore: notBefore, NotAfter: notAfter, diff --git a/cmd/docs.go b/cmd/docs.go index 605d02e3ef..1dc0980c00 100644 --- a/cmd/docs.go +++ b/cmd/docs.go @@ -15,7 +15,7 @@ import ( var CmdDocs = &cli.Command{ Name: "docs", Usage: "Output CLI documentation", - Description: "A command to output Gitea's CLI documentation, optionally to a file.", + Description: "A command to output Forgejo's CLI documentation, optionally to a file.", Action: runDocs, Flags: []cli.Flag{ &cli.BoolFlag{ diff --git a/cmd/doctor.go b/cmd/doctor.go index d040a3af1c..3230893fda 100644 --- a/cmd/doctor.go +++ b/cmd/doctor.go @@ -25,7 +25,7 @@ import ( var cmdDoctorCheck = &cli.Command{ Name: "check", Usage: "Diagnose and optionally fix problems", - Description: "A command to diagnose problems with the current Gitea instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.", + Description: "A command to diagnose problems with the current Forgejo instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.", Action: runDoctorCheck, Flags: []cli.Flag{ &cli.BoolFlag{ @@ -64,7 +64,7 @@ var cmdDoctorCheck = &cli.Command{ var CmdDoctor = &cli.Command{ Name: "doctor", Usage: "Diagnose and optionally fix problems", - Description: "A command to diagnose problems with the current Gitea instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.", + Description: "A command to diagnose problems with the current Forgejo instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.", Subcommands: []*cli.Command{ cmdDoctorCheck, @@ -83,7 +83,7 @@ var cmdRecreateTable = &cli.Command{ Usage: "Print SQL commands sent", }, }, - Description: `The database definitions Gitea uses change across versions, sometimes changing default values and leaving old unused columns. + Description: `The database definitions Forgejo uses change across versions, sometimes changing default values and leaving old unused columns. This command will cause Xorm to recreate tables, copying over the data and deleting the old table. diff --git a/cmd/hook.go b/cmd/hook.go index f38fd8831b..403f2c6ea4 100644 --- a/cmd/hook.go +++ b/cmd/hook.go @@ -172,9 +172,9 @@ func runHookPreReceive(c *cli.Context) error { if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 { if setting.OnlyAllowPushIfGiteaEnvironmentSet { - return fail(ctx, `Rejecting changes as Gitea environment not set. + return fail(ctx, `Rejecting changes as Forgejo environment not set. If you are pushing over SSH you must push with a key managed by -Gitea or set your environment appropriately.`, "") +Forgejo or set your environment appropriately.`, "") } return nil } @@ -316,9 +316,9 @@ func runHookPostReceive(c *cli.Context) error { if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 { if setting.OnlyAllowPushIfGiteaEnvironmentSet { - return fail(ctx, `Rejecting changes as Gitea environment not set. + return fail(ctx, `Rejecting changes as Forgejo environment not set. If you are pushing over SSH you must push with a key managed by -Gitea or set your environment appropriately.`, "") +Forgejo or set your environment appropriately.`, "") } return nil } @@ -485,9 +485,9 @@ func runHookProcReceive(c *cli.Context) error { if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 { if setting.OnlyAllowPushIfGiteaEnvironmentSet { - return fail(ctx, `Rejecting changes as Gitea environment not set. + return fail(ctx, `Rejecting changes as Forgejo environment not set. If you are pushing over SSH you must push with a key managed by -Gitea or set your environment appropriately.`, "") +Forgejo or set your environment appropriately.`, "") } return nil } diff --git a/cmd/keys.go b/cmd/keys.go index b846782529..94ccfd9852 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -17,7 +17,7 @@ import ( // CmdKeys represents the available keys sub-command var CmdKeys = &cli.Command{ Name: "keys", - Usage: "This command queries the Gitea database to get the authorized command for a given ssh key fingerprint", + Usage: "This command queries the Forgejo database to get the authorized command for a given ssh key fingerprint", Before: PrepareConsoleLoggerLevel(log.FATAL), Action: runKeys, Flags: []cli.Flag{ diff --git a/cmd/main.go b/cmd/main.go index d1a632fb83..6bc0ba515e 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -78,7 +78,7 @@ func appGlobalFlags() []cli.Flag { &cli.StringFlag{ Name: "work-path", Aliases: []string{"w"}, - Usage: "Set Gitea's working path (defaults to the Gitea's binary directory)", + Usage: "Set Forgejo's working path (defaults to the directory of the Forgejo binary)", }, } } diff --git a/cmd/manager_logging.go b/cmd/manager_logging.go index 7d34fc9ac2..2c701f2672 100644 --- a/cmd/manager_logging.go +++ b/cmd/manager_logging.go @@ -62,7 +62,7 @@ var ( Subcommands: []*cli.Command{ { Name: "pause", - Usage: "Pause logging (Gitea will buffer logs up to a certain point and will drop them after that point)", + Usage: "Pause logging (Forgejo will buffer logs up to a certain point and will drop them after that point)", Flags: []cli.Flag{ &cli.BoolFlag{ Name: "debug", @@ -80,7 +80,7 @@ var ( Action: runResumeLogging, }, { Name: "release-and-reopen", - Usage: "Cause Gitea to release and re-open files used for logging", + Usage: "Cause Forgejo to release and re-open files used for logging", Flags: []cli.Flag{ &cli.BoolFlag{ Name: "debug", diff --git a/cmd/serv.go b/cmd/serv.go index 55fa50cd3d..43e6eaba2b 100644 --- a/cmd/serv.go +++ b/cmd/serv.go @@ -103,12 +103,12 @@ func fail(ctx context.Context, userMessage, logMsgFmt string, args ...any) error // There appears to be a chance to cause a zombie process and failure to read the Exit status // if nothing is outputted on stdout. _, _ = fmt.Fprintln(os.Stdout, "") - _, _ = fmt.Fprintln(os.Stderr, "Gitea:", userMessage) + _, _ = fmt.Fprintln(os.Stderr, "Forgejo:", userMessage) if logMsgFmt != "" { logMsg := fmt.Sprintf(logMsgFmt, args...) if !setting.IsProd { - _, _ = fmt.Fprintln(os.Stderr, "Gitea:", logMsg) + _, _ = fmt.Fprintln(os.Stderr, "Forgejo:", logMsg) } if userMessage != "" { if unicode.IsPunct(rune(userMessage[len(userMessage)-1])) { @@ -143,7 +143,7 @@ func runServ(c *cli.Context) error { setup(ctx, c.Bool("debug")) if setting.SSH.Disabled { - println("Gitea: SSH has been disabled") + println("Forgejo: SSH has been disabled") return nil } diff --git a/cmd/web.go b/cmd/web.go index 01386251be..ef82486c1f 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -34,8 +34,8 @@ var PIDFile = "/run/gitea.pid" // CmdWeb represents the available web sub-command. var CmdWeb = &cli.Command{ Name: "web", - Usage: "Start Gitea web server", - Description: `Gitea web server is the only thing you need to run, + Usage: "Start the Forgejo web server", + Description: `The Forgejo web server is the only thing you need to run, and it takes care of all the other things for you`, Before: PrepareConsoleLoggerLevel(log.INFO), Action: runWeb, @@ -108,7 +108,7 @@ func createPIDFile(pidPath string) { } func showWebStartupMessage(msg string) { - log.Info("Gitea version: %s%s", setting.AppVer, setting.AppBuiltWith) + log.Info("Forgejo version: %s%s", setting.AppVer, setting.AppBuiltWith) log.Info("* RunMode: %s", setting.RunMode) log.Info("* AppPath: %s", setting.AppPath) log.Info("* WorkPath: %s", setting.AppWorkPath) @@ -136,13 +136,13 @@ func serveInstall(ctx *cli.Context) error { c := install.Routes() err := listen(c, false) if err != nil { - log.Critical("Unable to open listener for installer. Is Gitea already running?") + log.Critical("Unable to open listener for installer. Is Forgejo already running?") graceful.GetManager().DoGracefulShutdown() } select { case <-graceful.GetManager().IsShutdown(): <-graceful.GetManager().Done() - log.Info("PID: %d Gitea Web Finished", os.Getpid()) + log.Info("PID: %d Forgejo Web Finished", os.Getpid()) log.GetManager().Close() return err default: @@ -211,7 +211,7 @@ func serveInstalled(ctx *cli.Context) error { webRoutes := routers.NormalRoutes() err := listen(webRoutes, true) <-graceful.GetManager().Done() - log.Info("PID: %d Gitea Web Finished", os.Getpid()) + log.Info("PID: %d Forgejo Web Finished", os.Getpid()) log.GetManager().Close() return err } @@ -237,9 +237,9 @@ func runWeb(ctx *cli.Context) error { defer cancel() if os.Getppid() > 1 && len(os.Getenv("LISTEN_FDS")) > 0 { - log.Info("Restarting Gitea on PID: %d from parent PID: %d", os.Getpid(), os.Getppid()) + log.Info("Restarting Forgejo on PID: %d from parent PID: %d", os.Getpid(), os.Getppid()) } else { - log.Info("Starting Gitea on PID: %d", os.Getpid()) + log.Info("Starting Forgejo on PID: %d", os.Getpid()) } // Set pid file setting @@ -299,7 +299,7 @@ func listen(m http.Handler, handleRedirector bool) error { if setting.Protocol != setting.HTTPUnix && setting.Protocol != setting.FCGIUnix { listenAddr = net.JoinHostPort(listenAddr, setting.HTTPPort) } - _, _, finished := process.GetManager().AddTypedContext(graceful.GetManager().HammerContext(), "Web: Gitea Server", process.SystemProcessType, true) + _, _, finished := process.GetManager().AddTypedContext(graceful.GetManager().HammerContext(), "Web: Forgejo Server", process.SystemProcessType, true) defer finished() log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubURL) // This can be useful for users, many users do wrong to their config and get strange behaviors behind a reverse-proxy. From ed8101ba6cc87526554a69f58a49507a79eadb35 Mon Sep 17 00:00:00 2001 From: firefly-cpp Date: Tue, 29 Aug 2023 21:22:05 +0200 Subject: [PATCH 35/36] [BRANDING] Gitea->Forgejo in mailer code (cherry picked from commit b91afea4ff5e092452b5848900fc426b1c7289d5) (cherry picked from commit 5d7428167c8ee5f25fb719f32a561472ef1aee68) --- services/mailer/mail.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/mailer/mail.go b/services/mailer/mail.go index 50a2cc57d3..a90eb6ea38 100644 --- a/services/mailer/mail.go +++ b/services/mailer/mail.go @@ -61,7 +61,7 @@ func SendTestMail(email string) error { // No mail service configured return nil } - return gomail.Send(Sender, NewMessage(email, "Gitea Test Email!", "Gitea Test Email!").ToMessage()) + return gomail.Send(Sender, NewMessage(email, "Forgejo Test Email!", "Forgejo Test Email!").ToMessage()) } // sendUserMail sends a mail to the user From 133f2fc6cc2e977a5f7660ca4c214c92ac036421 Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Fri, 8 Sep 2023 21:10:22 +0530 Subject: [PATCH 36/36] [BRANDING] use 'Forgejo' for Discord, Packagist, and Slack webhooks Refs: https://codeberg.org/forgejo/forgejo/issues/1387 (cherry picked from commit 7dc3a05f5b9013a0696f071ebea4d2403c1c36a8) --- templates/repo/settings/webhook/discord.tmpl | 2 +- templates/repo/settings/webhook/packagist.tmpl | 2 +- templates/repo/settings/webhook/slack.tmpl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/repo/settings/webhook/discord.tmpl b/templates/repo/settings/webhook/discord.tmpl index 3d943c8219..3bb6dac667 100644 --- a/templates/repo/settings/webhook/discord.tmpl +++ b/templates/repo/settings/webhook/discord.tmpl @@ -8,7 +8,7 @@
- +
diff --git a/templates/repo/settings/webhook/packagist.tmpl b/templates/repo/settings/webhook/packagist.tmpl index b8033c1043..6e67b81f73 100644 --- a/templates/repo/settings/webhook/packagist.tmpl +++ b/templates/repo/settings/webhook/packagist.tmpl @@ -4,7 +4,7 @@ {{.CsrfTokenHtml}}
- +
diff --git a/templates/repo/settings/webhook/slack.tmpl b/templates/repo/settings/webhook/slack.tmpl index 335966a6d1..0dc2d1d45c 100644 --- a/templates/repo/settings/webhook/slack.tmpl +++ b/templates/repo/settings/webhook/slack.tmpl @@ -13,7 +13,7 @@
- +