Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect broken git hooks #29494

Merged
merged 13 commits into from
Mar 6, 2024
1 change: 1 addition & 0 deletions options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2591,6 +2591,7 @@ find_file.no_matching = No matching file found
error.csv.too_large = Can't render this file because it is too large.
error.csv.unexpected = Can't render this file because it contains an unexpected character in line %d and column %d.
error.csv.invalid_field_count = Can't render this file because it has a wrong number of fields in line %d.
error.broken_git_hook = Git hooks of this repository seem to be broken. Please follow the <a target="_blank" rel="noreferrer" href="https://docs.gitea.com/help/faq#push-hook--webhook-arent-running">documentation</a> to fix them, then push some commits to refresh the status.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer including the link as translation parameter instead of hardcoded, i.e. to be able to easily change it when the link changes, and to prevent translation errors.

Copy link
Contributor

@wxiaoguang wxiaoguang Feb 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, there is a longstanding problem: non-English translation would (might) NEVER be updated ....

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-> #29500

Copy link
Member Author

@wolfogre wolfogre Mar 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can leave it to #29500, and follow the current way of other translations for now.

Copy link
Member Author

@wolfogre wolfogre Mar 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about 452afc2.

Why "Please follow the <a target="_blank" rel="noreferrer" href="%s">documentation</a> to fix them" instead of:

  • "Please follow the %s to fix them": it has missed the word "documentation".
  • "Please follow the %[1]sdocumentation%[2]s to fix them": it could be very difficult for translators to understand what it is unless they have read the code.


[graphs]
component_loading = Loading %s...
Expand Down
23 changes: 23 additions & 0 deletions routers/web/repo/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -1006,6 +1006,8 @@ func renderHomeCode(ctx *context.Context) {
return
}

checkOutdatedBranch(ctx)

checkCitationFile(ctx, entry)
if ctx.Written() {
return
Expand Down Expand Up @@ -1072,6 +1074,27 @@ func renderHomeCode(ctx *context.Context) {
ctx.HTML(http.StatusOK, tplRepoHome)
}

func checkOutdatedBranch(ctx *context.Context) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkGitHooksAreWorking?

Copy link
Member Author

@wolfogre wolfogre Mar 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, since it can only say "git hooks seem to be broken", it's also possible for other reasons to cause outdated branches.

wolfogre marked this conversation as resolved.
Show resolved Hide resolved
// get the head commit of the branch since ctx.Repo.CommitID is not always the head commit of `ctx.Repo.BranchName`
commit, err := ctx.Repo.GitRepo.GetBranchCommit(ctx.Repo.BranchName)
if err != nil {
log.Error("GetBranchCommitID: %v", err)
// Don't return an error page, as it can be rechecked the next time the user opens the page.
return
}

dbBranch, err := git_model.GetBranch(ctx, ctx.Repo.Repository.ID, ctx.Repo.BranchName)
if err != nil {
log.Error("GetBranch: %v", err)
// Don't return an error page, as it can be rechecked the next time the user opens the page.
return
}

if dbBranch.CommitID != commit.ID.String() {
ctx.Flash.Warning(ctx.Tr("repo.error.broken_git_hook"), true)
}
}

// RenderUserCards render a page show users according the input template
func RenderUserCards(ctx *context.Context, total int, getter func(opts db.ListOptions) ([]*user_model.User, error), tpl base.TplName) {
page := ctx.FormInt("page")
Expand Down
Loading