Complete notifications system #52

Closed
opened 2025-11-02 03:06:04 -06:00 by GiteaMirror · 49 comments
Owner

Originally created by @andreynering on GitHub (Nov 11, 2016).

Today Gitea can send e-mail for new Issues/PRs/Comments and that's it.

I think it should have a complete notifications system, like GitHub and GitLab.

  • Notifications would be saved in a database table
  • A page to manage them. Equivalent to https://github.com/notifications
  • Mark as read/unread, pinning a notification (visible even if read)
  • Subscribe/Unsubscribe button
  • Mark all notifications as read
  • Mark all notifications as unread
  • Automatic subscribe on Open/Comment, etc
  • Also more refined watch options?
  • E-mail read means notification gone. Each user should have the ability to disable this
  • E-Mail notifications for pushes

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Originally created by @andreynering on GitHub (Nov 11, 2016). Today Gitea can send e-mail for new Issues/PRs/Comments and that's it. I think it should have a complete notifications system, like GitHub and GitLab. - [x] Notifications would be saved in a database table - [x] A page to manage them. Equivalent to https://github.com/notifications - [x] Mark as read/unread, pinning a notification (visible even if read) - [x] Subscribe/Unsubscribe button - [x] Mark all notifications as read - [ ] Mark all notifications as unread - [ ] Automatic subscribe on Open/Comment, etc - [ ] Also more refined watch options? - [ ] E-mail read means notification gone. Each user should have the ability to disable this - [ ] E-Mail notifications for pushes <bountysource-plugin> --- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/39150685-complete-notifications-system?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github). </bountysource-plugin>
GiteaMirror added the type/featuretype/proposal labels 2025-11-02 03:06:04 -06:00
Author
Owner

@lunny commented on GitHub (Nov 11, 2016):

If you watch some repository, then defaultly, you will subscribe all the issues and prs on this repository except you unsubscribe this issue.

@lunny commented on GitHub (Nov 11, 2016): If you watch some repository, then defaultly, you will subscribe all the issues and prs on this repository except you unsubscribe this issue.
Author
Owner

@bkcsoft commented on GitHub (Nov 28, 2016):

Please implement notifications like GitLab does, where you actually have to press "I'm done with this" before it goes away 🙂

@bkcsoft commented on GitHub (Nov 28, 2016): Please implement notifications like GitLab does, where you actually have to press "I'm done with this" before it goes away 🙂
Author
Owner

@stevenroose commented on GitHub (Nov 28, 2016):

If you add an "e-mail read means notification gone" system like GitHub's, please make it opt-out :)

@stevenroose commented on GitHub (Nov 28, 2016): If you add an "e-mail read means notification gone" system like GitHub's, please make it opt-out :)
Author
Owner

@lunny commented on GitHub (Nov 28, 2016):

@stevenroose that is a great idea. I think I can implement it.

@lunny commented on GitHub (Nov 28, 2016): @stevenroose that is a great idea. I think I can implement it.
Author
Owner

@lunny commented on GitHub (Nov 28, 2016):

@andreynering could you add e-mail read means notification gone to the check list?

@lunny commented on GitHub (Nov 28, 2016): @andreynering could you add `e-mail read means notification gone` to the check list?
Author
Owner

@andreynering commented on GitHub (Nov 28, 2016):

@lunny @stevenroose Updated

GitHub implements that by having a 1px-1px transparent image which point to https://github.com/some-route?token=.... When the GitHub server serve that image for the first time the notification is marked as read.

@andreynering commented on GitHub (Nov 28, 2016): @lunny @stevenroose Updated GitHub implements that by having a 1px-1px transparent image which point to `https://github.com/some-route?token=...`. When the GitHub server serve that image for the first time the notification is marked as read.
Author
Owner

@lunny commented on GitHub (Nov 29, 2016):

Yes. A small trick. :)

@lunny commented on GitHub (Nov 29, 2016): Yes. A small trick. :)
Author
Owner

@stevenroose commented on GitHub (Nov 29, 2016):

@andreynering I know they do it like that. But most e-mail clients don't have a feature to block displaying emails from specific senders :) So if you don't like that feature, it can be annoying.

@stevenroose commented on GitHub (Nov 29, 2016): @andreynering I know they do it like that. But most e-mail clients don't have a feature to block displaying emails from specific senders :) So if you don't like that feature, it can be annoying.
Author
Owner

