These changes are quite independent and trivial, so I don't want to open too many PRs. * https://github.com/go-gitea/gitea/pull/29882#discussion_r1529607091 * the `f.Close` should be called properly * the error message could be more meaningful (https://github.com/go-gitea/gitea/pull/29882#pullrequestreview-1942557935) * https://github.com/go-gitea/gitea/pull/29859#pullrequestreview-1942324716 * the new translation strings don't take arguments * https://github.com/go-gitea/gitea/pull/28710#discussion_r1443778807 * stale for long time * #28140 * a form was forgotten to be changed to work with backend codetags/v1.22.0-rc0
@@ -139,6 +139,8 @@ func RegeneratePublicKeys(ctx context.Context, t io.StringWriter) error { | |||
if err != nil { | |||
return err | |||
} | |||
defer f.Close() | |||
scanner := bufio.NewScanner(f) | |||
for scanner.Scan() { | |||
line := scanner.Text() | |||
@@ -148,15 +150,12 @@ func RegeneratePublicKeys(ctx context.Context, t io.StringWriter) error { | |||
} | |||
_, err = t.WriteString(line + "\n") | |||
if err != nil { | |||
f.Close() | |||
return err | |||
} | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
return fmt.Errorf("scan: %w", err) | |||
if err = scanner.Err(); err != nil { | |||
return fmt.Errorf("RegeneratePublicKeys scan: %w", err) | |||
} | |||
f.Close() | |||
} | |||
return nil | |||
} |
@@ -100,7 +100,7 @@ func ReadLogs(ctx context.Context, inStorage bool, filename string, offset, limi | |||
} | |||
if err := scanner.Err(); err != nil { | |||
return nil, fmt.Errorf("scan: %w", err) | |||
return nil, fmt.Errorf("ReadLogs scan: %w", err) | |||
} | |||
return rows, nil |
@@ -397,9 +397,8 @@ func (c *Commit) GetSubModules() (*ObjectCache, error) { | |||
} | |||
} | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
return nil, fmt.Errorf("scan: %w", err) | |||
if err = scanner.Err(); err != nil { | |||
return nil, fmt.Errorf("GetSubModules scan: %w", err) | |||
} | |||
return c.submoduleCache, nil |
@@ -124,9 +124,9 @@ func (repo *Repository) GetCodeActivityStats(fromTime time.Time, branch string) | |||
} | |||
} | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
return fmt.Errorf("scan: %w", err) | |||
if err = scanner.Err(); err != nil { | |||
_ = stdoutReader.Close() | |||
return fmt.Errorf("GetCodeActivityStats scan: %w", err) | |||
} | |||
a := make([]*CodeActivityAuthor, 0, len(authors)) | |||
for _, v := range authors { |
@@ -124,9 +124,8 @@ func (Renderer) fallbackRender(input io.Reader, tmpBlock *bufio.Writer) error { | |||
return err | |||
} | |||
} | |||
err = scan.Err() | |||
if err != nil { | |||
return fmt.Errorf("scan: %w", err) | |||
if err = scan.Err(); err != nil { | |||
return fmt.Errorf("fallbackRender scan: %w", err) | |||
} | |||
_, err = tmpBlock.WriteString("</pre>") |
@@ -980,9 +980,8 @@ func getExcerptLines(commit *git.Commit, filePath string, idxLeft, idxRight, chu | |||
} | |||
diffLines = append(diffLines, diffLine) | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
return nil, fmt.Errorf("scan: %w", err) | |||
if err = scanner.Err(); err != nil { | |||
return nil, fmt.Errorf("getExcerptLines scan: %w", err) | |||
} | |||
return diffLines, nil | |||
} |
@@ -333,9 +333,9 @@ func editFilePost(ctx *context.Context, form forms.EditRepoFileForm, isNewFile b | |||
ctx.Error(http.StatusInternalServerError, err.Error()) | |||
} | |||
} else if models.IsErrCommitIDDoesNotMatch(err) { | |||
ctx.RenderWithErr(ctx.Tr("repo.editor.commit_id_not_matching", ctx.Repo.RepoLink+"/compare/"+util.PathEscapeSegments(form.LastCommit)+"..."+util.PathEscapeSegments(ctx.Repo.CommitID)), tplEditFile, &form) | |||
ctx.RenderWithErr(ctx.Tr("repo.editor.commit_id_not_matching"), tplEditFile, &form) | |||
} else if git.IsErrPushOutOfDate(err) { | |||
ctx.RenderWithErr(ctx.Tr("repo.editor.push_out_of_date", ctx.Repo.RepoLink+"/compare/"+util.PathEscapeSegments(form.LastCommit)+"..."+util.PathEscapeSegments(form.NewBranchName)), tplEditFile, &form) | |||
ctx.RenderWithErr(ctx.Tr("repo.editor.push_out_of_date"), tplEditFile, &form) | |||
} else if git.IsErrPushRejected(err) { | |||
errPushRej := err.(*git.ErrPushRejected) | |||
if len(errPushRej.Message) == 0 { |
@@ -109,6 +109,8 @@ func regeneratePrincipalKeys(ctx context.Context, t io.StringWriter) error { | |||
if err != nil { | |||
return err | |||
} | |||
defer f.Close() | |||
scanner := bufio.NewScanner(f) | |||
for scanner.Scan() { | |||
line := scanner.Text() | |||
@@ -118,15 +120,12 @@ func regeneratePrincipalKeys(ctx context.Context, t io.StringWriter) error { | |||
} | |||
_, err = t.WriteString(line + "\n") | |||
if err != nil { | |||
f.Close() | |||
return err | |||
} | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
return fmt.Errorf("scan: %w", err) | |||
if err = scanner.Err(); err != nil { | |||
return fmt.Errorf("regeneratePrincipalKeys scan: %w", err) | |||
} | |||
f.Close() | |||
} | |||
return nil | |||
} |
@@ -51,11 +51,11 @@ func checkAuthorizedKeys(ctx context.Context, logger log.Logger, autofix bool) e | |||
} | |||
linesInAuthorizedKeys.Add(line) | |||
} | |||
err = scanner.Err() | |||
if err != nil { | |||
if err = scanner.Err(); err != nil { | |||
return fmt.Errorf("scan: %w", err) | |||
} | |||
f.Close() | |||
// although there is a "defer close" above, here close explicitly before the generating, because it needs to open the file for writing again | |||
_ = f.Close() | |||
// now we regenerate and check if there are any lines missing | |||
regenerated := &bytes.Buffer{} |
@@ -374,17 +374,15 @@ | |||
*/}} | |||
{{if and $.StillCanManualMerge (not $showGeneralMergeForm)}} | |||
<div class="divider"></div> | |||
<div class="ui form"> | |||
<form action="{{.Link}}/merge" method="post"> | |||
{{.CsrfTokenHtml}} | |||
<div class="field"> | |||
<input type="text" name="merge_commit_id" placeholder="{{ctx.Locale.Tr "repo.pulls.merge_commit_id"}}"> | |||
</div> | |||
<button class="ui red button" type="submit" name="do" value="manually-merged"> | |||
{{ctx.Locale.Tr "repo.pulls.merge_manually"}} | |||
</button> | |||
</form> | |||
</div> | |||
<form class="ui form form-fetch-action" action="{{.Link}}/merge" method="post">{{/* another similar form is in PullRequestMergeForm.vue*/}} | |||
{{.CsrfTokenHtml}} | |||
<div class="field"> | |||
<input type="text" name="merge_commit_id" placeholder="{{ctx.Locale.Tr "repo.pulls.merge_commit_id"}}"> | |||
</div> | |||
<button class="ui red button" type="submit" name="do" value="manually-merged"> | |||
{{ctx.Locale.Tr "repo.pulls.merge_manually"}} | |||
</button> | |||
</form> | |||
{{end}} | |||
{{if and .Issue.PullRequest.HeadRepo (not .Issue.PullRequest.HasMerged) (not .Issue.IsClosed)}} |
@@ -1,14 +1,10 @@ | |||
{{template "base/head" .}} | |||
<div role="main" aria-label="{{.Title}}" class="page-content ui container center tw-w-screen {{if .IsRepo}}repository{{end}}"> | |||
<div role="main" aria-label="{{.Title}}" class="page-content {{if .IsRepo}}repository{{end}}"> | |||
{{if .IsRepo}}{{template "repo/header" .}}{{end}} | |||
<div class="ui container center"> | |||
<p style="margin-top: 100px"><img src="{{AssetUrlPrefix}}/img/404.png" alt="404"></p> | |||
<div class="ui container tw-text-center"> | |||
<img class="tw-max-w-[80vw] tw-py-16" src="{{AssetUrlPrefix}}/img/404.png" alt="404"> | |||
<p>{{if .NotFoundPrompt}}{{.NotFoundPrompt}}{{else}}{{ctx.Locale.Tr "error404"}}{{end}}</p> | |||
{{if .NotFoundGoBackURL}}<a class="ui button green" href="{{.NotFoundGoBackURL}}">{{ctx.Locale.Tr "go_back"}}</a>{{end}} | |||
<div class="divider"></div> | |||
<br> | |||
{{if .ShowFooterVersion}}<p>{{ctx.Locale.Tr "admin.config.app_ver"}}: {{AppVer}}</p>{{end}} | |||
{{if .NotFoundGoBackURL}}<a class="ui button" href="{{.NotFoundGoBackURL}}">{{ctx.Locale.Tr "go_back"}}</a>{{end}} | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -94,6 +94,7 @@ export default { | |||
<!-- eslint-disable-next-line vue/no-v-html --> | |||
<div v-if="mergeForm.hasPendingPullRequestMerge" v-html="mergeForm.hasPendingPullRequestMergeTip" class="ui info message"/> | |||
<!-- another similar form is in pull.tmpl (manual merge)--> | |||
<form class="ui form form-fetch-action" v-if="showActionForm" :action="mergeForm.baseLink+'/merge'" method="post"> | |||
<input type="hidden" name="_csrf" :value="csrfToken"> | |||
<input type="hidden" name="head_commit_id" v-model="mergeForm.pullHeadCommitID"> |