├── README.md ├── runtime.txt ├── Procfile ├── powerapp ├── core │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── collect_services.py │ │ │ └── self_update.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_service_enabled_flag.py │ │ └── 0001_initial.py │ ├── views │ │ ├── __init__.py │ │ ├── web.py │ │ └── webhooks.py │ ├── templatetags │ │ ├── __init__.py │ │ ├── materializecss.py │ │ └── core.py │ ├── __init__.py │ ├── templates │ │ ├── 403.html │ │ ├── 404.html │ │ ├── 500.html │ │ ├── oauth2cb.html │ │ ├── materialize │ │ │ └── form.html │ │ ├── login.html │ │ ├── services.html │ │ ├── loggedin.html │ │ ├── base.html │ │ ├── dashboard.html │ │ ├── utils.mako │ │ └── edit_integration_base.html │ ├── static │ │ ├── default_logo.png │ │ ├── readme_webhooks.png │ │ ├── readme_app_settings.png │ │ ├── readme_heroku_config.png │ │ ├── readme_heroku_success.png │ │ └── readme_heroku_app_name.png │ ├── models │ │ ├── __init__.py │ │ ├── periodic_task.py │ │ ├── oauth.py │ │ ├── integration.py │ │ ├── service.py │ │ └── user.py │ ├── context_processors.py │ ├── redis_utils.py │ ├── django_auth_backend.py │ ├── tasks.py │ ├── django_fields.py │ ├── urls.py │ ├── exceptions.py │ ├── oauth_impl.py │ ├── attrdict.py │ ├── signals.py │ ├── statsd_middleware.py │ ├── service_collector.py │ ├── web_utils.py │ ├── django_widgets.py │ ├── cron.py │ ├── integration_utils.py │ ├── periodic_tasks.py │ ├── logging_utils.py │ ├── app_signals.py │ ├── todoist_utils.py │ ├── django_forms.py │ ├── apps.py │ └── generic_views.py ├── sync_bridge │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── __init__.py │ ├── todoist_sync_adapter.py │ └── models.py ├── contrib │ ├── github │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ └── 0001_create_model.py │ │ ├── __init__.py │ │ ├── static │ │ │ └── github │ │ │ │ └── logo.png │ │ ├── templates │ │ │ └── github │ │ │ │ ├── authorize_github.html │ │ │ │ └── edit_integration.html │ │ ├── models.py │ │ ├── apps.py │ │ ├── urls.py │ │ └── signals.py │ ├── evernote_sync │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ ├── 0002_evernoteaccountcache_evernote_user_id.py │ │ │ ├── 0003_fill_evernote_user_id.py │ │ │ └── 0001_initial.py │ │ ├── static │ │ │ └── evernote_sync │ │ │ │ └── logo.png │ │ ├── __init__.py │ │ ├── templates │ │ │ └── evernote_sync │ │ │ │ ├── authorize_evernote.html │ │ │ │ ├── authorize_evernote_done.html │ │ │ │ └── edit_integration.html │ │ ├── tasks.py │ │ ├── apps.py │ │ ├── urls.py │ │ ├── models.py │ │ ├── signals.py │ │ ├── forms.py │ │ ├── views.py │ │ ├── utils.py │ │ └── sync_adapter.py │ ├── __init__.py │ ├── gcal_sync │ │ ├── __init__.py │ │ ├── static │ │ │ └── gcal_sync │ │ │ │ └── logo.png │ │ ├── templates │ │ │ └── gcal_sync │ │ │ │ ├── authorize_gcal.html │ │ │ │ └── edit_integration.html │ │ ├── apps.py │ │ ├── urls.py │ │ ├── oauth_impl.py │ │ ├── signals.py │ │ ├── tasks.py │ │ ├── views.py │ │ └── utils.py │ ├── catcomments │ │ ├── __init__.py │ │ ├── templates │ │ │ └── catcomments │ │ │ │ └── edit_integration.html │ │ ├── static │ │ │ └── catcomments │ │ │ │ └── logo.png │ │ ├── urls.py │ │ ├── views.py │ │ ├── apps.py │ │ └── signals.py │ └── hackernews │ │ ├── __init__.py │ │ ├── templates │ │ └── hackernews │ │ │ └── edit_integration.html │ │ ├── static │ │ └── hackernews │ │ │ └── logo.png │ │ ├── urls.py │ │ ├── apps.py │ │ ├── views.py │ │ └── signals.py ├── __init__.py ├── project_static │ ├── img │ │ ├── logo.gif │ │ └── todoist_256.png │ ├── font │ │ ├── roboto │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-Thin.ttf │ │ │ ├── Roboto-Bold.woff │ │ │ ├── Roboto-Bold.woff2 │ │ │ ├── Roboto-Light.ttf │ │ │ ├── Roboto-Light.woff │ │ │ ├── Roboto-Light.woff2 │ │ │ ├── Roboto-Medium.ttf │ │ │ ├── Roboto-Medium.woff │ │ │ ├── Roboto-Regular.ttf │ │ │ ├── Roboto-Thin.woff │ │ │ ├── Roboto-Thin.woff2 │ │ │ ├── Roboto-Medium.woff2 │ │ │ ├── Roboto-Regular.woff │ │ │ └── Roboto-Regular.woff2 │ │ └── material-design-icons │ │ │ ├── Material-Design-Icons.eot │ │ │ ├── Material-Design-Icons.ttf │ │ │ ├── Material-Design-Icons.woff │ │ │ └── Material-Design-Icons.woff2 │ ├── js_src │ │ ├── utils.js │ │ └── script.js │ └── less │ │ └── style.less ├── runner.py ├── celery_local.py ├── wsgi.py ├── discovery.py ├── urls.py └── devops_utils.py ├── setup.cfg ├── staticfiles └── .gitignore ├── tests ├── requirements.txt ├── test_services.py ├── test_app_discovery.py ├── integration │ ├── test_webhooks.py │ ├── README.rst │ └── conftest.py ├── conftest.py └── test_sync_bridge.py ├── pytest.ini ├── .gitignore ├── bin ├── post_compile └── pre_compile ├── requirements.txt ├── MANIFEST.in ├── manage.py ├── uwsgi.ini ├── app.json ├── setup.py ├── gulpfile.js ├── env.sample └── README.rst /README.md: -------------------------------------------------------------------------------- 1 | # webhook_test 2 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.4.3 2 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: uwsgi uwsgi.ini 2 | -------------------------------------------------------------------------------- /powerapp/core/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /powerapp/core/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /powerapp/sync_bridge/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /powerapp/contrib/github/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /powerapp/core/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal = 1 3 | -------------------------------------------------------------------------------- /staticfiles/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /powerapp/contrib/evernote_sync/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /powerapp/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /powerapp/core/views/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /powerapp/sync_bridge/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /powerapp/__init__.py: -------------------------------------------------------------------------------- 1 | from .celery_local import app as celery_app 2 | -------------------------------------------------------------------------------- /powerapp/core/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /powerapp/core/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'powerapp.core.apps.AppConfig' 2 | -------------------------------------------------------------------------------- /tests/requirements.txt: -------------------------------------------------------------------------------- 1 | mock 2 | pytest 3 | pytest-django 4 | pytest-xprocess 5 | -------------------------------------------------------------------------------- /powerapp/contrib/github/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'powerapp.contrib.github.apps.AppConfig' -------------------------------------------------------------------------------- /powerapp/core/templates/403.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block body %}403{% endblock %} 3 | -------------------------------------------------------------------------------- /powerapp/core/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block body %}404{% endblock %} 3 | -------------------------------------------------------------------------------- /powerapp/core/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block body %}500{% endblock %} 3 | -------------------------------------------------------------------------------- /powerapp/contrib/gcal_sync/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'powerapp.contrib.gcal_sync.apps.AppConfig' 2 | -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | DJANGO_SETTINGS_MODULE = powerapp.settings 3 | addopts = --tb=short --reuse-db 4 | -------------------------------------------------------------------------------- /powerapp/contrib/catcomments/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'powerapp.contrib.catcomments.apps.AppConfig' 2 | -------------------------------------------------------------------------------- /powerapp/contrib/hackernews/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'powerapp.contrib.hackernews.apps.AppConfig' 2 | -------------------------------------------------------------------------------- /powerapp/contrib/hackernews/templates/hackernews/edit_integration.html: -------------------------------------------------------------------------------- 1 | {% extends "edit_integration_base.html" %} 2 | -------------------------------------------------------------------------------- /powerapp/contrib/catcomments/templates/catcomments/edit_integration.html: -------------------------------------------------------------------------------- 1 | {% extends "edit_integration_base.html" %} 2 | -------------------------------------------------------------------------------- /powerapp/project_static/img/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/img/logo.gif -------------------------------------------------------------------------------- /powerapp/core/static/default_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/default_logo.png -------------------------------------------------------------------------------- /powerapp/core/static/readme_webhooks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/readme_webhooks.png -------------------------------------------------------------------------------- /powerapp/core/static/readme_app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/readme_app_settings.png -------------------------------------------------------------------------------- /powerapp/project_static/img/todoist_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/img/todoist_256.png -------------------------------------------------------------------------------- /powerapp/contrib/github/static/github/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/contrib/github/static/github/logo.png -------------------------------------------------------------------------------- /powerapp/core/static/readme_heroku_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/readme_heroku_config.png -------------------------------------------------------------------------------- /powerapp/core/static/readme_heroku_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/readme_heroku_success.png -------------------------------------------------------------------------------- /powerapp/core/static/readme_heroku_app_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/core/static/readme_heroku_app_name.png -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /powerapp/contrib/gcal_sync/static/gcal_sync/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/contrib/gcal_sync/static/gcal_sync/logo.png -------------------------------------------------------------------------------- /powerapp/contrib/hackernews/static/hackernews/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/contrib/hackernews/static/hackernews/logo.png -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /powerapp/contrib/catcomments/static/catcomments/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/contrib/catcomments/static/catcomments/logo.png -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /powerapp/contrib/evernote_sync/static/evernote_sync/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/contrib/evernote_sync/static/evernote_sync/logo.png -------------------------------------------------------------------------------- /powerapp/runner.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def configure_app(settings_module='powerapp.settings'): 4 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", settings_module) 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /tests/fixtures 2 | /dist 3 | /build 4 | /.idea 5 | /.cache 6 | /.xprocess 7 | /node_modules 8 | .DS_Store 9 | .env 10 | *.pyc 11 | *.swp 12 | *.egg-info 13 | -------------------------------------------------------------------------------- /bin/post_compile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | echo "Run ./manage.py migrate" 3 | python ./manage.py migrate 4 | echo "Run ./manage.py collect_services" 5 | python ./manage.py collect_services 6 | -------------------------------------------------------------------------------- /powerapp/project_static/font/material-design-icons/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/material-design-icons/Material-Design-Icons.eot -------------------------------------------------------------------------------- /powerapp/project_static/font/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /powerapp/project_static/font/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /powerapp/project_static/font/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Doist/powerapp/HEAD/powerapp/project_static/font/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /bin/pre_compile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os, sys 3 | sys.path.insert(0, os.getcwd()) 4 | 5 | 6 | from powerapp import devops_utils 7 | devops_utils.extend_requirements_txt() 8 | open('.env', 'a') 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Py3 version of Evernote SDK has to be installed from github 2 | -e git+https://github.com/Doist/evernote-sdk-python3.git#egg=evernote-dev 3 | # Heroku requirements file 4 | uWSGI 5 | psycopg2 6 | -e . 7 | -------------------------------------------------------------------------------- /powerapp/contrib/evernote_sync/__init__.py: -------------------------------------------------------------------------------- 1 | # Your application config. It's important for the AppConfig 2 | # to subclass powerapp.core.apps.ServiceAppConfig 3 | default_app_config = 'powerapp.contrib.evernote_sync.apps.AppConfig' 4 | -------------------------------------------------------------------------------- /powerapp/contrib/github/templates/github/authorize_github.html: -------------------------------------------------------------------------------- 1 | {% extends "loggedin.html" %} 2 | 3 | {% block content %} 4 | Please authorize yourself in Github 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /powerapp/core/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from .integration import Integration 3 | from .service import Service 4 | from .periodic_task import PeriodicTask 5 | from .user import User 6 | from .oauth import OAuthToken 7 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | recursive-include docs * 3 | recursive-exclude docs *.pyc 4 | recursive-exclude docs *.pyo 5 | recursive-include powerapp/core/templates * 6 | recursive-include powerapp/core/static * 7 | prune docs/_build 8 | -------------------------------------------------------------------------------- /powerapp/contrib/evernote_sync/templates/evernote_sync/authorize_evernote.html: -------------------------------------------------------------------------------- 1 | {% extends "loggedin.html" %} 2 | 3 | {% block content %} 4 | Please authorize yourself in Evernote 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /powerapp/contrib/gcal_sync/templates/gcal_sync/authorize_gcal.html: -------------------------------------------------------------------------------- 1 | {% extends "loggedin.html" %} 2 | 3 | {% block content %} 4 | Please authorize yourself in Google Calendar 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "powerapp.settings") 7 | from django.core.management import execute_from_command_line 8 | execute_from_command_line(sys.argv) 9 | 10 | 11 | -------------------------------------------------------------------------------- /powerapp/celery_local.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import runner; runner.configure_app() 3 | 4 | from celery import Celery 5 | from django.conf import settings 6 | 7 | app = Celery('powerapp') 8 | app.config_from_object('django.conf:settings') 9 | app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 10 | -------------------------------------------------------------------------------- /powerapp/contrib/evernote_sync/templates/evernote_sync/authorize_evernote_done.html: -------------------------------------------------------------------------------- 1 | {% extends "loggedin.html" %} 2 | 3 | {% block content %} 4 | Unable to authorize Evernote. {{ error }} 5 |
6 | Try Again 7 |
8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /powerapp/core/templates/oauth2cb.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block main %} 4 |{{ error }}
8 |{{ service.app_config.description }}
15 |Github Integration Setup
10 |11 | To complete the Github integration setup, you need to configure 12 | your github repository webhook setting. 13 |
14 | 15 |{{ form.service.app_config.url }}
17 |{{ form.service.app_config.description }}
18 | 19 | {% block form_wrapper %} 20 | {# edit integration form #} 21 | 22 | {% block before_form %}{% endblock %} 23 | 24 | 27 | 28 | {# delete integration form #} 29 | {% if form.integration %} 30 | 34 | {% endif %} 35 | 36 | {# submit buttons #} 37 | 40 | {% if form.integration %} 41 | 44 | {% endif %} 45 | 46 | {% endblock %} 47 |