zoukankan      html  css  js  c++  java
  • cube.js 学习(十一)cube + gitbase 分析git 代码

    这个是一个简单的demo,使用gitbase+cube 分析git 仓库代码

    需求

    我们平时使用的gitlab,或者gogs 等git 仓库管理工具,有自己的管理强项,但是对于分析上可能就不是那么强大了
    这个就需要我们进行git 代码文件级别的分析了,可选的工具很多gitstats 就是一个不错的选择,但是大部分是基于
    单仓库管理的,gitbase 则不同,给予我们提供了大批量的分析能力

    环境准备

    • gitbase 安装
      参考官方文档,直接二进制文件就可以了
    • cube.js
      这个我们可以通过全局安装,很简单 npm install -g cubejs-cli

    分析几个git 仓库代码

    demo 很简单,但是当前使用的cube-cli 在获取元数据上有点问题(<0.9.0),但是我们可以手动编写cube schema解决

    • 初始化cube 项目
    cubejs create dalongdemo -d mysql          
    • 启动gitbase 项目

      自己准备git 代码,以下demo 是我自己的环境

    gitbase server -v --host=192.168.0.104 -d git-demos
    • 修改cube 数据库配置

      cube 使用dotenv 解决配置管理,只需要修改.env 文件即可,以下为我自己的环境

    CUBEJS_DB_HOST=192.168.0.104
    CUBEJS_DB_NAME=gitbasee
    CUBEJS_DB_USER=root
    CUBEJS_DB_TYPE=mysql
    CUBEJS_API_SECRET=c9ad3523f1ccf6e6c0c17654b22baa0c942a1106a4e493c025bca1cbf79b61cc2a019d95b77b34d666ebc6172fd09b4b6d9dd0618ee21da6cda3875295cb4f36
    • 手工编写cube schema

      因为gitbase 没有提供表的schema 元数据表信息,为了集成cube 需要我们自己编写cube schema ,以下是一个简单的count 聚合操作

    cube(`repos`, {
        sql: `
        select * from repositories
        `,
        measures: {
          count: {
            type: `count`
          },
        },
    
        dimensions: {
            repository_id: {
            sql: `repository_id`,
            type: `string`
          }
        }
      });
    
    • 项目结构
    ├── index.js
    ├── package.json
    └── schema
        └── repos.js

    启动&&测试

    • 启动cube 项目
    yarn dev

    效果

    • 简单操作

      使用ui 界面操作

    • 说明
      这个只是简单的操作,实际上我们可以做好多强大的功能,充分利用 gitbase 提供的sql 查询接口,可以做好多很灵活的操作

    参考资料

    https://docs.sourced.tech/gitbase/using-gitbase/schema
    https://cube.dev/docs/cube

  • 相关阅读:
    前端CSS部分简单整理
    前端HTML部分简单整理
    Top Android App使用的组件
    使用DialogFragment创建对话框总结
    Rails常用命令
    developer.android.com笔记
    Google Maps API v2 Demo Tutorial
    Android学习的一些问题
    Android学习过程
    Beginning Android 4 Programming Book学习
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10854173.html
Copyright © 2011-2022 走看看