用于python的hacker-one-api客户端
h1的Python项目详细描述
许可证
麻省理工学院
安装
通过PIP安装:
pip install h1
对于开发,在项目根运行中:
virtualenv env
source env/bin/activate
make bootstrap
手动方法也应该有效:
python setup.py install
示例
初始化客户端
>>>fromh1.clientimportHackerOneClient>>>fromh1.modelsimportReport>>>c=HackerOneClient("YOUR-API-TOKEN-IDENTIFIER","YOUR-API-TOKEN")
获取最后一天创建的所有报告
HackerOneClient.find_resources()
允许您指定要查找的资源(仅Report
现在支持)和一些筛选条件。唯一需要的过滤器是program
,它
必须设置为目标Hackerone程序的名称。任何附加的过滤器都可以作为kwargs传递,
以及HackerOne’s filter documentation中的所有内容
应该得到支持。
例如,以下是我们如何获取过去24小时内创建的所有报告:
>>>importdatetimeasdt>>>day_ago=dt.datetime.now()-dt.timedelta(days=1)>>>listing=c.find_resources(Report,program=["test-program"],created_at__gt=day_ago)>>>len(listing)3>>>listing[0].titleu'This is a test report!'
在程序中获取所有已解决的报告
同样,如果我们过滤掉state
,我们可以得到所有的resolved
报告:
>>>resolved_listing=c.find_resources(Report,program=["test-program"],state=["resolved"])>>>resolved_listing[0].title
按id
获取特定报告HackerOneClient.get_resource()
允许您传递资源类型(同样,当前只是Report
,)
以及要获取的ID:
>>>report=c.get_resource(Report,110306)>>>report.titleu'Test RCE SQLi'>>>report.stateu'not-applicable'
按用户统计报表计数
下面是一个使用客户机找出谁是您最多产的记者的示例:
>>>fromcollectionsimportCounter>>>reporter_count=Counter()>>>all_reports=c.find_resources(Report,program=["test-program"])>>>forreportinall_reports:...reporter_count[report.reporter]+=1...>>>print(reporter_count)Counter({<User-bestreporter>:21,<User-another_reporter>:12,<User-r3p0rt3r>:2,<User-newbie>:1})
运行测试
virtualenv env source env/bin/activate make bootstrap make test