@tboerger commented on GitHub (Nov 29, 2016):

👍 for opt-out of this feature.

@tboerger commented on GitHub (Nov 29, 2016): :+1: for opt-out of this feature.
Author
Owner

@stevenroose commented on GitHub (Nov 30, 2016):

@tboerger Don't get me wrong. I got to like the e-mail thing because now I read all my GitHub stuff from e-mail. But for someone who doesn't it be annoying. I had a lot of "ah, let me quickly check this issue in my email and look at it further tonight" and then I ended up not finding the issue and ploughing through archived e-mails to find it back :D

@stevenroose commented on GitHub (Nov 30, 2016): @tboerger Don't get me wrong. I got to like the e-mail thing because now I read all my GitHub stuff from e-mail. But for someone who doesn't it be annoying. I had a lot of "ah, let me quickly check this issue in my email and look at it further tonight" and then I ended up not finding the issue and ploughing through archived e-mails to find it back :D
Author
Owner

@stroucki commented on GitHub (Nov 30, 2016):

My team would like commit messages, so I'm working on implementing that for all watchers to a repository.

There is a "notifyWatchers" function on commit, but all it does is make an entry in a database table.

@stroucki commented on GitHub (Nov 30, 2016): My team would like commit messages, so I'm working on implementing that for all watchers to a repository. There is a "notifyWatchers" function on commit, but all it does is make an entry in a database table.
Author
Owner

@andreynering commented on GitHub (Nov 30, 2016):

@stroucki Did you start anything?

I just started but only had time to create the database table until you sent this message. 😃

Maybe we should create a feature branch and work together on this, so we don't have conflicting changes.

@andreynering commented on GitHub (Nov 30, 2016): @stroucki Did you start anything? I just started but only had time to create the database table until you sent this message. :smiley: Maybe we should create a feature branch and work together on this, so we don't have conflicting changes.
Author
Owner

@stroucki commented on GitHub (Dec 1, 2016):

@andreynering Actually I have something that works :)

Though it is probably not acceptable for general usage, since you can't opt out. It is similar to what gogs does for mentionemails: Do a database entry that apparently is only useful for webhooks, then send out email to all watchers.

You can see it in my fork: (note I am still based on gogs)
https://github.com/stroucki/gogs/tree/commitemails

But while testing I see that it is not working for commits made via ssh yet.

@stroucki commented on GitHub (Dec 1, 2016): @andreynering Actually I have something that works :) Though it is probably not acceptable for general usage, since you can't opt out. It is similar to what gogs does for mentionemails: Do a database entry that apparently is only useful for webhooks, then send out email to all watchers. You can see it in my fork: (note I am still based on gogs) https://github.com/stroucki/gogs/tree/commitemails But while testing I see that it is not working for commits made via ssh yet.
Author
Owner

@andreynering commented on GitHub (Dec 1, 2016):

@stroucki Thanks for linking your branch.

I started something on https://github.com/go-gitea/gitea/pull/321 (still in an early stage) for who's interested.

We will probably integrate notifications and email sending. Your patch will be useful.

@andreynering commented on GitHub (Dec 1, 2016): @stroucki Thanks for linking your branch. I started something on https://github.com/go-gitea/gitea/pull/321 (still in an early stage) for who's interested. We will probably integrate notifications and email sending. Your patch will be useful.
Author
Owner

@stroucki commented on GitHub (Dec 1, 2016):

I've been looking at getting notifications working on ssh commits today.
This is pretty messy, because 1) the serve command doesn't set up any of the mailer stuff and 2) it uses "log.GitLogger" to log stuff, but the mailer initialization bits want to log, they use "log". Things don't even seem to blow up then, the git-receive-pack ends up hanging and nothing really happens.
I got to the point now where it is sending commit messages, but the command line output gets a "failed to push some refs" error (but things have committed).

@stroucki commented on GitHub (Dec 1, 2016): I've been looking at getting notifications working on ssh commits today. This is pretty messy, because 1) the serve command doesn't set up any of the mailer stuff and 2) it uses "log.GitLogger" to log stuff, but the mailer initialization bits want to log, they use "log". Things don't even seem to blow up then, the git-receive-pack ends up hanging and nothing really happens. I got to the point now where it is sending commit messages, but the command line output gets a "failed to push some refs" error (but things have committed).
Author
Owner

