Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wxy opened this issue Oct 1, 2018 · 4 comments
Open

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

wxy opened this issue Oct 1, 2018 · 4 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@wxy
Copy link
Member

wxy commented Oct 1, 2018

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

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

wxy commented Oct 1, 2018

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

@bestony
Copy link
Member

bestony commented Oct 2, 2018

配置文件形态

{
	"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 bestony changed the title 数据配置 JSON 配置文件读取模式的支持 Oct 5, 2018
@bestony bestony added the good first issue Good for newcomers label Oct 5, 2018
@bestony
Copy link
Member

bestony commented Oct 5, 2018

实现思路

  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 分析代码即可。

@suncle1993
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants