forgejo/forgejo
121
5.1k
Fork
You've already forked forgejo
868

feat: Fine-grained watch on repos #7254

Open
opened 2025年03月17日 15:08:45 +01:00 by linuxpython · 28 comments

Needs and benefits

I'd like to watch only some of the activity on a repo, in particular, releases and security issues. However, there's only a wholesale "watch" or "unwatch" button that leaves me with either needing to manually check on the project status, or possibly be drowned in a plethora of not too interesting messages on a busy repo. Having a more fine-grained watch functionality, similar to what Github has, would be very nice!

Feature Description

I'd like to have a more fine-grained repo "watch" functionality l ike the one found in Github.

Screenshots

No response

### Needs and benefits I'd like to watch only some of the activity on a repo, in particular, releases and security issues. However, there's only a wholesale "watch" or "unwatch" button that leaves me with either needing to manually check on the project status, or possibly be drowned in a plethora of not too interesting messages on a busy repo. Having a more fine-grained watch functionality, similar to what Github has, would be very nice! ### Feature Description I'd like to have a more fine-grained repo "watch" functionality l ike the one found in Github. ### Screenshots _No response_

There was work regarding this. But until then: Do you mean forgejo security issues? There is a specific repo to inform about upcoming security releases: https://codeberg.org/forgejo/security-announcements/issues

There was work regarding this. But until then: Do you mean forgejo security issues? There is a specific repo to inform about upcoming security releases: https://codeberg.org/forgejo/security-announcements/issues

In Github, I tend to subscribe to releases and security announcements. At first, this would be most relevant to the forgejo repo for me, but once I'd want to subscribe to more repos, that'd become relevant for those other repos as well.

In Github, I tend to subscribe to releases and security announcements. At first, this would be most relevant to the forgejo repo for me, but once I'd want to subscribe to more repos, that'd become relevant for those other repos as well.

This feature is on my radar for implementation. I assume that it interacts with #7461 -- the repo-level settings becoming a default of the notifications on an issue -- and so I'm not sure that these two issues are truly separate features.

It would be helpful if anyone interested in it could document their first-hand experience that makes them desire it, so that it can feed into an appropriate design that meets people's needs. There are many 👍, but few details, and I'm not inclined to just copy another system's design and assume it's the right fit for Forgejo users. 🙂

Here's mine:

  • I watch forgejo/forgejo to be aware of things that I might be able to be helpful with, but haven't been pinged on.
  • In my email, I filter out cascading-pr emails because these are never interesting.
  • {{ user }} force-pushed the {{ branch }} from {{ commit }} to {{ commit }} emails are the most noisy emails that I wish I didn't receive. Ideally I'd receive these on a PR that I had reviewed, but no others -- and even there, I'd be OK with just receiving a follow-up "review requested" when someone is done a review-requested change.
  • Most other repos that being part of the Contributors team grants access to (and therefore auto-watches) are low volume and, while I might not be involved with each change, I don't mind seeing them come through my inbox.
This feature is on my radar for implementation. I assume that it interacts with https://codeberg.org/forgejo/forgejo/issues/7461 -- the repo-level settings becoming a default of the notifications on an issue -- and so I'm not sure that these two issues are truly separate features. It would be helpful if anyone interested in it could document their first-hand experience that makes them desire it, so that it can feed into an appropriate design that meets people's needs. There are many 👍, but few details, and I'm not inclined to just copy another system's design and assume it's the right fit for Forgejo users. 🙂 Here's mine: - I watch `forgejo/forgejo` to be aware of things that I might be able to be helpful with, but haven't been pinged on. - In my email, I filter out `cascading-pr` emails because these are never interesting. - `{{ user }} force-pushed the {{ branch }} from {{ commit }} to {{ commit }}` emails are the most noisy emails that I wish I didn't receive. Ideally I'd receive these on a PR that I had reviewed, but no others -- and even there, I'd be OK with just receiving a follow-up "review requested" when someone is done a review-requested change. - Most other repos that being part of the [Contributors](https://codeberg.org/org/forgejo/teams/contributors) team grants access to (and therefore auto-watches) are low volume and, while I might not be involved with each change, I don't mind seeing them come through my inbox.