@stroucki commented on GitHub (Dec 2, 2016):

OK. I think I have it. I now get commit messages on https and ssh commits.

The big thing was that console logs interfere with the git processes that gogs creates. I'm guessing that since the log used stdout, the subprocess never terminated. Besides that, mailing services needed to be initialized too.
It is too late for tonight, but tomorrow I'll update my branch.

@stroucki commented on GitHub (Dec 2, 2016): OK. I think I have it. I now get commit messages on https and ssh commits. The big thing was that console logs interfere with the git processes that gogs creates. I'm guessing that since the log used stdout, the subprocess never terminated. Besides that, mailing services needed to be initialized too. It is too late for tonight, but tomorrow I'll update my branch.
Author
Owner

@bkcsoft commented on GitHub (Dec 2, 2016):

@andreynering I also think that Action-table holds most of the data already. Might be worth looking into before making a new table 🙂

@bkcsoft commented on GitHub (Dec 2, 2016): @andreynering I also think that `Action`-table holds most of the data already. Might be worth looking into before making a new table 🙂
Author
Owner

@lunny commented on GitHub (Dec 2, 2016):

^

@lunny commented on GitHub (Dec 2, 2016): ^
Author
Owner

@andreynering commented on GitHub (Dec 2, 2016):

@bkcsoft @lunny I will take a look at that, but I think we need another table. An action is created every time an issue changes, but we should have only one notification per issue/PR.

Also, an user may be subscribed to an issue but don't watch the repo, so won't have an action for him, etc. Situations like this.

@andreynering commented on GitHub (Dec 2, 2016): @bkcsoft @lunny I will take a look at that, but I think we need another table. An action is created every time an issue changes, but we should have only one notification per issue/PR. Also, an user may be subscribed to an issue but don't watch the repo, so won't have an action for him, etc. Situations like this.
Author
Owner

@stroucki commented on GitHub (Dec 2, 2016):

Is the action table actually used for anything?

@stroucki commented on GitHub (Dec 2, 2016): Is the action table actually used for anything?
Author
Owner

@stroucki commented on GitHub (Dec 2, 2016):

I committed changes to my branch that now let commit messages go out to watchers on https and ssh commits.

@stroucki commented on GitHub (Dec 2, 2016): I committed changes to my branch that now let commit messages go out to watchers on https and ssh commits.
Author
Owner

@andreynering commented on GitHub (Dec 2, 2016):

@stroucki

Is the action table actually used for anything?

It's only used by the feed on the dashboard.

I committed changes to my branch that now let commit messages go out to watchers on https and ssh commits

I'll look into integrate that after I'm done with my implementation

@andreynering commented on GitHub (Dec 2, 2016): @stroucki > Is the action table actually used for anything? It's only used by the feed on the dashboard. > I committed changes to my branch that now let commit messages go out to watchers on https and ssh commits I'll look into integrate that after I'm done with my implementation
Author
Owner

@bkcsoft commented on GitHub (Dec 30, 2016):

@lunny this isn't done yet ,only part 1 of 2 ;)

@bkcsoft commented on GitHub (Dec 30, 2016): @lunny this isn't done yet ,only part 1 of 2 ;)
Author
Owner

@bkcsoft commented on GitHub (Dec 30, 2016):

ooh, it was #523 that had the text "resolve #number" in it 😆

@bkcsoft commented on GitHub (Dec 30, 2016): ooh, it was #523 that had the text "resolve #number" in it 😆
Author
Owner

@lunny commented on GitHub (Dec 31, 2016):

So not me? Or maybe we have to review and change the title when merging it.

@lunny commented on GitHub (Dec 31, 2016): So not me? Or maybe we have to review and change the title when merging it.
Author
Owner

@bkcsoft commented on GitHub (Dec 31, 2016):

@lunny no need to change the title, just the body 🙁

@bkcsoft commented on GitHub (Dec 31, 2016): @lunny no need to change the title, just the body 🙁
Author
Owner

@strk commented on GitHub (Jan 5, 2017):

Is the roadmap in the original submission updated after part 2 ?
I've tested notifications on try.gitea.io but doesn't seem to be working: https://try.gitea.io/gitea/gitea/issues/1

@strk commented on GitHub (Jan 5, 2017): Is the roadmap in the original submission updated after part 2 ? I've tested notifications on try.gitea.io but doesn't seem to be working: https://try.gitea.io/gitea/gitea/issues/1
Author
Owner

