in bot/code_coverage_bot/zero_coverage.py [0:0]
def get_fileinfo(self, filenames):
pushlog = self.get_pushlog()
if not pushlog:
return {}
res = {}
filenames = set(filenames)
for push in pushlog["pushes"].values():
pushdate = self.get_utc_from_timestamp(push["date"])
for chgset in push["changesets"]:
for f in chgset["files"]:
if f not in filenames:
continue
if f not in res:
res[f] = {
"size": self.get_file_size(f),
"first_push_date": pushdate,
"last_push_date": pushdate,
"commits": 1,
}
else:
r = res[f]
if pushdate < r["first_push_date"]:
r["first_push_date"] = pushdate
elif pushdate > r["last_push_date"]:
r["last_push_date"] = pushdate
r["commits"] += 1
# stringify the pushdates
for v in res.values():
v["first_push_date"] = self.get_date_str(v["first_push_date"])
v["last_push_date"] = self.get_date_str(v["last_push_date"])
# add default data for files which are not in res
for f in filenames:
if f in res:
continue
res[f] = {
"size": 0,
"first_push_date": "",
"last_push_date": "",
"commits": 0,
}
return res