1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-04 01:27:20 +00:00

Fix some trivial problems (#34579)

This commit is contained in:
wxiaoguang
2025-06-02 23:22:43 +08:00
committed by GitHub
parent d5bbaee64e
commit e8d8984f7c
8 changed files with 46 additions and 12 deletions

View File

@ -66,7 +66,7 @@ func getUserHeatmapData(ctx context.Context, user *user_model.User, team *organi
Select(groupBy+" AS timestamp, count(user_id) as contributions"). Select(groupBy+" AS timestamp, count(user_id) as contributions").
Table("action"). Table("action").
Where(cond). Where(cond).
And("created_unix > ?", timeutil.TimeStampNow()-31536000). And("created_unix > ?", timeutil.TimeStampNow()-(366+7)*86400). // (366+7) days to include the first week for the heatmap
GroupBy(groupByName). GroupBy(groupByName).
OrderBy("timestamp"). OrderBy("timestamp").
Find(&hdata) Find(&hdata)

View File

@ -97,17 +97,17 @@ func GetLanguageStats(repo *git.Repository, commitID string) (map[string]int64,
} }
isVendored := optional.None[bool]() isVendored := optional.None[bool]()
isGenerated := optional.None[bool]()
isDocumentation := optional.None[bool]() isDocumentation := optional.None[bool]()
isDetectable := optional.None[bool]() isDetectable := optional.None[bool]()
attrs, err := checker.CheckPath(f.Name()) attrs, err := checker.CheckPath(f.Name())
attrLinguistGenerated := optional.None[bool]()
if err == nil { if err == nil {
if isVendored = attrs.GetVendored(); isVendored.ValueOrDefault(false) { if isVendored = attrs.GetVendored(); isVendored.ValueOrDefault(false) {
continue continue
} }
if isGenerated = attrs.GetGenerated(); isGenerated.ValueOrDefault(false) { if attrLinguistGenerated = attrs.GetGenerated(); attrLinguistGenerated.ValueOrDefault(false) {
continue continue
} }
@ -169,7 +169,15 @@ func GetLanguageStats(repo *git.Repository, commitID string) (map[string]int64,
return nil, err return nil, err
} }
} }
if !isGenerated.Has() && enry.IsGenerated(f.Name(), content) {
// if "generated" attribute is set, use it, otherwise use enry.IsGenerated to guess
var isGenerated bool
if attrLinguistGenerated.Has() {
isGenerated = attrLinguistGenerated.Value()
} else {
isGenerated = enry.IsGenerated(f.Name(), content)
}
if isGenerated {
continue continue
} }

View File

@ -103,7 +103,10 @@ func logPrinter(logger log.Logger) func(trigger Event, record *requestRecord) {
status = v.WrittenStatus() status = v.WrittenStatus()
} }
logf := logInfo logf := logInfo
if strings.HasPrefix(req.RequestURI, "/assets/") { // lower the log level for some specific requests, in most cases these logs are not useful
if strings.HasPrefix(req.RequestURI, "/assets/") /* static assets */ ||
req.RequestURI == "/user/events" /* Server-Sent Events (SSE) handler */ ||
req.RequestURI == "/api/actions/runner.v1.RunnerService/FetchTask" /* Actions Runner polling */ {
logf = logTrace logf = logTrace
} }
message := completedMessage message := completedMessage

View File

@ -721,7 +721,7 @@ func serveBlob(ctx *context.Context, pfd *packages_model.PackageFileDescriptor)
if u != nil { if u != nil {
headers.Status = http.StatusTemporaryRedirect headers.Status = http.StatusTemporaryRedirect
headers.Location = u.String() headers.Location = u.String()
headers.ContentLength = 0 // do not set Content-Length for redirect responses
setResponseHeaders(ctx.Resp, headers) setResponseHeaders(ctx.Resp, headers)
return return
} }

View File

@ -42,10 +42,8 @@ type expansion struct {
var defaultTransformers = []transformer{ var defaultTransformers = []transformer{
{Name: "SNAKE", Transform: xstrings.ToSnakeCase}, {Name: "SNAKE", Transform: xstrings.ToSnakeCase},
{Name: "KEBAB", Transform: xstrings.ToKebabCase}, {Name: "KEBAB", Transform: xstrings.ToKebabCase},
{Name: "CAMEL", Transform: func(str string) string { {Name: "CAMEL", Transform: xstrings.ToCamelCase},
return xstrings.FirstRuneToLower(xstrings.ToCamelCase(str)) {Name: "PASCAL", Transform: xstrings.ToPascalCase},
}},
{Name: "PASCAL", Transform: xstrings.ToCamelCase},
{Name: "LOWER", Transform: strings.ToLower}, {Name: "LOWER", Transform: strings.ToLower},
{Name: "UPPER", Transform: strings.ToUpper}, {Name: "UPPER", Transform: strings.ToUpper},
{Name: "TITLE", Transform: util.ToTitleCase}, {Name: "TITLE", Transform: util.ToTitleCase},

View File

@ -7,6 +7,7 @@ import (
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
var giteaTemplate = []byte(` var giteaTemplate = []byte(`
@ -65,3 +66,26 @@ func TestFileNameSanitize(t *testing.T) {
assert.Equal(t, "_", fileNameSanitize("\u0000")) assert.Equal(t, "_", fileNameSanitize("\u0000"))
assert.Equal(t, "目标", fileNameSanitize("目标")) assert.Equal(t, "目标", fileNameSanitize("目标"))
} }
func TestTransformers(t *testing.T) {
cases := []struct {
name string
expected string
}{
{"SNAKE", "abc_def_xyz"},
{"KEBAB", "abc-def-xyz"},
{"CAMEL", "abcDefXyz"},
{"PASCAL", "AbcDefXyz"},
{"LOWER", "abc_def-xyz"},
{"UPPER", "ABC_DEF-XYZ"},
{"TITLE", "Abc_def-Xyz"},
}
input := "Abc_Def-XYZ"
assert.Len(t, defaultTransformers, len(cases))
for i, c := range cases {
tf := defaultTransformers[i]
require.Equal(t, c.name, tf.Name)
assert.Equal(t, c.expected, tf.Transform(input), "case %s", c.name)
}
}

View File

@ -47,7 +47,7 @@
<h3>{{ctx.Locale.Tr "repo.create_new_repo_command"}}</h3> <h3>{{ctx.Locale.Tr "repo.create_new_repo_command"}}</h3>
<div class="markup"> <div class="markup">
<pre><code>touch README.md <pre><code>touch README.md
git init git init{{if ne .Repository.ObjectFormatName "sha1"}} --object-format={{.Repository.ObjectFormatName}}{{end}}{{/* for sha256 repo, it needs to set "object-format" explicitly*/}}
{{if ne .Repository.DefaultBranch "master"}}git checkout -b {{.Repository.DefaultBranch}}{{end}} {{if ne .Repository.DefaultBranch "master"}}git checkout -b {{.Repository.DefaultBranch}}{{end}}
git add README.md git add README.md
git commit -m "first commit" git commit -m "first commit"

View File

@ -439,7 +439,8 @@ export default defineComponent({
}); });
</script> </script>
<template> <template>
<div class="ui container action-view-container"> <!-- make the view container full width to make users easier to read logs -->
<div class="ui fluid container">
<div class="action-view-header"> <div class="action-view-header">
<div class="action-info-summary"> <div class="action-info-summary">
<div class="action-info-summary-title"> <div class="action-info-summary-title">