@go-gitea/维护者
#1029关闭后,我想我们应该为下一步做一个新的计划。 对此有什么想法吗?
用于扩展 gitea 的插件(包括主题)解决方案。
是否可以在构建过程中添加适当的操作系统包? 我一直在尝试为 Fedora 组合一些东西,但是 go 似乎打包起来有点混乱。 #31 对此进行了讨论,但似乎仍然是开放的。
我们正在使用 ansible 在 Debian 系统上部署 tarball,这不是很方便,但它有效。 最常见发行版的存储库会很好,但它需要到位和维护。
几点建议:
联合拉取请求/问题/分叉
联合拉取请求/问题/分叉
可能不是 Fediverse 意义上的联合(ActivityPub、OStatus、diaspora* 等),但我希望能够以最适合项目的任何方式与自己实施的远程实例进行交互。
让团队和组织由来自多个实例的用户组成也可能很酷,尽管这可能非常难以实施。
来自具有最低编码技能的最终用户的 POV 的两个建议,他们试图通过报告错误和提供 UX 反馈来帮助我使用的开源项目:
1) 帮助标准化 ForgeFed! 我希望在 Gitea(和其他社区托管的代码伪造)实例上提交错误的用户体验就像一个巨大的、分散的 GH。
2) 使项目的每个部分都成为 Git 存储库,因此可以轻松地从、分支、推送或分叉中提取问题、维基等。 GL 和 sr.ht 至少用他们的一些组件来做到这一点。 除了有用之外,这可能有助于解决第 1 点)
通过电子邮件回复票证的能力将是可用性的一大进步
允许从 UI 编辑所有配置(并且可能在此过程中更改配置文件格式)
也许将大部分配置存储在数据库中并为其提供适当的 cli 和 api
@sapk @tboerger我想说我们应该切换到viper进行配置,这样我们就可以摆脱 ini(以及我们使用它的一些错误)并获得诸如在 Gitea 运行时重新加载配置和适当的 env 变量之类的东西.
我愿意解决这个问题,但我不确定我是否会在不久的将来找到时间。
我也是为了毒蛇。 2年前我曾尝试这样做,但没有时间完成它......但我可以再试一次:)
我想要一个更小的配置文件......很多这些设置不需要通过静态配置文件设置,可以很容易地添加到数据库中,并出于性能原因被缓存。
我认为我们可以首先添加一个数据库配置表,然后将最易更改的配置项从 ini 文件移到那里,只留下需要重新加载的项。
@lunny和所有人:同意将许多设置移动到数据库并让它们在 Web 界面(站点范围或存储库范围)中进行配置感觉是向前迈出的一大步。 这样也很容易让像 tea 或 gitea 这样的工具本身能够从命令行更改这些值,因此您仍然可以编写默认设置的脚本。
模块系统听起来很棒。 我相信有很多人愿意为 gitea 添加新功能。
@belliash @sapk IMO 插件/模块在不完全重构模型包并添加更多抽象的情况下无法有效实现。 我已经测试了多种技术,比如 Go 的原生插件支持。
结果是巨大的二进制文件,它们严重依赖于 Gitea 二进制文件。
我认为改进 webhook 支持和通过 webhooks 添加自定义页面更现实,因为我们已经有一个安静的成熟 API 可用于数据库操作。
@jonasfranz我非常赞成重构模型以删除它的许多依赖项。
go list -f '{{ .Imports }}' code.gitea.io/gitea/models
揭示了 98 (!) 个直接进口。 其中50个是非走核心。
go list -f '{{ .Deps }}' code.gitea.io/gitea/models
揭示了 437 (!!) 个传递依赖项。 (其中304个是非走核心)
看看无人机源,我们得到了很多基于 webhooks 的可插拔的东西。
除了像packer这样的插件模型有意义之外,还有一个基于grpc的插件系统。
@tboerger你能提供一个无人机可插拔东西的例子吗? 你是说基于docker镜像的插件系统吗?
我说的是配置、机密等的扩展,接口应该在https://github.com/drone/drone/tree/master/plugin上定义
我同意你的看法,Gitea 的下一步应该是插件系统。 这几天我也在想这个。 我会试试插件系统。
我认为它应该与无人机的插件系统类似,但有更多。 我们必须允许插件具有 UI,并且应该自动使用 Gitea 的 OAuth2 登录。 我们应该对插件制定一些安全政策。 等等。
我想分享一个我们在 2016 年左右制作的比较表,以_决定_为开源地理空间基金会选择哪个托管平台。 在该表中,我们列出了对我们很重要的功能。 Gitea 在其中一列中:
https://wiki.osgeo.org/wiki/GitInfrastructureComparison
您会看到 2016 年缺少的一个重要功能今天仍然缺少:通过邮件回复(评论/回复)——截至今天,其他一些功能已经实现。
@strk工具到migrate from github
和Comments on diff lines
就完成了。
需要邮件模板定制
见#6037
因此,已经有相当多的模板定制成为可能——主题行是我认为我们唯一没有的东西。
然而,我们真正应该做的是为电子邮件和 git serv 挂钩消息启用 i18n。
需要恢复拉取请求。
见#6375
完全支持 UI 中的标签。 创建、分配、更改、删除等。我真的很想念这个功能。
我赞成在数据库中进行配置(使用 cli 或 api 来配置它,例如创建用户和身份验证 ldap 等)和插件系统。
这两个人应该推动 gitea 向前迈出一大步。
$GITEA_ROOT/owner/reponame
恕我直言,这是一个糟糕的架构决策,并导致用户假设我们的存储库仍然可以被服务器上的 git 使用,而无需进一步思考 - 他们不应该。 我们应该转向$GITEA_ROOT/repository-$ID
,可能是分片的。 (这样做将允许删除大量对repo.MustOwner()
或repo.GetOwner()
的调用).git/config
或中央.gitconfig
core.hooksPath
变量,然后考虑我们将在何处放置钩子。code.gitea.io/gitea/models
取决于必须停止的太多事情。models.x
必须销毁。 这是一个糟糕的架构决定。在 UI 部分,我建议提供两个 UI:
- 认为我们应该认真对待@lunny 提议的杜松子酒举措
我建议用 go-chi 而不是杜松子酒。
- 我们应该自动剥离我们的 Hugo 网站文档,以便它可以通过 CrowdIn 国际化
恕我直言,网站/文档根本不应该被翻译,无论如何它总是过时的......
恕我直言,网站/文档根本不应该被翻译,无论如何它总是过时的......
但是对于crowdin,它过时会通知人们并使当前的翻译无效。
是否可以在构建过程中添加适当的操作系统包? 一世
也许由 GItea 开发人员控制和版本控制的 PPA 风格包是一个好主意,但我不喜欢 Debian 风格的“冻结和向后移植安全补丁”快速移动项目(例如 GItea)的版本控制方式
我仍然想要https://github.com/go-gitea/gitea/issues/3840。
我认为它可以通过向后兼容来实现。
但这只有在新路由库的迁移稳定下来后才会变得清晰。
先决条件的基础清理/重构也会使它更容易。
我仍然想要#3840。
我认为它可以通过向后兼容来实现。
但这只有在新路由库的迁移稳定下来后才会变得清晰。
先决条件的基础清理/重构也会使它更容易。
在这种情况下,您可能会失去对 Drone 的支持,因为它目前还没有为 Gitlab 实现。
我仍然想要#3840。
我认为它可以通过向后兼容来实现。
但这只有在新路由库的迁移稳定下来后才会变得清晰。
先决条件的基础清理/重构也会使它更容易。
我们可能不需要这个组功能来影响存储库 url,我们可以只创建可以显示存储库的文件夹,但保持存储库 url 与现在相同
@tboerger
我的想法是,如果 repo 没有嵌套在组/目录中,则 URL 可以保持不变。
仅当 repo 使用组/目录功能时,才需要“升级”URL。
但是,是的,带有新 URL 的存储库可能无法立即获得 Drone 支持。
@lafriks
这听起来像一个好主意。 我对这个特性的使用场景是托管Git模块或者Repo项目的子项目。 所以,我不确定它是否涵盖了这种情况。
不用担心。 我也不愿意做出如此广泛的,可能是破坏性的改变。
这个问题有很多好主意,我们应该保留它们并解决它们。
然而,我们应该在何时以及如何选择? 这种讨论可以永远持续下去。
我建议所有者选择主题或在他们和成员之间投票。
你怎么认为?
@DblK没错。 但我认为我们可以在迁移到 gitea.com 后做到这一点。 目前我们需要更多用户的反馈。
- 水银支持
不谢谢。 它被称为“git”ea 是有原因的。
我理解扩大范围的愿望,但
膨胀就在眼前……
mercurial import 将是一个替代方案
在2019年7月26日下午一点52分50秒UTC,桑德罗桑蒂利[email protected]写道:
- 水银支持
不谢谢。 它被称为“git”ea 是有原因的。
我理解扩大范围的愿望,但
膨胀就在眼前……——
您收到此消息是因为您发表了评论。
直接回复此邮件或在 GitHub 上查看:
https://github.com/go-gitea/gitea/issues/6998#issuecomment -515461704
联合拉取请求/问题/分叉
可能不是 Fediverse 意义上的联合(ActivityPub、OStatus、diaspora* 等),但我希望能够以最适合项目的任何方式与自己实施的远程实例进行交互。
在#1612 中已经有一些关于这个的讨论。 ForgeFed 收集了一些有趣的想法,让联邦成为像 Gitea 这样的代码伪造。 如果这能成为 Gitea 的下一个大特色,那就太棒了!
我喜欢图形文件(JPEG、PNG 和 PDF)的视觉差异工具,类似于Github 提供的工具。
我们已经有一个 PR 来区分图像
我们已经有一个 PR 来区分图像
是的,但这不包括滑动或洋葱皮预览,仅并排。 此外,我认为它不包括 PDF 文件。 我们在这里使用 Gitea 来开发图形材料(包括手册和小册子),PDF 的良好视觉差异将改变生活。
我有一些想法,我只想扔掉 :smile_cat:
使用 Cloud KSM 透明地加密/解密任何秘密。 这将防止数据库被黑客攻击和暴露。 这个想法是我们可以在写入数据库之前使用带有 XORM 编码/解码方法的自定义类型来加密秘密数据。 我们在这里做了一个演示示例: https :
OIDC 支持:通过 Gitea 登录时,除了 oauth2 令牌外,还返回 id_token
Gitea 用户配置文件可以在任何经过验证的 Git 存储库中显示用户的配置文件。 示例:用户可以固定 Github/Gitlab/BitBuket/Gitea 存储库。 这个想法是用户也不能忽视其他的。 那么,gitea 可以成为一个全球用户配置文件吗?
对 repos 的自定义域支持 (go)
与Github完全兼容(我在这方面看过一些工作,不知道已经做了多少。)
可选的语言服务器集成。 类似于 Sourcegraph 之类的东西,比如内置于 UI 中的导航。
我想在短时间内为 1 和 2 做出贡献。
也许我们可以以已更改的文件夹和文件树的形式显示差异 - 就像在 BitBucket 中一样,而不是一个包含所有更改的大页面。 它会更易读。
也许可以选择每天或每周在所有存储库上汇总通知。
有点像上周活动的总结。
添加通过自定义模板和标准变量池定义自定义 webhook 的可能性。
不是 Gitea 进化,而是一个有用的辅助项目:#7853
功能与 github 相当!
或者,至少,维基上的最新列表显示了我们在实现平等之前仍然需要的所有功能。 这将是构建未来开发工作的好方法。
@lonix1查看https://docs.gitea.io/en-us/comparison/以获取该列表
@kolaente看起来我们几乎拥有所有的刻度线! 是的!
我在这里很新,但也是一个愿意编码的人; 如果 gitea 支持 gists,我会喜欢它。 这是我使用中最大的漏洞之一。 很容易解决,但我宁愿只是有一个要点系统。
我认为要点的问题是https://github.com/go-gitea/gitea/issues/693 (链接,因为它似乎还没有从这里被引用)。
还添加Help
文档,可以通过Help
链接访问。 本文档的初始来源可以来自GitHub 帮助,经过 Gitea 特定的修改。
@bagasme帮助不能从 github 中获取,这将侵犯版权。 有人将不得不从零开始写Gitea帮助
如果越来越多的人开始采用自托管来共享他们的开源项目,那么需要有一种方法让非注册用户提交问题而无需在每个实例上创建一个帐户(大多数人极不可能注册错误报告)。
2a. 容器注册表 UI 选项卡和身份验证。
某种插件/扩展系统。
大多数建议都很好,但它们会在核心代码库中产生问题。
最好有官方(和非官方)插件。 这也意味着插件作者可以更频繁地发布。
@lonix1好吧,git hooks、webhooks 和 Swagger API 可以被视为插件连接点。 我完全支持更多插件支持,但列出一个包含细节的列表可能会有所帮助。 例如,我希望支持与 webhooks 等效的命令行。
@guillep2k例如上面讨论的所有项目管理功能。 这些将非常有用 - 但它们可能涉及代码库的许多部分,以至于 1) 即使对于那些不使用这些功能的人,它们也可能导致问题,以及 2) 因此,这种开发非常缓慢,因为那些负责合并新功能的人知道这种情况是可能的,所以他们很谨慎。
如果这些新功能可以单独发布,那么在合并到主分支之前,它们可以被有意愿的用户试用。
还有其他此类重大新功能的示例,只需向上滚动即可。
@brandonkal GPG 签署自动生成的提交现在可以通过合并 #7631
我想路线图应该分为这四类(我添加了一些示例问题 - 很明显它远非完整 :wink:):
仍然有一些_基本功能_无法正常工作。
例如:
还有一些安全问题:
root
用户(你可以在外面重新映射端口)我想与其他应用程序/服务的集成通常是一件好事。
因为软件开发通常不仅仅依赖于单一工具。
它可能有助于说服一些人在他们的工作场所使用 Gitea。
这两个问题将大大提高互操作性:
通用的 webhooks 也可以避免让其他人知道 gitea 的内部结构。 @guillep2k有一个绝妙的想法,即可以类似于通用 webhook 集成来完成“外部命令”集成。
:警告:这可能会解决这个问题中大多数人想要的“插件支持”的大部分问题。 因为这将能够呼叫用户需要呼叫的任何内容。 但是, @lunny刚刚提到这实际上已经可以通过 git hooks 实现。 我只是不太确定这是否真的是集成其他工具/插件/服务的最佳方式。
此外,在竞争应用程序(即 Git[Hub/Lab])中显然有一些不错的功能(其中大多数可能相当不错):
可以使用 Oracle 数据库作为选项吗? 如果技术上可行。
@DemiusAcademius如果 xorm 更好地支持 oracle,我认为这是可能的。
越来越多的人开始使用 Gitea,例如最近的 GitLab 跟踪器公告也是引起的。 但是 GitHub/GitLab 仍然有网络效应。
联合将是提高不同 Gitea 实例用户之间协作能力的重要驱动力,从而增加整个 Gitea 网络:#1612
据报道,在 UI 中显示大差异的能力是采用 Gitea 的一个限制因素。
解决它的票证:#7341(功能),#7495(崩溃错误)
据报道,在 UI 中显示大差异的能力是采用 Gitea 的一个限制因素。
解决它的票证:#7341(功能),#7495(崩溃错误)
这是一个_巨大的_限制。 IMO一切@alexanderadam列出上述与此相比就相形见绌了。 如果我不能通过在代码中内联注释来查看大的差异,那是一个大问题。
W/R/T 对微软和 Github 的愤怒导致许多项目迁移并导致对联邦的高需求--Gitlab 最近提议禁止在中国和俄罗斯这两个世界上面积和经济最大的国家的员工。 美国军方已将重点转移到中国和俄罗斯(以及其他国家),以削弱它们对美国帝国扩张/利益构成的障碍。 宣传和财政激励措施使微软(Github、Azure)、亚马逊、谷歌、Atlassian(Trello、Jira)甚至 Gitlab 以进攻性角色进入战争、间谍、宣传和监视行业。
我提出这一点是为了感谢那些致力于高度可用的开源远程存储库的人,这些存储库对我们现在使用并仍然依赖的企业和与五角大楼相关的服务几乎没有什么缺点——并提请您注意快速替代方案对于那些希望在远离历史上最强大和敌对的帝国的地方使用互联网和技术的人来说,它正在消失。
也许这个话题足够大,以至于官方网站的一个单独部分来跟踪这个功能的进展,以及一个单独的筹款活动来捕捉这个需求。 看到 ForgeFed 到目前为止的工作,将 ForgeFed 包括在筹款中可能是有益和公平的。 微软与 Github 交锋至今已经 17 个月了,我希望在另外 17 个月内我们可以使用联合 Gitea,或者让“净资产”的剩余部分建立起来。
请不要在这里讨论政治,让我们继续主题——为大家改进Gitea
@lafriks改进无法满足的东西。 营销是寻找外部机会的过程,“政治”是营销分析的 4 个主要类别之一。 一个明智的品牌对人们的 _values_ 的吸引力与他们提供的功能、规格和价格一样多。 对像 Gitea 这样的替代品有一种基于价值观(“政治”)的吸引力,如果不强调和维护它,将无法理解您的消费者和市场机会。
“政治”作为一个术语已成为一种终结思想的陈词滥调,消除了对种族主义、暴力和剥削的讨论。 我只是来这里感谢人们继续研究与美国集中营、拖网监视和我们行业的大多数积极帮助的其他帝国主义利益无关的替代方案。如果你说这些不是 Gitea 所支持的品质,我误会你了,我要走了。
请注意@OKNoah
开源项目的营销 101:
如果 GitLab.com 的透明度冒犯了您,您可以自行托管 GitLab-FOSS。 这是一款非常好的多合一产品。 但是如果你想要一个简单的安装或者需要比 GitLab 或 GitHub Enterprise 更低的内存使用量,Gitea 是基本 Web 功能的一个不错的选择。
该主题是关于讨论可以帮助缩小差距而又不影响简单性的功能。
我的 2 美分 - 我认为这个帖子太长了,是时候开一个新问题来总结这里已经表达的任何想法了。 并关闭这个。
如果你说这些不是 Gitea 所支持的品质,我错了,我会离开。
这不是所说的。 所说的是,该线程是讨论可以对 Gitea 进行哪些更改/改进(特别是技术方面的更改/改进)的地方。 这些讨论非常受欢迎,但不是在这个特定的线程中。
作为领导之一,我将锁定此线程,正如@XVilka所说的那样,我们已经征求了很多反馈,现在应该对下一步进行评估。
我们可以更改 v2 的 FHS 合规性路径。 已经可以使用标志,但它应该是 v2 的默认值。
最有用的评论
联合拉取请求/问题/分叉