python/hooks/post_gen_project.py

50 lines
1.8 KiB
Python
Raw Normal View History

2023-03-24 18:46:12 +01:00
import subprocess
subprocess.call(["git", "init"])
subprocess.call(["git", "add", "*"])
subprocess.call(["git", "commit", "-m", "Initial commit"])
subprocess.call(["git", "config", "user.name", "{{ cookiecutter.git_user }}"])
subprocess.call(["git", "config", "user.email", "{{ cookiecutter.email }}"])
subprocess.call(["python", "-m", "venv", "venv"])
2023-03-25 21:02:31 +01:00
if {{cookiecutter.generate_gitea_project}}:
try:
import giteapy
except ModuleNotFoundError:
print("giteapy is not availabled, repository not created")
exit()
try:
import secretstorage
connection = secretstorage.dbus_init()
collection = secretstorage.get_default_collection(connection)
collection.unlock()
secret = collection.search_items({"Title": "Gitea Token"}).__next__()
secret.unlock()
API_KEY = secret.get_secret().decode("utf-8")
except (ModuleNotFoundError, StopIteration):
try:
import getpass
my_input = getpass.getpass
except ModuleNotFoundError:
my_input = input
API_KEY = my_input(
"Secret service or secret {'Title': 'Gitea Token'} not available,"
"please enter you gitea api key:"
)
configuration = giteapy.Configuration()
configuration.api_key["access_token"] = API_KEY
client = giteapy.ApiClient(configuration)
client.configuration.host = "{{ cookiecutter.gitea_url }}/api/v1"
api_instance = giteapy.AdminApi(client)
username = "{{ cookiecutter.git_user }}"
repo = giteapy.CreateRepoOption(
name="{{ cookiecutter.project_slug }}", private=True
)
api_instance.admin_create_repo(username, repo)
subprocess.call(["git", "remote", "add", "origin", "{{ cookiecutter.git_origin }}"])
subprocess.call(["git", "push", "-u", "origin", "master"])