@ -3,10 +3,10 @@ import argparse
from requests import Session
def gitea _from_args( args , c : Session ) :
from . gitea import Gitea
def forgejo _from_args( args , c : Session ) :
from . forgejo import Forgejo
return Gitea (
return Forgejo (
host = args . host ,
username = args . username ,
password = args . password ,
@ -15,7 +15,7 @@ def gitea_from_args(args, c: Session):
)
class Gitea :
class Forgejo :
def __init__ ( self , parser , c : Session ) :
self . c = c
self . parser = parser
@ -29,56 +29,56 @@ class Gitea:
def __add_credentials_parser ( self , parser ) :
group = parser . add_argument_group ( " credentials " , " User credentials " )
group . add_argument ( " username " , type = str , help = " Gitea user' s username " )
group . add_argument ( " password " , type = str , help = " Gitea user' s password " )
group . add_argument ( " email " , type = str , help = " Gitea user' s email " )
group . add_argument ( " host " , type = str , help = " URI at which Gitea is running" )
group . add_argument ( " username " , type = str , help = " Forgejo user' s username " )
group . add_argument ( " password " , type = str , help = " Forgejo user' s password " )
group . add_argument ( " email " , type = str , help = " Forgejo user' s email " )
group . add_argument ( " host " , type = str , help = " URI at which Forgejo is running" )
def install ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . install ( )
forgejo = forgejo _from_args( args , c = c )
forgejo . install ( )
self . install_parser = self . subparser . add_parser (
name = " install " , description = " Install Gitea" , help = " Install Gitea "
name = " install " , description = " Install Forgejo" , help = " Install Forgejo "
)
self . __add_credentials_parser ( self . install_parser )
self . install_parser . set_defaults ( func = run )
def register ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . register ( )
forgejo = forgejo _from_args( args , c = c )
forgejo . register ( )
self . register_parser = self . subparser . add_parser (
name = " register " ,
description = " Gitea user registration" ,
help = " Register a user on Gitea " ,
description = " Forgejo user registration" ,
help = " Register a user on Forgejo " ,
)
self . __add_credentials_parser ( self . register_parser )
self . register_parser . set_defaults ( func = run )
def login ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . login ( )
forgejo = forgejo _from_args( args , c = c )
forgejo . login ( )
self . login_parser = self . subparser . add_parser (
name = " login " , description = " Gitea user login" , help = " Login on Gitea "
name = " login " , description = " Forgejo user login" , help = " Login on Forgejo "
)
self . __add_credentials_parser ( self . login_parser )
self . login_parser . set_defaults ( func = run )
def create_repository ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . login ( )
gitea . create_repository ( name = args . repo_name )
forgejo = forgejo _from_args( args , c = c )
forgejo . login ( )
forgejo . create_repository ( name = args . repo_name )
self . create_repository_parser = self . subparser . add_parser (
name = " create_repo " ,
description = " Create repository on Gitea " ,
help = " Create repository on Gitea " ,
description = " Create repository on Forgejo " ,
help = " Create repository on Forgejo " ,
)
self . __add_credentials_parser ( self . create_repository_parser )
self . create_repository_parser . set_defaults ( func = run )
@ -88,10 +88,10 @@ class Gitea:
def install_sso ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . login ( )
forgejo = forgejo _from_args( args , c = c )
forgejo . login ( )
print ( f " CLIENT ID: { args . client_id } " )
gitea . install_sso (
forgejo . install_sso (
sso_name = args . sso_name ,
client_id = args . client_id ,
client_secret = args . client_secret ,
@ -100,8 +100,8 @@ class Gitea:
self . install_sso_parser = self . subparser . add_parser (
name = " install_sso " ,
description = " Install SSO on Gitea " ,
help = " Install SSO on Gitea " ,
description = " Install SSO on Forgejo " ,
help = " Install SSO on Forgejo " ,
)
self . __add_credentials_parser ( self . install_sso_parser )
self . install_sso_parser . add_argument (
@ -123,14 +123,14 @@ class Gitea:
def add_deploy_key ( self ) :
def run ( args , c : Session ) :
gitea = gitea _from_args( args , c = c )
gitea . login ( )
gitea . add_deploy_key ( repo = args . repo_name , key = args . key_file )
forgejo = forgejo _from_args( args , c = c )
forgejo . login ( )
forgejo . add_deploy_key ( repo = args . repo_name , key = args . key_file )
self . add_deploy_key_parser = self . subparser . add_parser (
name = " add_deploy_key " ,
description = " Create repository on Gitea " ,
help = " Add deploy key to a repository on Gitea " ,
description = " Create repository on Forgejo " ,
help = " Add deploy key to a repository on Forgejo " ,
)
self . __add_credentials_parser ( self . add_deploy_key_parser )
self . add_deploy_key_parser . add_argument (
@ -203,21 +203,21 @@ class Hostea:
def support ( self ) :
def run ( args , c : Session ) :
from . gitea import Gitea SSO
from . forgejo import Forgejo SSO
dash = dash_from_args ( args , c = c )
dash . login ( )
gitea = Gitea SSO(
forgejo = Forgejo SSO(
username = dash . username ,
email = dash . email ,
gitea_host= args . gitea _host,
hostea_org = args . gitea _hostea_org,
forgejo_host= args . forgejo _host,
hostea_org = args . forgejo _hostea_org,
support_repo = args . support_repo ,
c = c ,
)
dash . new_ticket ( gitea . new_issues_uri )
gitea . new_issue ( )
dash . new_ticket ( forgejo . new_issues_uri )
forgejo . new_issue ( )
self . support_parser = self . subparser . add_parser (
name = " support " ,
@ -226,12 +226,12 @@ class Hostea:
)
self . __add_credentials_parser ( self . support_parser )
self . support_parser . add_argument (
" gitea _host" , type = str , help = " URI at which Gitea is running"
" forgejo _host" , type = str , help = " URI at which Forgejo is running"
)
self . support_parser . add_argument (
" gitea _hostea_org" ,
" forgejo _hostea_org" ,
type = str ,
help = " Hostea namespace(username/org) on Gitea , where support repository is hosted" ,
help = " Hostea namespace(username/org) on Forgejo , where support repository is hosted" ,
)
self . support_parser . add_argument (
" support_repo " , type = str , help = " support repository name "
@ -245,28 +245,28 @@ class Cli:
c = Session ( )
self . c = c
self . parser = argparse . ArgumentParser (
description = " Install and Bootstrap Gitea and Hostea Dashboard"
description = " Install and Bootstrap Forgejo and Hostea Dashboard"
)
self . subparser = self . parser . add_subparsers ( )
self . check_env ( )
self . gitea ( )
self . forgejo ( )
self . hostea ( )
def __add_credentials_parser ( self , parser ) :
group = parser . add_argument_group ( " credentials " , " User credentials " )
group . add_argument ( " username " , type = str , help = " Gitea user' s username " )
group . add_argument ( " password " , type = str , help = " Gitea user' s password " )
group . add_argument ( " email " , type = str , help = " Gitea user' s email " )
group . add_argument ( " username " , type = str , help = " Forgejo user' s username " )
group . add_argument ( " password " , type = str , help = " Forgejo user' s password " )
group . add_argument ( " email " , type = str , help = " Forgejo user' s email " )
def check_env ( self ) :
def run ( args , c : Session ) :
from . gitea import Gitea
from . forgejo import Forgejo
from . hostea import Hostea
Hostea . check_online (
dashboard_host = args . hostea_host , maildev_host = args . maildev_host
)
Gitea. check_online ( host = args . gitea _host)
Forgejo. check_online ( host = args . forgejo _host)
self . check_env_parser = self . subparser . add_parser (
name = " check_env " ,
@ -275,7 +275,7 @@ class Cli:
)
self . check_env_parser . add_argument (
" gitea _host" , type = str , help = " URI at which Gitea is running"
" forgejo _host" , type = str , help = " URI at which Forgejo is running"
)
self . check_env_parser . add_argument (
@ -295,13 +295,13 @@ class Cli:
)
Hostea ( parser = self . hostea , c = self . c )
def gitea ( self ) :
self . gitea = self . subparser . add_parser (
name = " gitea " ,
description = " Gitea " ,
help = " Gitea -related functionality" ,
def forgejo ( self ) :
self . forgejo = self . subparser . add_parser (
name = " forgejo " ,
description = " Forgejo " ,
help = " Forgejo -related functionality" ,
)
Gitea( parser = self . gitea , c = self . c )
Forgejo( parser = self . forgejo , c = self . c )
def parse ( self ) :
return self . parser . parse_args ( )