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

Fix wrong display of recently pushed notification #25812

Merged

Conversation

yp05327
Copy link
Contributor

@yp05327 yp05327 commented Jul 10, 2023

There's a bug in #25715:
If user pushed a commit into another repo with same branch name, the no-related repo will display the recently pushed notification incorrectly.
It is simple to fix this, we should match the repo id in the sql query.

image
The latest commit is 2 weeks ago.
image

The notification comes from another repo with same branch name:
image

After:
In forked repo:
image
New PR Link will redirect to the original repo:
image
In the original repo:
image
New PR Link:
image

In the same repo:
image
New PR Link:
image

08/15 Update:
Follow #26257, added permission check and logic fix mentioned in #26257 (comment)

2024/04/25 Update:
Fix #30611

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Jul 10, 2023
@pull-request-size pull-request-size bot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jul 10, 2023
@yp05327 yp05327 requested a review from lunny July 10, 2023 08:36
@lunny
Copy link
Member

lunny commented Jul 10, 2023

duplicated with #25795

@silverwind
Copy link
Member

It does sound like it solves a different issue.

@yp05327
Copy link
Contributor Author

yp05327 commented Jul 10, 2023

Have no enough time to test this PR, I will test it later.

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Jul 10, 2023
@@ -391,7 +391,7 @@ func FindRecentlyPushedNewBranches(ctx context.Context, repoID, userID int64) (B
"issue.is_closed": false,
})
err := db.GetEngine(ctx).
Where("pusher_id=? AND is_deleted=?", userID, false).
Where("repo_id=? AND pusher_id=? AND is_deleted=?", repoID, userID, false).
Copy link
Member

Choose a reason for hiding this comment

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

The problem I see with this is the following:
Now, you won't be able to see this message in forks.
I've thought about the logic in the previous PR and thought it seems sensible.
While I can also see your problem, the question is now which of the two is better?
Or is there a third approach to still include forks, i.e. additionally storing a ForkedFromID or something like that?

Copy link
Member

Choose a reason for hiding this comment

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

I think it's difficult to get all forked repositories. Maybe only the first level forked?

Copy link
Member

Choose a reason for hiding this comment

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

I meant the other way round as it is a one-to-n relation: Each fork only has a single parent, so we can check for repoID = fork or parent.

@yp05327 yp05327 marked this pull request as draft July 10, 2023 23:48
@pull-request-size pull-request-size bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Jul 11, 2023
@yp05327
Copy link
Contributor Author

yp05327 commented Jul 11, 2023

#25795 not looks good to me. It is not good to detect branch by name, as we may have same branch names in different repos.
Instead, I used latest commit id, then you can also avoid display notification from both no-change branch in forked repo and the original repo.

Added some screenshots to the pr description.

@yp05327 yp05327 marked this pull request as ready for review July 11, 2023 01:52
@pull-request-size pull-request-size bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jul 11, 2023
@yp05327 yp05327 requested a review from lunny July 11, 2023 05:26
@GiteaBot GiteaBot added lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jul 11, 2023
@yp05327
Copy link
Contributor Author

yp05327 commented Jul 11, 2023

We can add a test for this new feature later.
Maybe not in this PR, it is not easy to do this, as we need to make many changes in db and git data.

@yp05327 yp05327 force-pushed the fix-incorrect-recently-pushed-new-branches-check branch from 59b9311 to 8cea058 Compare May 21, 2024 04:14
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels May 21, 2024
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label May 21, 2024
@lunny lunny enabled auto-merge (squash) May 21, 2024 14:44
@lunny lunny disabled auto-merge May 21, 2024 16:00
@lunny lunny enabled auto-merge (squash) May 21, 2024 16:06
@lunny lunny merged commit daf2a4c into go-gitea:main May 21, 2024
26 checks passed
@GiteaBot
Copy link
Contributor

I was unable to create a backport for 1.22. @yp05327, please send one manually. 🍵

go run ./contrib/backport 25812
...  // fix git conflicts if any
go run ./contrib/backport --continue

@GiteaBot GiteaBot added backport/manual No power to the bots! Create your backport yourself! and removed reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. labels May 21, 2024
yp05327 added a commit to yp05327/gitea that referenced this pull request May 22, 2024
There's a bug in go-gitea#25715:
If user pushed a commit into another repo with same branch name, the
no-related repo will display the recently pushed notification
incorrectly.
It is simple to fix this, we should match the repo id in the sql query.

![image](https://github.com/go-gitea/gitea/assets/18380374/9411a926-16f1-419e-a1b5-e953af38bab1)
The latest commit is 2 weeks ago.

![image](https://github.com/go-gitea/gitea/assets/18380374/52f9ab22-4999-43ac-a86f-6d36fb1e0411)

The notification comes from another repo with same branch name:

![image](https://github.com/go-gitea/gitea/assets/18380374/a26bc335-8e5b-4b9c-a965-c3dc3fa6f252)

After:
In forked repo:

![image](https://github.com/go-gitea/gitea/assets/18380374/ce6ffc35-deb7-4be7-8b09-184207392f32)
New PR Link will redirect to the original repo:

![image](https://github.com/go-gitea/gitea/assets/18380374/7b98e76f-0c75-494c-9462-80cf9f98e786)
In the original repo:

![image](https://github.com/go-gitea/gitea/assets/18380374/5f6a821b-e51a-4bbd-9980-d9eb94a3c847)
New PR Link:

![image](https://github.com/go-gitea/gitea/assets/18380374/1ce8c879-9f11-4312-8c32-695d7d9af0df)

In the same repo:

![image](https://github.com/go-gitea/gitea/assets/18380374/64b56073-4d0e-40c4-b8a0-80be7a775f69)
New PR Link:

![image](https://github.com/go-gitea/gitea/assets/18380374/96e1b6a3-fb98-40ee-b2ee-648039fb0dcf)

08/15 Update:
Follow go-gitea#26257, added permission check and logic fix mentioned in
go-gitea#26257 (comment)

2024/04/25 Update:
Fix go-gitea#30611

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
@yp05327 yp05327 deleted the fix-incorrect-recently-pushed-new-branches-check branch May 22, 2024 01:13
@lunny lunny added the backport/done All backports for this PR have been created label May 22, 2024
zjjhot added a commit to zjjhot/gitea that referenced this pull request May 22, 2024
* giteaofficial/main:
  Add nix flake for dev shell (go-gitea#30967)
  [skip ci] Updated translations via Crowdin
  Fix wrong display of recently pushed notification (go-gitea#25812)
  use existing oauth grant for public client (go-gitea#31015)
  Fix automerge will not work because of some events haven't been triggered (go-gitea#30780)
lunny added a commit that referenced this pull request May 23, 2024
Backport #25812

~~ps: removed some new codes in `tests/integration/pull_merge_test.go`~~

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Aug 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
backport/done All backports for this PR have been created backport/manual No power to the bots! Create your backport yourself! backport/v1.22 This PR should be backported to Gitea 1.22 lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. skip-changelog This PR is irrelevant for the (next) changelog, for example bug fixes for unreleased features. type/bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Proposal: cancel the reminder of this merge request on the page
7 participants