def get_fileinfo()

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