最重要的资产在外面
源代码就是公司造出的一切。想删除时不是自己删,而是请求对方删除;备份保留到什么程度,由服务条款决定。
为什么要自托管
外部仓库上手很快。代价是产品的设计与历史、谁在何时改了什么,全都堆在别人的基础设施上。
源代码就是公司造出的一切。想删除时不是自己删,而是请求对方删除;备份保留到什么程度,由服务条款决定。
在封闭的内网、工厂或现场,一次 clone 都通不过。有些地方不是规定不允许,而是物理上就到不了。
金融、医疗与公共部门审查问「那些源代码保存在哪里」时,除了拿出外部供应商的条款,没有别的答案。
产品
放代码的地方和讨论代码的地方各自为政,最后还得再买一个工具。SSemRepo 把三者一并给齐。
git clone 与 push 通过 HTTPS 直接可用。在浏览器里读文件、提交与差异,迁移过来的 Subversion 仓库也在同一界面阅读。
议题、里程碑、标签与负责人,拉取请求与代码评审,讨论板与 Wiki。都在同一个项目里完成。
群组与权限、注册审批、邮件通知与模板、站点标志与备份,都在管理界面里改。不必为了改动而重新部署。
功能
HTTPS 的 clone 与 push、分支与标签、提交列表与差异、文件浏览与网页编辑、派生。
迁移而来的 svn 仓库,其修订、文件与差异都在与 git 相同的界面阅读。旧资产不必丢弃。
标签、负责人与里程碑,父子议题,附件与评论,以及只返回你有权查看内容的搜索。
分支之间的差异、逐文件的评审意见、冲突提示、合并与自动关闭。
公告放讨论板,规范与设计放 Wiki —— 使用与议题相同的编辑器和相同的附件。
产品界面提供韩语、英语、日语、中文、德语、俄语、法语、越南语、印尼语与西班牙语。
界面
学一套新工具的时间,才是采用它的真正成本。界面沿用开发者早已熟悉的布局 —— 左边项目,中间任务,上方代码。
界面说明
命令行
人点着完成的事,和机器反复执行的事,并不相同。SSemRepo 附带自己的命令行工具 —— 在脚本里调用,接在构建之后,或者交给编码智能体。
议题、讨论板、Wiki、拉取请求、里程碑、群组,直到站点管理。结果既可作为人读的表格,也可作为机器读的 JSON。
把账号分成不同配置,再把目录与该在其中工作的账号绑定。进入该目录之下,自然就成了那个账号。
它作为 git 凭据助手接入,push 时不再反复索要口令。保存的机密与该机器绑定后加密,只把文件拷到别的机器是打不开的。
随附可直接接入 AI 编码工具的使用说明。「把这个缺陷提成议题」于是真的跑得起来。
这段记录的说明
架构
浏览器与 git 客户端进入同一个地址。Web 服务器接收后交给 Tomcat,历史写入 PostgreSQL,仓库文件留在公司自己的磁盘上。
图示说明
迁移
从零起步的团队,少于早已积累多年的团队。你现在所用工具里的 git 与 svn 仓库、议题与附件都能迁过来,迁移步骤与工具一并提供。
从现用工具的数据库里读出议题、评论与历史,迁入 PostgreSQL。不是把值当成文本替换,而是用驱动读出后原样写入。
git 与 svn 仓库以及上传文件连目录一起整体复制。仓库本身无论出自哪种工具都是标准的,无需另行调整。
用户、群组与角色一同迁移。若口令方式相符,原有口令继续可用,无需全员重新注册。
关闭旧系统之前,在两个界面比对同一批资料。迁移时始终留着可以退回的位置。
迁移的规模与日程,取决于仓库数量与磁盘大小。与我们联系,我们会一起查看你当前的环境。
部署
两个容器 —— 应用与 PostgreSQL。你要决定的只有仓库存放在哪块磁盘。
建好表、载入初始数据,然后创建管理员账号。指南里写明了要敲的命令。
指向公司域名并配置 HTTPS。由于 git 流量会经过,只需放宽请求体大小限制。
确定注册方式,建立群组与项目。若需要迁移,旧资料就在这一步导入。
技术
一台普通的 Java 服务器就够。运维团队用他们早已熟悉的方式启动与重启。
不夹带沉重的映射层,直接书写 SQL。查询慢的原因,就在查询里找到。
为让首屏轻快呈现,削减了下载量。连字体也由公司内网直接提供。
不是对着桩件,而是连上真实服务器:建项目、推送、开拉取请求,全程跑一遍。
告诉我们团队规模与当前使用的仓库,我们会提出合适的方案,并协助试装与迁移。
联系我们halo@levelupsoft.com+82 10-8472-4070
Levelupsoft Inc.