ソースを参照

[ADD] git repo api

Gogs 7 年 前
コミット
1e23ffab92
6 ファイル変更47 行追加1 行削除
  1. 39 0
      api/resources/git_resource.py
  2. 2 0
      api/urls.py
  3. 0 0
      api/utils/git_api.py
  4. 2 1
      data/.env
  5. 1 0
      odoo_control/settings.py
  6. 3 0
      requirements.txt

+ 39 - 0
api/resources/git_resource.py

@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+from django.conf.urls import url
+from django.conf import settings
+from tastypie.resources import Resource
+from tastypie.utils import trailing_slash
+from api.utils.command import list_files_and_folders
+import os
+
+class GitResource(Resource):
+    class Meta:
+        resource_name = 'git'
+
+    '''
+    '''
+    def prepend_urls(self):
+        return [
+            url(r'^%s/repositories%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('get_repositories'), name="get_repositories"),
+        ]
+
+    '''
+    '''
+    def get_repositories(self, request, **kwargs):
+        self.method_check(request, allowed='get')
+
+        repos = []
+        folders = list_files_and_folders(settings.GIT_PATH)
+
+        for folder in folders.get('items', []):
+            subfolders = list_files_and_folders(os.path.join(settings.GIT_PATH, folder))
+
+            for subfolder in subfolders.get('items', []):
+                print(subfolder.replace('.git', ''))
+
+        import pdb; pdb.set_trace()
+
+        return self.create_response(request, {
+            'test': 'get repositories'
+        })

+ 2 - 0
api/urls.py

@@ -11,6 +11,7 @@ from api.resources.request_resource import RequestResource
 from api.resources.task_resource import TaskResource
 from api.resources.docker_resource import DockerResource
 from api.resources.odoo_resource import OdooResource
+from api.resources.git_resource import GitResource
 
 v1_api = Api(api_name='v1')
 v1_api.register(UserResource())
@@ -21,3 +22,4 @@ v1_api.register(RequestResource())
 v1_api.register(TaskResource())
 v1_api.register(DockerResource())
 v1_api.register(OdooResource())
+v1_api.register(GitResource())

+ 0 - 0
api/utils/git_api.py


+ 2 - 1
data/.env

@@ -6,7 +6,7 @@ EMAIL_PORT = 465
 EMAIL_HOST_USER = 'robert@eiru.com.py'
 EMAIL_HOST_PASSWORD = '@3040/Robert'
 EMAIL_USE_SSL = True
-SEND_EMAIL = True
+SEND_EMAIL = False
 EMAIL_FROM = 'admin@eiru.com.py'
 SYSTEM_NAME = 'Sistema de Automatización de Eiru'
 JWT_ACCEPT_HEADER = 'HTTP_AUTHORIZATION'
@@ -28,3 +28,4 @@ ODOO_DB_HOST = '172.20.0.10'
 ODOO_DB_PORT = '5432'
 ODOO_DB_USER = 'postgres'
 ODOO_DB_PASSWORD = 'root'
+GIT_PATH = '/opt/gogs/git/gogs-repositories'

+ 1 - 0
odoo_control/settings.py

@@ -110,3 +110,4 @@ ODOO_DB_HOST = CONFIG('ODOO_DB_HOST', 'localhost')
 ODOO_DB_PORT = CONFIG('ODOO_DB_PORT', default=5432, cast=int)
 ODOO_DB_USER = CONFIG('ODOO_DB_USER', 'postgres')
 ODOO_DB_PASSWORD = CONFIG('ODOO_DB_PASSWORD', 'root')
+GIT_PATH = CONFIG('GIT_PATH')

+ 3 - 0
requirements.txt

@@ -12,6 +12,8 @@ docker==3.0.1
 docker-pycreds==0.2.1
 enum34==1.1.6
 futures==3.2.0
+gitdb2==2.0.3
+GitPython==2.1.9
 gunicorn==19.7.1
 idna==2.6
 ipaddress==1.0.19
@@ -31,6 +33,7 @@ requests==2.18.4
 simplejson==3.13.2
 singledispatch==3.4.0.3
 six==1.11.0
+smmap2==2.0.3
 stringcase==1.2.0
 typing==3.6.4
 urllib3==1.22