@strk commented on GitHub (Jan 5, 2017):

Step 2, merged, was #539

@strk commented on GitHub (Jan 5, 2017): Step 2, merged, was #539
Author
Owner

@andreynering commented on GitHub (Jan 6, 2017):

@strk You are not watching the repo, so you won't get any notifications:

https://try.gitea.io/gitea/gitea/watchers

@andreynering commented on GitHub (Jan 6, 2017): @strk You are not watching the repo, so you won't get any notifications: https://try.gitea.io/gitea/gitea/watchers
Author
Owner

@strk commented on GitHub (Jan 6, 2017):

On Thu, Jan 05, 2017 at 04:39:14PM -0800, Andrey Nering wrote:

@strk You are not watching the repo, so you won't get any notifications:

https://try.gitea.io/gitea/gitea/watchers

I thought one of the goals of the notification system was allowing
for per-issue watchers ?

@strk commented on GitHub (Jan 6, 2017): On Thu, Jan 05, 2017 at 04:39:14PM -0800, Andrey Nering wrote: > @strk You are not watching the repo, so you won't get any notifications: > > https://try.gitea.io/gitea/gitea/watchers I thought one of the goals of the notification system was allowing for per-issue watchers ?
Author
Owner

@andreynering commented on GitHub (Jan 6, 2017):

I thought one of the goals of the notification system was allowing for per-issue watchers?

Yes, but it was not implemented yet. I'm doing it in parts. By now it's only notifying watchers. I hope we get it 100℅ on v1.1.0

@andreynering commented on GitHub (Jan 6, 2017): > I thought one of the goals of the notification system was allowing for per-issue watchers? Yes, but it was not implemented yet. I'm doing it in parts. By now it's only notifying watchers. I hope we get it 100℅ on v1.1.0
Author
Owner

@gayprogrammer commented on GitHub (Jun 8, 2017):

I would like to note that email notifications currently do not say which user commented on the issue. It only displays the content of the comment.

Can we add the name of who commented to the email somehow?

@gayprogrammer commented on GitHub (Jun 8, 2017): I would like to note that email notifications currently do not say which user commented on the issue. It only displays the content of the comment. Can we add the name of who commented to the email somehow?
Author
Owner

@tboerger commented on GitHub (Jun 8, 2017):

Than the current mail template is missing that information

@tboerger commented on GitHub (Jun 8, 2017): Than the current mail template is missing that information
Author
Owner

@mxmehl commented on GitHub (Jun 23, 2017):

It would be good to have a button to mark all notifications as read. (I hope this is the right issue for this feature request)

@mxmehl commented on GitHub (Jun 23, 2017): It would be good to have a button to **mark all notifications as read**. (I hope this is the right issue for this feature request)
Author
Owner

@andreynering commented on GitHub (Jun 23, 2017):

@mxmehl Yes, that's reasonable.

@andreynering commented on GitHub (Jun 23, 2017): @mxmehl Yes, that's reasonable.
Author
Owner

@mxmehl commented on GitHub (Jun 23, 2017):

@mxmehl Yes, that's reasonable.

Cool! Could you please add that to the list in the top post?

@mxmehl commented on GitHub (Jun 23, 2017): > @mxmehl Yes, that's reasonable. Cool! Could you please add that to the list in the top post?
Author
Owner

@andreynering commented on GitHub (Jun 23, 2017):

@mxmehl Done!

@andreynering commented on GitHub (Jun 23, 2017): @mxmehl Done!
Author
Owner

@McLive commented on GitHub (Feb 22, 2018):

Any update on this? I'd like to see E-Mail notifications for pushes.

https://github.com/gogits/gogs/issues/1441

@McLive commented on GitHub (Feb 22, 2018): Any update on this? I'd like to see E-Mail notifications for pushes. https://github.com/gogits/gogs/issues/1441
Author
Owner

@lunny commented on GitHub (Feb 23, 2018):

@McLive added

@lunny commented on GitHub (Feb 23, 2018): @McLive added
Author
Owner

@hasufell commented on GitHub (Jun 28, 2018):

What I find missing here is optional admin notifications, like when a user has registered.

@hasufell commented on GitHub (Jun 28, 2018): What I find missing here is optional admin notifications, like when a user has registered.
Author
Owner

@worthy7 commented on GitHub (Sep 5, 2019):

