aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/setting/cron_test.go53
-rw-r--r--services/cron/tasks_extended.go43
-rw-r--r--services/cron/tasks_extended_test.go51
-rw-r--r--web_src/css/markup/content.css3
-rw-r--r--web_src/css/repo.css12
5 files changed, 128 insertions, 34 deletions
diff --git a/modules/setting/cron_test.go b/modules/setting/cron_test.go
index 39a228068a..53996b5de9 100644
--- a/modules/setting/cron_test.go
+++ b/modules/setting/cron_test.go
@@ -41,3 +41,56 @@ EXTEND = true
assert.Equal(t, "white rabbit", extended.Second)
assert.True(t, extended.Extend)
}
+
+// Test_getCronSettings2 tests that getCronSettings can not handle two levels of embedding
+func Test_getCronSettings2(t *testing.T) {
+ type BaseStruct struct {
+ Enabled bool
+ RunAtStart bool
+ Schedule string
+ }
+
+ type Extended struct {
+ BaseStruct
+ Extend bool
+ }
+ type Extended2 struct {
+ Extended
+ Third string
+ }
+
+ iniStr := `
+[cron.test]
+ENABLED = TRUE
+RUN_AT_START = TRUE
+SCHEDULE = @every 1h
+EXTEND = true
+THIRD = white rabbit
+`
+ cfg, err := NewConfigProviderFromData(iniStr)
+ assert.NoError(t, err)
+
+ extended := &Extended2{
+ Extended: Extended{
+ BaseStruct: BaseStruct{
+ Enabled: false,
+ RunAtStart: false,
+ Schedule: "@every 72h",
+ },
+ Extend: false,
+ },
+ Third: "black rabbit",
+ }
+
+ _, err = getCronSettings(cfg, "test", extended)
+ assert.NoError(t, err)
+
+ // This confirms the first level of embedding works
+ assert.Equal(t, "white rabbit", extended.Third)
+ assert.True(t, extended.Extend)
+
+ // This confirms 2 levels of embedding doesn't work
+ assert.False(t, extended.Enabled)
+ assert.False(t, extended.RunAtStart)
+ assert.Equal(t, "@every 72h", extended.Schedule)
+}
diff --git a/services/cron/tasks_extended.go b/services/cron/tasks_extended.go
index 0018c5facc..3747111984 100644
--- a/services/cron/tasks_extended.go
+++ b/services/cron/tasks_extended.go
@@ -171,34 +171,35 @@ func registerDeleteOldSystemNotices() {
})
}
+type GCLFSConfig struct {
+ BaseConfig
+ OlderThan time.Duration
+ LastUpdatedMoreThanAgo time.Duration
+ NumberToCheckPerRepo int64
+ ProportionToCheckPerRepo float64
+}
+
func registerGCLFS() {
if !setting.LFS.StartServer {
return
}
- type GCLFSConfig struct {
- OlderThanConfig
- LastUpdatedMoreThanAgo time.Duration
- NumberToCheckPerRepo int64
- ProportionToCheckPerRepo float64
- }
RegisterTaskFatal("gc_lfs", &GCLFSConfig{
- OlderThanConfig: OlderThanConfig{
- BaseConfig: BaseConfig{
- Enabled: false,
- RunAtStart: false,
- Schedule: "@every 24h",
- },
- // Only attempt to garbage collect lfs meta objects older than a week as the order of git lfs upload
- // and git object upload is not necessarily guaranteed. It's possible to imagine a situation whereby
- // an LFS object is uploaded but the git branch is not uploaded immediately, or there are some rapid
- // changes in new branches that might lead to lfs objects becoming temporarily unassociated with git
- // objects.
- //
- // It is likely that a week is potentially excessive but it should definitely be enough that any
- // unassociated LFS object is genuinely unassociated.
- OlderThan: 24 * time.Hour * 7,
+ BaseConfig: BaseConfig{
+ Enabled: false,
+ RunAtStart: false,
+ Schedule: "@every 24h",
},
+ // Only attempt to garbage collect lfs meta objects older than a week as the order of git lfs upload
+ // and git object upload is not necessarily guaranteed. It's possible to imagine a situation whereby
+ // an LFS object is uploaded but the git branch is not uploaded immediately, or there are some rapid
+ // changes in new branches that might lead to lfs objects becoming temporarily unassociated with git
+ // objects.
+ //
+ // It is likely that a week is potentially excessive but it should definitely be enough that any
+ // unassociated LFS object is genuinely unassociated.
+ OlderThan: 24 * time.Hour * 7,
+
// Only GC things that haven't been looked at in the past 3 days
LastUpdatedMoreThanAgo: 24 * time.Hour * 3,
NumberToCheckPerRepo: 100,
diff --git a/services/cron/tasks_extended_test.go b/services/cron/tasks_extended_test.go
new file mode 100644
index 0000000000..a3d40630a3
--- /dev/null
+++ b/services/cron/tasks_extended_test.go
@@ -0,0 +1,51 @@
+// Copyright 2025 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package cron
+
+import (
+ "testing"
+ "time"
+
+ "code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/test"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_GCLFSConfig(t *testing.T) {
+ cfg, err := setting.NewConfigProviderFromData(`
+[cron.gc_lfs]
+ENABLED = true
+RUN_AT_START = true
+SCHEDULE = "@every 2h"
+OLDER_THAN = "1h"
+LAST_UPDATED_MORE_THAN_AGO = "7h"
+NUMBER_TO_CHECK_PER_REPO = 10
+PROPORTION_TO_CHECK_PER_REPO = 0.1
+`)
+ assert.NoError(t, err)
+ defer test.MockVariableValue(&setting.CfgProvider, cfg)()
+
+ config := &GCLFSConfig{
+ BaseConfig: BaseConfig{
+ Enabled: false,
+ RunAtStart: false,
+ Schedule: "@every 24h",
+ },
+ OlderThan: 24 * time.Hour * 7,
+ LastUpdatedMoreThanAgo: 24 * time.Hour * 3,
+ NumberToCheckPerRepo: 100,
+ ProportionToCheckPerRepo: 0.6,
+ }
+
+ _, err = setting.GetCronSettings("gc_lfs", config)
+ assert.NoError(t, err)
+ assert.True(t, config.Enabled)
+ assert.True(t, config.RunAtStart)
+ assert.Equal(t, "@every 2h", config.Schedule)
+ assert.Equal(t, 1*time.Hour, config.OlderThan)
+ assert.Equal(t, 7*time.Hour, config.LastUpdatedMoreThanAgo)
+ assert.Equal(t, int64(10), config.NumberToCheckPerRepo)
+ assert.InDelta(t, 0.1, config.ProportionToCheckPerRepo, 0.001)
+}
diff --git a/web_src/css/markup/content.css b/web_src/css/markup/content.css
index c6a89edf25..14d95ca726 100644
--- a/web_src/css/markup/content.css
+++ b/web_src/css/markup/content.css
@@ -1,6 +1,6 @@
.markup {
overflow: hidden;
- font-size: 16px;
+ font-size: 14px; /* 14px for comments, overridden to 16px for .file-view below. */
line-height: 1.5 !important;
overflow-wrap: break-word;
}
@@ -318,6 +318,7 @@ In markup content, we always use bottom margin for all elements */
.file-view.markup {
padding: 1em 2em;
+ font-size: 16px;
}
.file-view.markup:has(.file-not-rendered-prompt) {
diff --git a/web_src/css/repo.css b/web_src/css/repo.css
index 5238e3a2e5..9f4fa51881 100644
--- a/web_src/css/repo.css
+++ b/web_src/css/repo.css
@@ -300,10 +300,6 @@ td .commit-summary {
min-width: 100px;
}
-.repository.new.issue .comment.form .content .markup {
- font-size: 14px;
-}
-
.repository.view.issue .instruct-toggle {
display: inline-block;
}
@@ -630,10 +626,6 @@ td .commit-summary {
background: var(--color-light);
}
-.repository.view.issue .comment-list .comment .markup {
- font-size: 14px;
-}
-
.repository.view.issue .comment-list .comment .no-content {
color: var(--color-text-light-2);
font-style: italic;
@@ -723,10 +715,6 @@ td .commit-summary {
text-align: center;
}
-.repository.compare.pull .markup {
- font-size: 14px;
-}
-
.repository.branches .commit-divergence .bar-group {
position: relative;
float: left;