Grank icon indicating copy to clipboard operation
Grank copied to clipboard

JSON 配置文件读取模式的支持

Open wxy opened this issue 5 years ago • 4 comments

应该建立一个数据配置数据库(文本或 json):

  • 以组织(用户)或仓库名为主键,
    • 指定仓库时,包括其组织(用户),格式为“组织/仓库名”
    • 其下级数据指定对该数据的配置:
      • 非社区化匹配规则:以正则表达式方式来匹配贡献者的邮件域,配置则为企业人员
      • 对于组织/用户,会遍历其名下的所有仓库,可指定筛选条件,可支持:
        • star:最小 star 数要求
        • last_commit:最后提交的时间
        • first_commit:首次提交的时间(即仓库创建时间)
        • 等等
      • 强制分类:默认仓库会根据其首选语言分为文档类、前端类和代码类项目,但是可以在此强制指定。
      • 数据采集范围:如没有指定,采用系统配置数据
        • start: 采集开始时间
        • end: 采集结束时间(如系统也未指定,则为当前时间)
      • 忽略:用于在指定组织(用户)是,列出需要忽略的仓库

wxy avatar Oct 01 '18 12:10 wxy

在运行 grank all 命令时,不需要指定仓库名或组织名,会读取该配置中列出的仓库或组织。

wxy avatar Oct 01 '18 12:10 wxy

配置文件形态

{
	"config": {
		"start": "123-12-2",
		"end": "123-12-1",
		"token": "xxx",
		"top": 3,
                 "star":123
	},
	"targets": [
		{
			"socialRule": "xxx",
			"owner": "lctt",
			"repository": "grank"
		},{
			"socialRule": "xxx",
			"owner": "lctt",
			"repository": "lcbot"
		}
	]
}

bestony avatar Oct 02 '18 01:10 bestony

实现思路

  1. 创建一个新的命令(all 或 batch),新的命令接受一个文件作为参数(可以考虑传入文件或文件路径,即 File arguments 或 File Path arguments,相关文档http://click.palletsprojects.com/en/7.x/arguments/#file-arguments)
  2. 解析 JSON,提取 JSON 中的 config 来生成 config 实例。
  3. 对 targets 进行循环,循环时修改 config 实例中的 social.rule 为targets 中具体的。
  4. targets 中均为 repo ,调用 repo 分析代码即可。

bestony avatar Oct 05 '18 03:10 bestony

建议python代码直接使用py文件作为配置文件,其他都需要处理一些路径问题。(配置和代码一起走,不同环境用不同的py,配置的选择使用不同环境的环境变量,默认为localhost)

suncle1993 avatar Oct 12 '18 02:10 suncle1993