def collect_members(self, members_url): members = [] if self.args.verbose: Helpers.print_success("Collecting members") last_page = Helpers.get_last_page(members_url) last_page = last_page + 1 if last_page == 0 else last_page for i in range(1, (last_page + 1)): result = Helpers.request("{}?page={}".format(members_url, i)) if result: if self.args.include_users: members.append( list( filter( bool, [ self.collect_user(mem["login"], with_repositories=False) for mem in result ], ))) else: members.append([ User(mem["login"], None, None, None, None) for mem in result ]) return Helpers.flatten(members)
def get_contributors(self, commit_url): authors = [] result = Helpers.request(commit_url) authors.append(self.parse_commits(result["values"]) if result else []) while "next" in result: result = Helpers.request(result["next"]) authors.append(self.parse_commits(result["values"]) if result else []) return Helpers.flatten(authors)
def print_raw(self, data): authors = [] if data: for item in data: authors.append(Parser(self.args).get_authors(item)) if authors: Helpers.print_success("All emails:\n") self.print_raw_authors(set(Helpers.flatten(authors))) else: Helpers.print_error("gitmails: No authors to print")
def collect_repositories(self, repos_url): repos = [] if self.args.verbose: Helpers.print_success("Collecting repositories") last_page = Helpers.get_last_page(repos_url) last_page = last_page + 1 if last_page == 0 else last_page for i in range(1, (last_page + 1)): result = Helpers.request("{}?page={}".format(repos_url, i)) repos.append(self.parse_repositories(result) if result else []) repos = Helpers.flatten(repos) self.collect_authors(repos) return repos
def collect_repositories(self, repos_url): repos = [] if self.args.verbose: Helpers.print_success("Collecting repositories") result = Helpers.request(repos_url) repos.append(self.parse_repositories(result["values"]) if result else []) while "next" in result: result = Helpers.request(result["next"]) repos.append(self.parse_repositories(result["values"]) if result else []) repos = Helpers.flatten(repos) if not self.args.api: self.set_authors(repos) return repos
def get_collected_authors(self, collection): all_authors = [] if collection: for c in collection: all_authors.append(self.get_authors(c)) return set(Helpers.flatten(all_authors))
def get_authors(self, target): authors = [] if target: for repo in target.repositories: authors.append(repo.authors) return set(Helpers.flatten(authors))
def all_unique_emails(self, collection): all_emails = [] if collection: for c in collection: all_emails.append(self.unique_emails(c)) return set(Helpers.flatten(all_emails))