跳转到主要内容

从GitHub仓库同步信息

项目描述

License: AGPL-3

在Odoo实例中加载GitHub数据

此模块允许您

  • 从GitHub获取Odoo社交信息(组织、团队、用户)

  • 从GitHub获取Odoo代码结构信息(仓库、分支)

  • 从GitHub下载源代码

配置

安装后,您需要

  1. 打开您的odoo.conf文件,并添加额外的设置来提及GitHub凭证,以及源代码将下载到的本地路径

    • github_login = your_github_login

    • github_password = your_github_password

    • source_code_local_path = /workspace/source_code/

    注意:确保Odoo进程对该文件夹有读写访问权限

  2. 转到‘设置’/‘技术’/‘参数’/‘系统参数’并定义以下值

    1. github.max_try:在引发错误之前调用API的次数。如果您的连接不稳定/慢,则此值应更高

    2. git.partial_commit_during_analysis:如果您想在每次仓库分析后将分析结果提交到数据库中,请将其设置为True。我们建议在执行初始下载(可能包含大量仓库)时将其设置为True,以减少事务的大小

    /github_connector/static/description/github_settings.png
  3. 转到您的用户表单以将它们添加到新的“Connector Github Manager”组中。此组的成员将有机会运行GitHub同步。

用法

从GitHub进行初始上传

要获取GitHub的信息,您必须

  1. 前往‘Github’/‘设置’/‘同步对象’

  2. 选择您想要同步的对象类型及其Github名称

    /github_connector/static/description/sync_organization.png
  3. 完成后,请访问‘Github’/‘Github社区’/‘组织’

    /github_connector/static/description/github_organization_kanban.png
  4. 可选,一旦组织创建完成,您可以为项目创建系列。前往‘Github’/‘组织’/点击您的组织/‘组织系列’标签

    /github_connector/static/description/github_organization_series.png

选择要下载的分支

此设置将防止下载不想要的分支,只下载主分支(发布版)

  1. 在‘设置’标签中,设置您不想下载的存储库(或您想下载的存储库)。如果设置了‘特定存储库’,则忽略‘忽略存储库’的值。

  2. 在‘设置’标签中,设置您用于持续集成和覆盖的‘外部服务’的URL。

    /github_connector/static/description/github_organization_external_services.png
  3. 完成后,点击“同步”按钮以同步存储库、团队和成员。(此过程可能需要一段时间,具体取决于您的大小)

    /github_connector/static/description/github_organization_sync_buttons.png

团队/成员同步

您可以同步成员团队

  1. 前往‘团队’/树状视图/‘操作’/‘从Github更新’

    /github_connector/static/description/github_team_kanban.png
  2. 在每个团队中,您可以看到成员列表和成员的角色

    /github_connector/static/description/github_team_partner_kanban.png
  3. 在每个团队中,您可以看到存储库列表,但看不到团队权限。(见‘已知问题’部分)

    /github_connector/static/description/github_team_repository_kanban.png

存储库同步

您可以同步存储库的分支

  1. 前往‘存储库’/树状视图/‘操作’/‘从Github更新’

    /github_connector/static/description/github_repository_kanban.png
  2. 在每个存储库中,您可以看到主分支列表和代码源的大小。

    /github_connector/static/description/github_repository_branch_kanban.png

获取源代码

最后,您可以下载所有分支的源代码到本地

  1. 前往‘存储库分支’/树状视图/‘操作’/‘下载并分析源代码’

    /github_connector/static/description/wizard_download_analyze.png
  2. 在树状视图中,您可以手动更新源代码或刷新分析。

    /github_connector/static/description/github_repository_branch_list.png

Github中的数据创建

您可以直接从Odoo在Github中创建两项

  1. 团队

    1. 前往‘设置’/‘在Github创建团队’

    2. 设置信息并点击Github中的创建。

    3. Odoo将尝试创建团队。如果访问权限和数据正确,创建将在Github中直接完成

    4. 稍后,将执行同步,以在Odoo实例中创建相应的团队。

    /github_connector/static/description/wizard_create_team.png
  2. 存储库

    1. 前往‘设置’/‘在Github创建团队’

    2. 设置信息并点击Github中的创建。

    /github_connector/static/description/wizard_create_repository.png

注意

本模块的分析功能是基本的:目前,它只提供分支大小。

尽管如此,您可以根据需要开发额外的Odoo自定义模块来扩展分析功能并获取额外统计信息。

这样,您就可以看到模块github_connector_odoo,如果您的存储库包含Odoo模块。

Try me on Runbot

报告

此模块提供了一些报告

按系列查看分支

/github_connector/static/description/reporting_branches_by_serie.png

按系列查看大小

/github_connector/static/description/reporting_sizes_by_serie.png

技术信息

此模块提供了4个cron任务,您可以选择启用

  • 同步所有组织和团队(cron_update_organization)

  • 同步所有存储库的分支列表(cron_update_branch_list)

  • 下载所有Github分支的源代码(cron_download_code)

  • 分析所有Github分支的源代码(cron_analyze_code)

路线图/已知问题

  • 目前,Github API不提供一些经典UI中可用的一些信息,包括

    1. 团队层次结构:该字段在github_team.parent_id模型中存在,但未使用。

  • 可能的改进

  1. 创建一个新的模块github_connector_website,该模块可以显示团队/存储库/分支信息,供非登录用户查看。

  2. 分析提交(作者、按系列的数量等):此功能已在V8.0 PR中部分实现。

  3. 同步拉取请求、问题、评论:此功能已在V8.0 PR中部分实现。

  • 重构github连接器

    有一个名为PyGitHub的Python库可用。使用它可能很有趣,而不是使用自定义代码。然而,这个库无法很好地访问子对象,目前会产生不必要的API调用。例如,更新存储库应在调用父组织之前进行(当前模块运行速度很快)。

``sudo pip install PyGitHub``

错误跟踪器

错误在GitHub问题上进行跟踪。如果遇到问题,请检查您的错误是否已报告。如果您是第一个发现的人,请通过提供详细且受欢迎的反馈来帮助我们解决问题。

致谢

贡献者

维护者

Odoo Community Association

本模块由OCA维护。

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

要为此模块做出贡献,请访问https://odoo-community.org

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程

构建分布

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面