Skip to content
New issue

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

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

Already on GitHub? # 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
Collaborator

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
# for free to subscribe to this conversation on GitHub. Already have an account? #.
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