2019 is this not happening?

@worthy7 commented on GitHub (Sep 5, 2019): 2019 is this not happening?
Author
Owner

@lafriks commented on GitHub (Sep 6, 2019):

@Worthy7 everyone works of features they need most as no one is paid to work on Gitea and we are spending our free time to work on this project...

@lafriks commented on GitHub (Sep 6, 2019): @Worthy7 everyone works of features they need most as no one is paid to work on Gitea and we are spending our free time to work on this project...
Author
Owner

@worthy7 commented on GitHub (Sep 7, 2019):

Some people need the features but can't work on the project because it's in Go - a language not everyone knows. I would do this myself but I don't know anything about Go. So the best I can do is complain.
If other people don't think this is important, I'd like to know how organization owners (anyone out there) deals with issues and @mentioning people.... Perhaps I'm just using it wrong?

@worthy7 commented on GitHub (Sep 7, 2019): Some people need the features but can't work on the project because it's in Go - a language not everyone knows. I would do this myself but I don't know anything about Go. So the best I can do is complain. If other people don't think this is important, I'd like to know how organization owners (anyone out there) deals with issues and @mentioning people.... Perhaps I'm just using it wrong?
Author
Owner

@stroucki commented on GitHub (Sep 7, 2019):

@Worthy7 then pick up a book and start learning. It's not a secret language.

@stroucki commented on GitHub (Sep 7, 2019): @Worthy7 then pick up a book and start learning. It's not a secret language.
Author
Owner

@worthy7 commented on GitHub (Sep 7, 2019):

I suppose people can just get round this by unwatching/unsubscribing to everything not concerning them for now. It doesn't seem like there's much demand for the feature since last year.

@worthy7 commented on GitHub (Sep 7, 2019): I suppose people can just get round this by unwatching/unsubscribing to everything not concerning them for now. It doesn't seem like there's much demand for the feature since last year.
Author
Owner

@McLive commented on GitHub (Sep 7, 2019):

I‘m also still waiting for this 🙈

@McLive commented on GitHub (Sep 7, 2019): I‘m also still waiting for this 🙈
Author
Owner

@hasufell commented on GitHub (Sep 23, 2019):

a language not everyone knows

It takes about ~3 days to learn Go. I think you will have more problems with the sheer complexity of the application than you will have with the language :)

@hasufell commented on GitHub (Sep 23, 2019): > a language not everyone knows It takes about ~3 days to learn Go. I think you will have more problems with the sheer complexity of the application than you will have with the language :)
Author
Owner

@worthy7 commented on GitHub (Sep 23, 2019):

Yea to be honest that's what I meant.

On Mon, 23 Sep 2019, 22:23 Julian Ospald, notifications@github.com wrote:

a language not everyone knows

It takes about ~3 days to learn Go. I think you will have more problems
with the sheer complexity of the application than you will have with the
language :)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/go-gitea/gitea/issues/145?email_source=notifications&email_token=ABEKWH34ICJJLZAQKFINTYLQLC7NBA5CNFSM4CV65S7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7K2VIY#issuecomment-534096547,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABEKWH6T6W4OXWLKPLZQTHLQLC7NBANCNFSM4CV65S7A
.

@worthy7 commented on GitHub (Sep 23, 2019): Yea to be honest that's what I meant. On Mon, 23 Sep 2019, 22:23 Julian Ospald, <notifications@github.com> wrote: > a language not everyone knows > > It takes about ~3 days to learn Go. I think you will have more problems > with the sheer complexity of the application than you will have with the > language :) > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/go-gitea/gitea/issues/145?email_source=notifications&email_token=ABEKWH34ICJJLZAQKFINTYLQLC7NBA5CNFSM4CV65S7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7K2VIY#issuecomment-534096547>, > or mute the thread > <https://github.com/notifications/unsubscribe-auth/ABEKWH6T6W4OXWLKPLZQTHLQLC7NBANCNFSM4CV65S7A> > . >
Author
Owner

@6543 commented on GitHub (Sep 7, 2020):

beside Also more refined watch options? <- I think for repos you mean

I'll close this, feel free to open a new issue for the speciffic case you are missing for notifications

@6543 commented on GitHub (Sep 7, 2020): beside `Also more refined watch options?` <- I think for repos you mean I'll close this, feel free to open a new issue for the speciffic case you are missing for notifications
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#52