import requests from git import Repo import os def read_config(): os.chdir("/external/repos") current_dir = os.getcwd() print("Current directory:", current_dir) with open("./config.txt", "r") as file: lines = file.readlines() url = lines[0].strip() token = lines[1].strip() return url, token def main(): # Read URL and token from config file url, token = read_config() # Perform request headers = {"Authorization": f"Bearer {token}"} # r = requests.get(url, headers=headers) page = 1 while True: # Perform request with pagination headers = {"Authorization": f"Bearer {token}"} params = {"page": page} r = requests.get(url, headers=headers, params=params) # Check if there are no more pages if not r.json()["data"]: break # Loop through each repository returned, cloning it # Loop through each repository returned for repository in r.json()["data"]: repo_path = "repos/" + repository["full_name"] # Check if the repository is already cloned if os.path.exists(repo_path): # Update the existing clone repo = Repo(repo_path) repo.remotes.origin.pull() else: # Clone the repository Repo.clone_from(repository["clone_url"], repo_path, depth=1) # Increment page number page += 1 # Check if there are no more pages or repositories if not r.json()["data"]: break if __name__ == "__main__": main()