mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-10 16:44:50 -05:00
[FR] Use matrix spaces for github like discussion and issue tracker. #7426
Closed
opened 2025-11-02 07:25:41 -06:00 by GiteaMirror
·
12 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
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
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#7426
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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?
Originally created by @LecrisUT on GitHub (Jun 4, 2021).
Use cases/Benefits
Discussion
spacespecs having been included in default matrix, and the upcomingthreadsupport (currently only implemented in dendrite servers), matrix is becoming feature complete to support any features needed for discussions.Potential design
@LecrisUT commented on GitHub (Jun 14, 2021):
@lunny could you also add a tag as kind/federation? This can serve as an alternative approach to the ActivityPub/ForgeFed federation.
@anthonyjmartinez commented on GitHub (Jul 11, 2021):
Thumbs up on this proposal from me. My present use case suits this quite well as I:
That said, and playing Devil's Advocate a bit, there are rather extreme performance issues surrounding Matrix federation that were well highlighted during a large spam attack circa Synapse 1.37 (prompting 1.37.1). Furthermore, Spaces was introduced on the server side in Synapse 1.34, and from the traffic flowing through my instance it would appear that something like 15% of all homeservers are actively maintained to the point they even support spaces at all. Inclusion of such a feature, while desirable, should make certain it doesn't provide a vehicle to degrade Gitea performance on instances opting to use it.
@LecrisUT commented on GitHub (Jul 11, 2021):
Good points, these could be handled from a design perspective.
For starters, we should still be using the
giteaUI, so for those that do not have a matrix account or a server that supports spaces, they would still be able to register locally to that server, and appear asgiteamanaged bots on the matrix server. The ForgeFed issue seems to be getting some traction so they could also use that and we add a local bridge to combine these approaches.For the performance, maybe we can use a stripped down version of
dendriteor just thego-matrixclient. We do not need to actually run the matrix servers ourselves, we just need to be able to run a bridge/bot service which should minimize the impact.I may start hacking something together next month if nobody else starts it up. Or we can open up an organization on
giteaorgithuband make an initial fork so that people can have a place to discuss and test. Also we should coordinate with Half-Shot/matrix-github design.@fnetX commented on GitHub (Feb 12, 2022):
I object to this issue, as running a Matrix server beside Gitea might
A big bonus of Gitea is that it's easy to self-host, it just runs, even on small VPS, Raspberrys etc. I think this will be lost if using Matrix.
Also note that this adds concurrent protocol implementations (Matrix + AP). I don't think this is a pretty good idea.
@LecrisUT commented on GitHub (Feb 12, 2022):
Actually the idea is not to have a matrix server managed by gitea. The binary would only manage the bot, so it will not be more expensive than a client. I've looked in the backend a bit, and I agree it would be quite complicated to implement unless we can abstract the xorm part to allow for either protocol. For now it is ok if the matrix users are not federated.
@ShadowJonathan commented on GitHub (Feb 12, 2022):
WRT automation, matrix has two methods of operation; "application services", and bots. The main difference is that appservices can control the server to a more advanced degree (being allocated a sub-portion of the namespace for it to manage), but it's also more intensive two-way local communication, so in this sense the gitea server would have to be on the same server (or close) to manage these rooms.
Alternatively, you can have the gitea matrix service be a bot, this'd then manage the rooms as an automoderator, and you could use remote matrix servers to manage your discussions, however, you lose your ability to easily manage ghosts on these rooms.
It depends on how gitea wants to manage or use matrix, if it wants to "outsource" all discussion for a PR to it, then it needs to also require every user to have a corresponding matrix server, and then every gitea user would have to verify their matrix account to their gitea account.
Alternatively, it could be used as storage, however, the gains here would be dubious, as you'll still have to expose the same discussions interactions on this room level to be able to take advantage of remote users.
In the end, it's about where the line is drawn as to how much matrix manages and is given responsibility for, and how much gitea wants close and ideal integration. Embedding a matrix server inside gitea (so it's endpoint doubles as a matrix server) could be a solution, but it may have trade-offs with the performance profile it would try to hit.
I recommend giving a look at Dendrite, and see to what extent it could be embedded, if that's the route forward.
Keep in mind that, as of right now, matrix has some limitations;
These problems are intended to be fixed, but atm those are the limitations/difficulties.
@anthonyjmartinez commented on GitHub (Feb 15, 2022):
The devil's advocate position ought be stronger. Matrix is not stable. Neither is ActivityPub. The only mostly working federated system that exists today is email, and that too is generally a disaster.
@ghost commented on GitHub (Apr 15, 2022):
Although this discussion has proposed some interesting ideas, I think this issue should be closed. Work has already started on ActivityPub federation for users, issues, and repos, and using the Matrix protocol as well for federation adds too much complexity.
@LecrisUT commented on GitHub (Apr 15, 2022):
Since this is altogether a different implementation, I would suggest instead to decouple it from the planned gitea federation until we have someone who can work on it. Leave it open to indicate that it's still a possibility for the future.
@ghost commented on GitHub (Apr 16, 2022):
Sure, I'd be fine with leaving it open for now. Also FYI, the ActivityPub federation isn't planned, it's currently in active development.
@jcollie commented on GitHub (Jul 31, 2022):
One thing to think about is the performance on your regular Matrix client if you participate in hundreds (or potentially thousands) of Gitea issues that are linked to Matrix rooms. My guess is that existing Matrix clients would start to suffer when handling more than tens of rooms. Users would need to unsubscribe from most issues which means that they would miss important updates.
@6543 commented on GitHub (Jul 31, 2022):
-> ForgeFed