Upload files to ""

This commit is contained in:
fossilfranv 2023-09-22 09:41:12 -07:00
parent 6da8d92b21
commit 81521c5cac

56
clone_repos.py Normal file
View File

@ -0,0 +1,56 @@
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()