oss-compass / compass-metrics-model

GNU Affero General Public License v3.0
13 stars 4 forks source link

Project Deep Insight supports modification of organizational information(项目深度洞察支持修改组织信息) #97

Closed lishengbao closed 7 months ago

lishengbao commented 8 months ago

Image

  1. 哪些用户可以修改组织信息

    • 仓库/社区管理者: 管理者可以修改其他贡献者的组织信息; 修改方式: 通过提交PR, Review的方式; 有效范围: 当前仓库/社区

    • 贡献者本人: 本人可以在账号社区里面添加组织信息, 效果如下图; 有效范围: 全部仓库/社区

Image

  1. 组织信息发生冲突时, 贡献者本人修改的组织 > 管理者修改的组织
  2. 组织修改完之后何时生效

    • 项目深度洞察实时生效, 不然用户体验差

    • 对应模型可以在两周/一个月重跑模型后生效

lishengbao commented 8 months ago

实现思路: 1: 开发者本人修改组织流程:

个人账号页面填写组织信息--> 后端把组织信息写入contributor_org_index

2: 深度洞察修改组织流程:

洞察页面填写组织信息 -> 应用节点创建pull request -> Github /Gitee merge webhook -> 应用节点响应 -> 把组织信息写入contributor_org_index

PR内容: 在项目模板中添加贡献者组织信息

resource_types:
repo_urls: https://github.com/coolwanglu/pdf2htmlEX
developers:
zhangsan: 
- Tencent from 2017-01-01 until 2018-01-01
- Huawei from 2018-01-01 until 2019-01-01
lisi: 
- Tencent from 2017-01-01 until 2018-01-01
- Huawei from 2018-01-01 until 2019-01-01

3: 前端查询深度洞察贡献者列表流程

查询洞察页面 --> 后端查询contributor_org_index去更新contributor list --> 实时响应生效

4: 模型层面流程

将contributor_org_index 作用到 contributor_dev_org_repo 和 contributor_dev_org_repo_enrich ---> 下次刷新模型数据时生效

contributor_org_index 字段格式

{
        "_index" : "github-contributors_org",
        "_id" : "23990d0b901aa688f270da9dfce184c098598786",
        "_score" : 1.0,
        "_source" : {
          "uuid" : "23990d0b901aa688f270da9dfce184c098598786",
          "id" : "23990d0b901aa688f270da9dfce184c098598786",
          "contributor" : "sds",   //贡献者名称
          "org_change_date_list" : [   
            {
              "org_name" : "Brigade",  //组织名
              "first_date" : "1970-01-01T00:00:00.000000+00:00",  //组织开始时间
              "last_date" : "2016-12-01T00:00:00.000000+00:00"   //组织结束时间
            },
            {
              "org_name" : "Coinbase Inc.",
              "first_date" : "2016-12-01T00:00:00.000000+00:00",
              "last_date" : "2099-01-01T00:00:00.000000+00:00"
            }
          ],
          "level" : null,    // level = repo, community
          "label" : null,   //  label = repo_url , community name
          "modify_type" : "URL",   //modify_type = 'User Individual', 'Repo Admin', 'URL'
          "modify_by" : "https://raw.githubusercontent.com/cncf/gitdm",  //如果modify type是'User Individual'和 'Repo Admin' 保存操作者用户id, 如果modify type是'URl'保存具体url地址
          "plateform_type" : "github",   //gitee, github
          "is_bot" : false,  
          "update_at_date" : "2024-01-08T15:35:22.555177+00:00"
        }
      }