如何让私有GitHub存储库更易被发现?

4
如果你在一个组织中,可能会有GitHub仓库是私有的(即你无法访问),但知道它们的存在很有用,这样你就可以安排适当的访问权限。
换句话说,我们正在尝试通过某种方式实现可发现性,以便获得访问权限。这可以通过共享readme文件来完成(并注意人们需要一些纪律来编写合理的readme)。
这篇博客“解决内部源代码可发现性问题”看起来是一个潜在的解决方案,但可能需要用户有权查看门户中的所有存储库?我希望用户能够查看所有存储库的readme - 如果他们没有权限,则可以联系readme上列出的人员。
我看到另一个选择是从私有存储库中公开文件(使用gitexporter创建只包含readme的公共存储库,例如在此处)。这使其变为公共的,这不是我的首选,而且需要每个存储库做一些工作,远非理想。虽然它没有给出一个整洁的门户,但应该允许GitHub搜索功能根据主题或关键字找到它?
一个相关的,可能更简单的选择是在这里提出的,其中一名学生将私有存储库中的readme共享为公共GitHub页面。同样,需要每个存储库进行一些工作,没有整洁的门户,但可以通过GitHub搜索找到?虽然公共Github页面可以设为私有,那么只能被具有存储库访问权限的人看到?
所以,如果我总结基本要求:
  • 所有组织存储库(公共、私有或团队)都有一个readme,可以通过组织内某人的搜索访问(最好不需要每个人修改其存储库)。
附加的好功能包括:
  • 所有readme都可以在带有搜索功能的门户中查看
  • 可以制作超级私有(只有协作者可以看到readme - 在readme中标志?),组织私有(只有组织成员 - 默认)和公共(在readme中标志)。
  • 易于实现!
有什么建议吗?

1
通常在任何组织的私有Github中,都会有一些身份验证逻辑,例如某些公司使用Windows ID和密码,在这种情况下,属于该组织的每个员工都将拥有相同的访问权限,因此搜索引擎可以使用相同的SSO登录来访问任何存储库。现在,对于下一步,我们可以使用REST API列出组织下的所有存储库,并访问readme.md文件,如果需要则显示它。 - Deb Das
1
如果您有一个指定的人来协调这个任务,他将成为所有存储库上的合作者。他们可以使用某种爬取脚本来收集所有项目的 README,并将它们复制到一个集中的搜索空间(可能是另一个存储库?),所有员工也将成为合作者。他们还可以提醒开发人员提供充分的 README,并帮助新员工进行搜索。我认为您需要创建一个组织来控制合作者的读写权限。 - Simon Woodward
2个回答

4

我认为你已经在这里提供了一个适当的解决方案。另外,你可以使用API (获取存储库获取存储库中的README文件) 根据定时任务器每天将每个存储库的README保存到数据库/JSON,并基于该数据创建Web界面。

但是,我想详细说明一些改进方面。我发现问题在于搜索的性质。我们并不总是在寻找关键词,有时我们试图找到与我们的问题可能模糊匹配的潜在解决方案,特别是针对拥有数千个存储库的较大组织。在这些情况下,搜索引擎的实施将提供更好的结果。我认为,我们应该收集README和FAQ,并将它们放入Elasticsearch中,为查询公开搜索API。README和FAQ的收集应该成为CI/CD管道的一部分,在将新版本推送到artifactory时,必须同时发布元数据。


谢谢,我认为你对ElasticSearch方法提出了不错的建议,我会研究一下。 - Mark Neal
查看 Elastic Search 时发现了这篇文章,其中讨论了为什么 GitHub 转向使用自定义搜索工具。https://github.blog/2021-12-15-a-brief-history-of-code-search-at-github/ 对于我们来说,那种规模的速度不是非常重要,但我很欣赏他们的新工具尝试实现的搜索类型。无论如何,我会进行更多的研究。 - Mark Neal

2
这似乎是内部仓库的一个使用案例。您可以在此处了解更多有关内部存储库的信息。
是否可以使用内部存储库取决于您公司的政策。
另一个需要考虑的事情是,这将公开您的所有存储库,而不仅仅是 README 文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接