I'd like to have more fine-grained controls as right now, repo watching is just all or nothing. This is fine for low-traffic repos, but in ones where issues are active (be that be popular issues, automations, etc), I get notified about every single event. Even just ignoring the obvious "notification overload" problem, this has also caused issues with a particular forge's mailserver being blocked by my own provider (I use iCloud, so I can't control rules) for sending too many emails in a short period of time. Most of these emails were registering a vote, so they were just "yes" and "no" - I don't need to know about the individual comments on the issue, just the issue itself.

Also, some repos I just don't care about as much as others. For example, I'd like to watch the forgejo repo to be notified of new tagged releases, but don't really care about too much else. Meanwhile, this may be the complete opposite for another issue, an example being a repo of my own - I'd like to be notified of all activity (aside from things like pushes) rather than just a preset.

I would also like if notifications to third party endpoints (e.g. email) could be chosen individually of what is delivered to the forgejo inbox. I don't mind having a billion things in the notification inbox web UI because I can gradually work through those. But with email, i'm more likely to miss a notif or forget to mark it as done etc. I'm sure someone out there would find use for the inverse also.

I'd like to have more fine-grained controls as right now, repo watching is just all or nothing. This is fine for low-traffic repos, but in ones where issues are active (be that be popular issues, automations, etc), I get notified about every single event. Even just ignoring the obvious "notification overload" problem, this has also caused issues with a particular forge's mailserver being blocked by my own provider (I use iCloud, so I can't control rules) for sending too many emails in a short period of time. Most of these emails were registering a vote, so they were just "yes" and "no" - I don't need to know about the individual comments on the issue, just the issue itself. Also, some repos I just don't care about as much as others. For example, I'd like to watch the forgejo repo to be notified of new tagged releases, but don't really care about too much else. Meanwhile, this may be the complete opposite for another issue, an example being a repo of my own - I'd like to be notified of all activity (aside from things like pushes) rather than just a preset. I would also like if notifications to third party endpoints (e.g. email) could be chosen individually of what is delivered to the forgejo inbox. I don't mind having a billion things in the notification inbox web UI because I can gradually work through those. But with email, i'm more likely to miss a notif or forget to mark it as done etc. I'm sure someone out there would find use for the inverse also.

One thing I like about Discourse's tracking/notification system is the ability to be notified of the first post in every new thread on a given category or tag, but not of subsequent posts, unless I subscribe to that thread.

In the context of a forge, that'd be equivalent to, say, be able to subscribe to notifications about any new issues opened or closed, but not about comments in them. Ideally, this would be filterable by label (e.g. bugs vs. feature requests), but even simple open/close notifications for issues (and PRs) would be nice already.

One thing I like about Discourse's tracking/notification system is the ability to be notified of the first post in every new thread on a given category or tag, but not of subsequent posts, unless I subscribe to that thread. In the context of a forge, that'd be equivalent to, say, be able to subscribe to notifications about any new issues opened or closed, but not about comments in them. Ideally, this would be filterable by label (e.g. bugs vs. feature requests), but even simple open/close notifications for issues (and PRs) would be nice already.

I too would very much like to be able to subscribe to releases. I maintain the FreeBSD Forgejo ports and need to be notified when a new release comes out, but watching this repository subjects me to a firehose of commits, issues, pull requests, and comments, when all I need is one or two notifications every few weeks.

I too would very much like to be able to subscribe to releases. I maintain the FreeBSD Forgejo ports and need to be notified when a new release comes out, but watching this repository subjects me to a firehose of commits, issues, pull requests, and comments, when all I need is one or two notifications every few weeks.
Owner
Copy link

#10598 did some significant progress but was closed. Nevertheless those interested in this feature should feel free to play with it locally, try to break it and pick up development / submit a new PR based on that one.

https://codeberg.org/forgejo/forgejo/pulls/10598 did some significant progress but was closed. Nevertheless those interested in this feature should feel free to play with it locally, try to break it and pick up development / submit a new PR based on that one.

Should we consider implementing this in combination with #954 ?
I guess we should at least think about how those two things should work together.
So, e.g., there could be different ways of watching a Repo. Then a Team in an Org (or the Org itself) could set a default way of watching any Repo a member is added to.

Should we consider implementing this in combination with https://codeberg.org/forgejo/forgejo/issues/954 ? I guess we should at least think about how those two things should work together. So, e.g., there could be different ways of watching a Repo. Then a Team in an Org (or the Org itself) could set a default way of watching any Repo a member is added to.
Owner
Copy link

In relation - yes, makes sense to consider how these should work. But the smaller separate PRs are the easier it is for reviewers, so don't put them into one 😅

In relation - yes, makes sense to consider how these should work. But the smaller separate PRs are the easier it is for reviewers, so don't put them into one 😅

Yes, yes, of course! Even bigger than this PR, please don't xD.

Yes, yes, of course! Even bigger than this PR, please don't xD.

This could also be extended with a fine-grained setting for workflow failure mails.

This could also be extended with a fine-grained setting for workflow failure mails.

I like GitHub's sensible default watch setting: "Participating and @ mentions"
As far as I understand it you get notified to all PRs and Issues you have subscribed to, been tagged or sent a message to.
That's what I like to use.

I like GitHub's sensible default watch setting: "Participating and @ mentions" As far as I understand it you get notified to all PRs and Issues you have subscribed to, been tagged or sent a message to. That's what I like to use.

While #10598 implements them, I'm against a user setting for defining default notification behavior. Again, I like how GitHub does this: There are no user-wider notification settings dictating what should notify at all. There only are settings on how a notification should reach the user, e.g., via mail or the ui.
I believe these default notification settings could find a place in the teams settings.
What do you think?

While #10598 implements them, I'm against a user setting for defining default notification behavior. Again, I like how GitHub does this: There are no user-wider notification settings dictating what should notify at all. There only are settings on how a notification should reach the user, e.g., via mail or the ui. I believe these default notification settings could find a place in the teams settings. What do you think?
Owner
Copy link

@christopher-besch wrote in #7254 (comment):

I believe these default notification settings could find a place in the teams settings.

I don't think teams should be anyhow related to notifications settings. User should be in full control of notifications without hidden settings discoverable though confusion of something happening (being added to a repo).

Either not starting to watch anything when being added to a repo or a user-configurable default.

But you don't have to include such changes in a PR aiming to resolve this particular issue. The defaults of external events (org admin adding a user) can remain as is. This issue is mostly concerned about user's ability to manually watch or unwatch a specific repo unit.

@christopher-besch wrote in https://codeberg.org/forgejo/forgejo/issues/7254#issuecomment-9989514: > I believe these default notification settings could find a place in the teams settings. I don't think teams should be anyhow related to notifications settings. User should be in full control of notifications without hidden settings discoverable though confusion of something happening (being added to a repo). Either not starting to watch anything when being added to a repo or a user-configurable default. But you don't have to include such changes in a PR aiming to resolve this particular issue. The defaults of external events (org admin adding a user) can remain as is. This issue is mostly concerned about user's ability to manually watch or unwatch a specific repo unit.

User should be in full control of notifications

I agree but I'm not talking about whether someone is watching a repo or not. I'm just talking about the defaults that apply to new or newly accessible repos. And I'd really like a system as proposed in #954. #954 would mean notification settings either in the org or team settings. Personally, I prefer the org owner or system admin should choose a sensible default watch setting. When a user doesn't like that, she can change it for each repo. You disagree on this point, right, @0ko ?

But you don't have to include such changes in a PR

Yes, of course. Though, I think we should figure out a bigger vision before implementing anything. I feel adding little things one by one without a clear path ahead won't lead to a cohesive notification system.
I have to admit, I don't quite know where to start with all this. There's just so little to go by.

> User should be in full control of notifications I agree but I'm not talking about whether someone is watching a repo or not. I'm just talking about the defaults that apply to new or newly accessible repos. And I'd really like a system as proposed in #954. #954 would mean notification settings either in the org or team settings. Personally, I prefer the org owner or system admin should choose a sensible default watch setting. When a user doesn't like that, she can change it for each repo. You disagree on this point, right, @0ko ? > But you don't have to include such changes in a PR Yes, of course. Though, I think we should figure out a bigger vision before implementing anything. I feel adding little things one by one without a clear path ahead won't lead to a cohesive notification system. I have to admit, I don't quite know where to start with all this. There's just so little to go by.

@christopher-besch wrote in #7254 (comment):

Personally, I prefer the org owner or system admin should choose a sensible default watch setting. When a user doesn't like that, she can change it for each repo. You disagree on this point, right, @0ko ?

I need to say, I'm on the side of @0ko . I as an user want to define my default notification settings. If I'm added to a team and get repos assigned I don't want to get spammed by notifications just because some team Admin decided it would be good when I receive a notification for everything.
And when I then need to go through each repo to "fix" the settings it just means work for me.

@christopher-besch wrote in https://codeberg.org/forgejo/forgejo/issues/7254#issuecomment-9993255: > Personally, I prefer the org owner or system admin should choose a sensible default watch setting. When a user doesn't like that, she can change it for each repo. You disagree on this point, right, @0ko ? I need to say, I'm on the side of @0ko . I as an user want to define my default notification settings. If I'm added to a team and get repos assigned I don't want to get spammed by notifications just because some team Admin decided it would be good when I receive a notification for everything. And when I then need to go through each repo to "fix" the settings it just means work for me.

Thanks for the input, @Beowulf ! @fnetX I remember you to have some strong opinions on notifications. What would you like?

Thanks for the input, @Beowulf ! @fnetX I remember you to have some strong opinions on notifications. What would you like?

Also, I'd like to hear your opinion, @mahiso: should the default notification setting for new or newly accessible repos be in:

  • Team settings for the org owner,
  • Org settings for the org owner or
  • User settings for the user?
Also, I'd like to hear your opinion, @mahiso: should the default notification setting for new or newly accessible repos be in: - Team settings for the org owner, - Org settings for the org owner or - User settings for the user?

Only in user settings. The user should have full control over it.

Only in user settings. The user should have full control over it.

Okay, you all convinced me. Though, I still worry about #954. I propose this:

  • The user can choose "Global Settings" or a combination of "Issue", "PR", "Release". Notice how there is no "Don't watch" option. That is realized by choosing a combination but then not selecting anything to be notified for.
  • The user can set the "Global Settings" in her user settings (also a combination of "Issue", "PR", "Release").
  • When migrating to this feature the Forgejo instance's user settings all select to be notified for everything.
  • When migrating to this feature the Forgjeo instance's repo watch settings all select "Global Settings".
    #954 might become obsolete when the users choose "Global Settings" the way they like them. What do you think, @fnetX ?

If we want GitHub's behavior with only being notified for issues the user was mentioned in. We could make mentioned users auto-subscribe to those issues. That's something for a separate PR.

EDIT: I don't like the name "Global Settings" as these settings don't apply instance-wide. They apply to a single user. I haven't come up with a better name yet, though.

Okay, you all convinced me. Though, I still worry about #954. I propose this: - The user can choose "Global Settings" or a combination of "Issue", "PR", "Release". Notice how there is no "Don't watch" option. That is realized by choosing a combination but then not selecting anything to be notified for. - The user can set the "Global Settings" in her user settings (also a combination of "Issue", "PR", "Release"). - When migrating to this feature the Forgejo instance's user settings all select to be notified for everything. - When migrating to this feature the Forgjeo instance's repo watch settings all select "Global Settings". #954 might become obsolete when the users choose "Global Settings" the way they like them. What do you think, @fnetX ? If we want GitHub's behavior with only being notified for issues the user was mentioned in. We could make mentioned users auto-subscribe to those issues. That's something for a separate PR. EDIT: I don't like the name "Global Settings" as these settings don't apply instance-wide. They apply to a single user. I haven't come up with a better name yet, though.

#issuecomment-9999606

@mahiso, no need to restrict where such preferences can be exposed. All that matters is that the user's preferences override all else.

As in all discussions about potentially federated preferences, observe WikiMedia's GlobalPreferences as an example: allowing organisations and repositories to define defaults can be sensible, when not every employee in an organisation wants to learn how to configure their own preferences to match that of their team's. However, the team shouldn't ever be able to override what that user wants; they should only set defaults, which the user can override.

> [`#issuecomment-9999606`](https://codeberg.org/forgejo/forgejo/issues/7254#issuecomment-9999606) @mahiso, no need to restrict where such preferences can be exposed. All that matters is that the user's preferences override all else. As in all discussions about potentially federated preferences, observe WikiMedia's `GlobalPreferences` as an example: allowing organisations and repositories to define defaults can be sensible, when not every employee in an organisation wants to learn how to configure their own preferences to match that of their team's. However, the team shouldn't ever be able to override what that user wants; they should only set defaults, which the user can override.

it would also be useful to have a list of labels/keywords per repository that cause you to be subscribed to issues/PRs when those labels/keywords are applied (unless you previously unsubscribed to that issue/PR). so I think each issue/PR should have several different per-user states:

  • explicitly unsubscribed so you don't ever get automatically subscribed to notifications
  • explicitly subscribed
  • default which automatically changes to explicitly subscribed when some event you're interested in happens. this should send you all messages in an issue/PR if you were automatically subscribed close to when the issue/PR was created -- for things like bots that automatically add labels/mentions.

teams/orgs should be able to set default lists of things people are interested in, e.g. forgejo could have a actions team that defaults to users in that team getting automatically subscribed whenever actions-specific labels are applied and maybe if someone mentions "forgejo actions" or something?
that way teams/orgs can configure some complicated list of labels to listen to and users joining those teams/orgs don't have to manually replicate that in their per-user settings.

it would also be useful to have a list of labels/keywords per repository that cause you to be subscribed to issues/PRs when those labels/keywords are applied (unless you previously unsubscribed to that issue/PR). so I think each issue/PR should have several different per-user states: * explicitly unsubscribed so you don't ever get automatically subscribed to notifications * explicitly subscribed * default which automatically changes to explicitly subscribed when some event you're interested in happens. this should send you all messages in an issue/PR if you were automatically subscribed close to when the issue/PR was created -- for things like bots that automatically add labels/mentions. teams/orgs should be able to set default lists of things people are interested in, e.g. forgejo could have a actions team that defaults to users in that team getting automatically subscribed whenever actions-specific labels are applied and maybe if someone mentions "forgejo actions" or something? that way teams/orgs can configure some complicated list of labels to listen to and users joining those teams/orgs don't have to manually replicate that in their per-user settings.

@programmerjake, I believe that that's very similar to what GitLab does for their own repositories; they utilise bots to subscribe groups of users to specific labels. 1

However, this would need to be an addition to the basic preferences.

@programmerjake, I believe that that's very similar to what GitLab does for their own repositories; they utilise bots to subscribe groups of users to specific labels. [^1] [^1]: [`gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7708#note_525947`](https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7708#note_525947) However, this would need to be an addition to the basic preferences.

Currently, there are the AutoWatchOnChanges and AutoWatchNewRepos settings in the app.ini. They configure if users should be made watchers of repos once they contribute to them in the first case and when the repo becomes accessible in the second case.

Do we need those settings? When we allow the user to choose whether to watch or not watch new repos I'd say that's enough. I'd like to remove those settings from the app.ini file and move them to the user settings. Having both is quite complex, I fear. I like simplicity.
However, I don't know if this could be a pain to migrate to. Would such a change break peoples' setup?

Currently, there are the AutoWatchOnChanges and AutoWatchNewRepos settings in the `app.ini`. They configure if users should be made watchers of repos once they contribute to them in the first case and when the repo becomes accessible in the second case. Do we need those settings? When we allow the user to choose whether to watch or not watch new repos I'd say that's enough. I'd like to remove those settings from the `app.ini` file and move them to the user settings. Having both is quite complex, I fear. I like simplicity. However, I don't know if this could be a pain to migrate to. Would such a change break peoples' setup?

I have fully implemented and written tests for granular repo watching, see: #10927
I'm curious as to what you have to say!

I have fully implemented and written tests for granular repo watching, see: https://codeberg.org/forgejo/forgejo/pulls/10927 I'm curious as to what you have to say!

Note that while it is not a perfect solution, it is already possible to follow a project's release with RSS (e.g. https://codeberg.org/forgejo/forgejo/releases.rss)

Note that while it is not a perfect solution, it is already possible to follow a project's release with RSS (e.g. https://codeberg.org/forgejo/forgejo/releases.rss)

As a first step, #10927 seems great. But I hope the plan is to further expand the granularity down the road — for example, when I watch a repo for just issues, what level of activity in issues would I get subscribed to?

I'd like to be able to choose between various levels of "verbosity" for each category, rather than a binary all-or-nothing approach. For example:

  • For issues: "everything" (including labeling, edits, etc.), "new comments", "only status changes" and "none";
  • For PRs: "every commit" (even those done without PRs), "PR activity" (creation, merging, closing, comments), "PR status changes" (open/close/merge), and "none";
  • For releases: and "all tags", "only releases" and "none".

I suppose this may call for a radio button or tri-state toggle (or button-set) for each category, instead of checkboxes, in a future implementation. Or perhaps we'd actually want to allow people to choose-and-pick their notification categories — e.g. say I'd like to get notified of labels added to issues, but not comment edits (or vice-versa). But that could make the subscription UI rather complex, warranting perhaps a separate "advanced notification subscriptions" page.

That said, this is already a great improvement over the current situation :)

As a first step, #10927 seems great. But I hope the plan is to further expand the granularity down the road — for example, when I watch a repo for just issues, what level of activity in issues would I get subscribed to? I'd like to be able to choose between various levels of "verbosity" for each category, rather than a binary all-or-nothing approach. For example: - For issues: "everything" (including labeling, edits, etc.), "new comments", "only status changes" and "none"; - For PRs: "every commit" (even those done without PRs), "PR activity" (creation, merging, closing, comments), "PR status changes" (open/close/merge), and "none"; - For releases: and "all tags", "only releases" and "none". I suppose this may call for a radio button or tri-state toggle (or button-set) for each category, instead of checkboxes, in a future implementation. Or perhaps we'd actually want to allow people to choose-and-pick their notification categories — e.g. say I'd like to get notified of labels added to issues, but not comment edits (or vice-versa). But that could make the subscription UI rather complex, warranting perhaps a separate "advanced notification subscriptions" page. That said, this is already a great improvement over the current situation :)

@waldyrious the backend is very much extendible to more and more granular categories. My migration approaches are also easily adaptable for future categories.

@waldyrious the backend is very much extendible to more and more granular categories. My migration approaches are also easily adaptable for future categories.
Sign in to join this conversation.
No Branch/Tag specified
forgejo
v11.0/forgejo
v16.0/forgejo
v15.0/forgejo
renovate/forgejo-sharp-0.x
renovate/forgejo-clippie-4.x
renovate/forgejo-github.com-google-pprof-digest
renovate/forgejo-github.com-redis-go-redis-v9-9.x
renovate/forgejo-github.com-minio-minio-go-v7-7.x
renovate/forgejo-github.com-go-swagger-go-swagger-cmd-swagger-0.x
renovate/forgejo-mermaid-11.x
renovate/forgejo-github.com-urfave-cli-v3-3.x
bp-v15.0/forgejo-daaee9c
renovate/forgejo-github.com-alecthomas-chroma-v2-2.x
renovate/forgejo-go-openapi
bp-v15.0/forgejo-5c61808
bp-v15.0/forgejo-6cd3f02
v14.0/forgejo
bp-v15.0/forgejo-2176403
bp-v14.0/forgejo-9767ceb
bp-v14.0/forgejo-d996dfb
v13.0/forgejo
bp-v13.0/forgejo-dc0a63e
bp-v13.0/forgejo-e7ef2eb
v12.0/forgejo
bp-v12.0/forgejo-cf1fda8-a511e37
bp-v11.0/forgejo-b52cec7
v7.0/forgejo
v10.0/forgejo
v9.0/forgejo
v8.0/forgejo
v1.21/forgejo
v1.20/forgejo
v1.19/forgejo
v1.18/forgejo
v1.17/forgejo
v17.0.0-dev
v15.0.3
v11.0.15
v15.0.2
v11.0.14
v15.0.1
v14.0.5
v11.0.13
v15.0.0
v14.0.4
v11.0.12
v16.0.0-dev
v14.0.3
v11.0.11
v14.0.2
v14.0.1
v13.0.5
v11.0.10
v14.0.0
v13.0.4
v11.0.9
v15.0.0-dev
v13.0.3
v11.0.8
v13.0.2
v11.0.7
v13.0.1
v13.0.0
v14.0.0-dev
v12.0.4
v11.0.6
v12.0.3
v11.0.5
v12.0.2
v11.0.4
v12.0.1
v12.0.0
v11.0.3
v7.0.16
v13.0.0-dev
v11.0.2
v11.0.1
v7.0.15
v11.0.0
v12.0.0-dev
v10.0.3
v10.0.2
v7.0.14
v10.0.1
v7.0.13
v10.0.0
v11.0.0-dev
v9.0.3
v7.0.12
v9.0.2
v7.0.11
v9.0.1
v7.0.10
v9.0.0
v10.0.0-dev
v8.0.3
v7.0.9
v8.0.2
v7.0.8
v8.0.1
v7.0.7
v8.0.0
v7.0.6
v7.0.5
v9.0.0-dev
v7.0.4
v1.21.11-2
v7.0.3
v7.0.2
v7.0.1
v7.0.0
v1.21.11-1
v1.21.11-0
v1.21.10-0
v8.0.0-dev
v1.21.8-0
v1.21.7-0
v1.21.6-0
v1.21.5-0
v1.21.4-0
v1.21.3-0
v1.20.6-1
v1.21.2-1
v1.21.2-0
v1.20.6-0
v1.21.1-0
v1.20.5-1
v1.21.0-rc2
v1.21.0-rc1
v1.20.5-0
v7.0.0-dev
v1.21.0-rc0
v1.20.4-1
v1.20.4-0
v1.20.3-0
v1.20.2-0
v1.20.1-0
v1.20.0
v1.19.4-0
v1.21.0-dev
v1.20.0-rc2
v1.19.3-0
v1.19.2-0
v1.19.1-0
v1.19.0-3
v1.19.0-2
v1.18.5-0
v1.20.0-dev
v1.19.0-rc0
v1.18.3-2
v1.18.3-1
v1.18.3-0
v1.18.2-1
v1.18.2-0
v1.18.1-0
v1.18.0-1
v1.18.0-0
v1.18.0-rc1-2
v1.18.0-rc1-1
v1.18.0-rc1
v1.18.0-rc0
v1.19.0-dev
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
arch
riscv64

Archived

backport/v1.19
Scheduled for backport to Forgejo v1.19

Archived

backport/v1.20
Scheduled for backport to Forgejo v1.20

Archived

backport/v1.21/forgejo
Scheduled for backport to Forgejo v1.21

Archived

backport/v10.0/forgejo
Automated backport to v10.0

Archived

backport/v11.0/forgejo
Automated backport to v11.0
backport/v12.0/forgejo
Automated backport to v12.0

Archived

backport/v13.0/forgejo
Automated backport to v13.0

Archived

backport/v14.0/forgejo
Automated backport to v14.0

Archived

backport/v15.0/forgejo
Automated backport to v15.0
backport/v16.0/forgejo
Automated backport to v16.0
backport/v7.0/forgejo
Scheduled for backport to Forgejo v7.0

Archived

backport/v8.0/forgejo
Scheduled for backport to Forgejo v8.0

Archived

backport/v9.0/forgejo
Scheduled for backport to Forgejo v9.0

Archived

breaking
The release containing this change is not backward compatible
bug
Something is not working

Archived

bug
confirmed
it can be reproduced
bug
duplicate
bug has already been reported in the Forgejo tracker
bug
needs-more-info
the information provided does not contain enough details
bug
new-report
bug has just been reported and need triage (default label on issue creation)
bug
reported-upstream
bug cannot be fixed within Forgejo easily, it has been reported upstream
code/actions
Forgejo Actions feature
code/api
API
code/auth
Forgejo Authentication
code/auth/faidp
Forgejo as Identity Provider (in OAuth/OIDC flow)
code/auth/farp
Forgejo as Relying Party / Client (in OAuth/OIDC flow)
code/email
Everything related to email in Forgejo
code/federation
Federation
code/git
Related to the Git backend in Forgejo
code/migrations
Migration between Git forges (i.e. for GitHub, GitLab, Gitea, Forgejo, etc.). NOT for database migrations.
code/packages
Forgejo package and container registry
code/wiki
database
MySQL
https://www.mysql.com/
database
PostgreSQL
https://www.postgresql.org/
database
SQLite
https://sqlite.org/
dependency-upgrade
https://codeberg.org/forgejo/forgejo/issues/2779
dependency
Chi
https://github.com/go-chi/chi/

Archived

dependency
Chroma
https://github.com/alecthomas/chroma/

Archived

dependency
F3
https://f3.forgefriends.org/
dependency
ForgeFed
https://forgefed.org
dependency
garage
https://git.deuxfleurs.fr/Deuxfleurs/garage
dependency
Gitea
https://github.com/go-gitea/gitea

Archived

dependency
Golang
https://go.dev/
Discussion
duplicate
This issue or pull request already exists
enhancement/feature
New feature
forgejo/accessibility
Accessibility (a11y)
forgejo/branding
Branding (logo, name, tagline etc.)
forgejo/ci
Forgejo Actions CI configuration
forgejo/commit-graph
The commit graph feature and page.
forgejo/documentation
forgejo/furnace cleanup
Keeping Forgejo in sync with its dependencies and contributing back to them

Archived

forgejo/i18n
t9n/translation, l10n/localization, and i18n/internationalization of Forgejo
forgejo/interop
Interoperability with other services: Webhooks, bridges, integrations
forgejo/moderation
Moderation
forgejo/privacy
Privacy first
forgejo/release
Release management
forgejo/scaling
Performance and scaling
forgejo/security
Security (please disclose responsibly)
forgejo/ui
User interface
Gain
High
User research provides indicators that this would be good to have, interested contributors are encouraged to pick this.
Gain
Nice to have
This is likely worth having, but the assumption is not backed by user research data (it might benefit a small amount of users only.) Unlikely to receive much attention, but feel free to pick.
Gain
Undefined
Not enough information to assess the request's benefits. This issue may be closed if no gain is established: You can help by giving us more input.
Gain
Very High
User research indicates that this is an important improvement for Forgejo users. Contributions very welcome!
good first issue
Optimal for first-timers! Make sure to look for further explanations and ask for help if needed. If you want, you can consider the person who added this label as a point of contact.
i18n/backport-stable
This PR needs to be backported to stable branch of Forgejo safely and manually, using a migration script.
impact
large
Large impact: Potential data loss, many users affected, major degradation in UX.
impact
medium
Medium impact: Several users affected, degradation in UX, workarounds might be available but inconvenient.
impact
small
Small impact: No data loss, workarounds might be available, affects few users.
impact
unknown
Report was not yet triaged to assess impact.
Incompatible license
This pull request contains changes that are not (yet) compatible with the current Forgejo license
issue
closed
The issue was resolved in the repository of the dependency
issue
do-not-exist-yet
An issue should be created in the respository of the dependency
issue
open
An open issue exists in the upstream repository of the dependency
manual test
Pull requests that have been merged with a manual test

Archived

Manually tested during feature freeze
The manual test instructions were followed
OS
FreeBSD
Specific to the FreeBSD Operating System
OS
Linux
Specific to (GNU/)Linux Operating Systems
OS
macOS
Specific to the MacOS Operating System
OS
Windows
Specific to the Windows Operating System
problem
A user report about a problem. Needs to be triaged to find potential solutions.
QA
regression
found in the version of the milestone and not before
release blocker
Issues that must be fixed before the release can be published
Release Cycle
Feature Freeze
Only bug fixes with automated tests (except for CSS/JavaScript)
release-blocker
v7.0
Issues that must be fixed before Forgejo v7.0 can be released 17 April 2024

Archived

release-blocker
v7.0.1
Issues that must be fixed before Forgejo v7.0.1 can be released

Archived

release-blocker
v7.0.2
Issues that must be fixed before Forgejo v7.0.2 can be released

Archived

release-blocker
v7.0.3
Issues that must be fixed before Forgejo v7.0.3 can be released

Archived

release-blocker
v7.0.4
Issues that must be fixed before Forgejo v7.0.4 can be released

Archived

release-blocker
v8.0.0
Issues that must be fixed before Forgejo v8.0.0 can be released

Archived

release-blocker/v9.0.0
Issues that must be fixed before Forgejo v9.0.0 can be released

Archived

run-all-playwright-tests
Add this label to a PR to run all playwright tests manually.
run-end-to-end-tests
Trigger additional tests on the PR when it is ready to be merged
stage
2-research
Needs research to moe on.
stage
3-design
Needs design to move on
stage
4-implementation
This is actionable and waits for implementation
test
manual
manual testing has been documented
test
needed
test should be added
test
needs-help
help needed to add a test
test
not-needed
no additional test is needed
test
present
test has been added
untested
Pull requests that have been merged with no test and submitted as is to the dependency where they belong

Archived

User research - time-tracker
Time tracking feature for issues and the JS stopwatch.
valuable code
This PR was closed because the implementation is incomplete
worth a release-note
Add this PR to the release notes
User research - Accessibility
Requires input about accessibility features, likely involves user testing.
User research - Blocked
Do not pick as-is! We are happy if you can help, but please coordinate with ongoing redesign in this area.
User research - Community
Community features, such as discovering other people's work or otherwise feeling welcome on a Forgejo instance.
User research - Config (instance)
Instance-wide configuration, authentication and other admin-only needs.
User research - Errors
How to deal with errors in the application and write helpful error messages.
User research - Filters
How filter and search is being worked with.
User research - Future backlog
The issue might be inspiring for future design work.
User research - Git workflow
AGit, fork-based and new Git workflow, PR creation etc
User research - Labels
Active research about Labels
User research - Moderation
Moderation Featuers for Admins are undergoing active User Research
User research - Needs input
Use this label to let the User Research team know their input is requested.
User research - Notifications/Dashboard
Research on how users should know what to do next.
User research - Rendering
Text rendering, markup languages etc
User research - Repo creation
Active research about the New Repo dialog.
User research - Repo units
The repo sections, disabling them and the "Add more" button.
User research - Security
User research - Settings (in-app)
How to structure in-app settings in the future?
No labels
arch
riscv64
backport/v1.19
backport/v1.20
backport/v1.21/forgejo
backport/v10.0/forgejo
backport/v11.0/forgejo
backport/v12.0/forgejo
backport/v13.0/forgejo
backport/v14.0/forgejo
backport/v15.0/forgejo
backport/v16.0/forgejo
backport/v7.0/forgejo
backport/v8.0/forgejo
backport/v9.0/forgejo
breaking
bug
bug
confirmed
bug
duplicate
bug
needs-more-info
bug
new-report
bug
reported-upstream
code/actions
code/api
code/auth
code/auth/faidp
code/auth/farp
code/email
code/federation
code/git
code/migrations
code/packages
code/wiki
database
MySQL
database
PostgreSQL
database
SQLite
dependency-upgrade
dependency
Chi
dependency
Chroma
dependency
F3
dependency
ForgeFed
dependency
garage
dependency
Gitea
dependency
Golang
Discussion
duplicate
enhancement/feature
forgejo/accessibility
forgejo/branding
forgejo/ci
forgejo/commit-graph
forgejo/documentation
forgejo/furnace cleanup
forgejo/i18n
forgejo/interop
forgejo/moderation
forgejo/privacy
forgejo/release
forgejo/scaling
forgejo/security
forgejo/ui
Gain
High
Gain
Nice to have
Gain
Undefined
Gain
Very High
good first issue
i18n/backport-stable
impact
large
impact
medium
impact
small
impact
unknown
Incompatible license
issue
closed
issue
do-not-exist-yet
issue
open
manual test
Manually tested during feature freeze
OS
FreeBSD
OS
Linux
OS
macOS
OS
Windows
problem
QA
regression
release blocker
Release Cycle
Feature Freeze
release-blocker
v7.0
release-blocker
v7.0.1
release-blocker
v7.0.2
release-blocker
v7.0.3
release-blocker
v7.0.4
release-blocker
v8.0.0
release-blocker/v9.0.0
run-all-playwright-tests
run-end-to-end-tests
stage
2-research
stage
3-design
stage
4-implementation
test
manual
test
needed
test
needs-help
test
not-needed
test
present
untested
User research - time-tracker
valuable code
worth a release-note
User research - Accessibility
User research - Blocked
User research - Community
User research - Config (instance)
User research - Errors
User research - Filters
User research - Future backlog
User research - Git workflow
User research - Labels
User research - Moderation
User research - Needs input
User research - Notifications/Dashboard
User research - Rendering
User research - Repo creation
User research - Repo units
User research - Security
User research - Settings (in-app)
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
12 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/forgejo#7254
Reference in a new issue
forgejo/forgejo
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?