diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:33:12 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:33:12 +0000 |
commit | cfb43f927f532c2ec0533540c692560306b520af (patch) | |
tree | ddf31e8126b68e271a5513d485e56972c37a25c5 | |
parent | d6ff9baed5a7399fbbc39578aedf85912a44f17e (diff) |
automatic import of python-django-zengo
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-zengo.spec | 501 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 503 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-zengo-2.0.4.tar.gz diff --git a/python-django-zengo.spec b/python-django-zengo.spec new file mode 100644 index 0000000..6be1e36 --- /dev/null +++ b/python-django-zengo.spec @@ -0,0 +1,501 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-zengo +Version: 2.0.4 +Release: 1 +Summary: Integrate Zendesk Support and your Django app +License: MIT +URL: https://github.com/lukeburden/django-zengo +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/64/3b/c6e8d0e6da8ac1190365a3e67097e59e4d4a5304c700f2ec188824fc5c51/django-zengo-2.0.4.tar.gz +BuildArch: noarch + +Requires: python3-django +Requires: python3-zenpy +Requires: python3-django-konst + +%description +# Integrate Zendesk Support into your Django app + +[](https://pypi.python.org/pypi/django-zengo/) +[](https://pypi.python.org/pypi/django-zengo/) +[](https://github.com/ambv/black) +[](https://codecov.io/gh/lukeburden/django-zengo) +[](https://circleci.com/gh/lukeburden/django-zengo) + + +## django-zengo + +`django-zengo` is a Django app that provides conveniences for integrating with Zendesk. + +It facilitates receiving webhook updates from Zendesk, detecting new tickets and changes to existing tickets. + +### Installation #### + +pip install django-zengo + + +### Usage ### + +#### Configuring the webhook #### + +Zengo comes with a view that processes messages sent by Zendesk and allows you to perform actions upon various Zendesk events. + +##### Expose `zengo.views.WebhookView` ##### + +You need to configure your application to receive the webhook. To do so simply include it in your URL conf: + +```python +from django.contrib import admin +from django.urls import path + +from zengo.views import WebhookView + +urlpatterns = [ + path('admin/', admin.site.urls), + path('zengo/webhook/', WebhookView.as_view()) +] +``` + + +##### Add required bits to `settings.py` ##### + +You need to tell Zengo how to authenticate with Zendesk: + +- `ZENDESK_EMAIL` is the email of the Zendesk account you will use to interact with the API. +- `ZENDESK_TOKEN` generated for the user above in the Zendesk web interface. +- `ZENDESK_SUBDOMAIN` must match the subdomain used in your Zendesk account. + +As seen below, you need to specify +And you need to set a shared secret so that the webhook view can trust incoming messages from Zendesk: + +- `ZENGO_WEBHOOK_SECRET` generated by your good self; make it long and random! + +So, your settings should appear something along the lines of: + +```python +ZENDESK_EMAIL = "iamanemail@example.com" +ZENDESK_TOKEN = "<token-from-zendesk-webui>" +ZENDESK_SUBDOMAIN = "example" + +ZENGO_WEBHOOK_SECRET = "<replace-me-with-a-great-password>" +``` + +###### Configure Zendesk to send events ###### + +Zendesk allows for many integrations, but for the purposes of Zengo we just need to be told when a ticket has been changed. + +Log in as an administrator in Zendesk, and visit `Settings > Extensions > Targets > add target > HTTP target`. + +Add an HTTP target with a URL of your service, and choose the `POST` method. Ensure you've added a `secret` query parameter to the URL where your webhook is accessible, such that the webhook view can authorize Zendesk's webhook sends. + +Next, you must configure a trigger to use the target. Visit `Business Rules > Triggers > Add trigger`. Add a condition that suits your needs, such as, `Ticket is updated`, or `Ticket is created`, and select an action of `Notify target`, selecting the previously configured target. For JSON body, enter the following: + +```json +{ + "id": "{{ ticket.id }}" +} +``` + +You're done! Now whenever a ticket is created or updated in Zendesk, you should have an event being processed in your application. + +Note: for development, I recommend using the excellent [ngrok](https://ngrok.com/) to proxy requests through to your localhost. + +#### Performing actions upon receiving Zendesk events #### + +When Zengo receives a webhook from Zendesk, it will fetch the latest state of the ticket from Zendesk's APIs, compare how this differs to the state in the local database models, and fire a signal indicating what has happened. In your application, you attach receivers to the signal that is most relevant to your need. + +```python +from django.dispatch import receiver + +from zengo.signals import ticket_created + + +@receiver(ticket_created) +def handle_new_ticket(sender, ticket, context, **kwargs): + # perform your custom action here + pass +``` + +#### Signals #### + +You can connect to the following signals. + +- `zengo.signals.ticket_created` - fires when a ticket is encountered for the first time. +- `zengo.signals.ticket_updated` - fires when a ticket previously encountered is changed, or has a new comment added. + + +## Contribute + +`django-zengo` supports a variety of Python and Django versions. It's best if you test each one of these before committing. Our [Circle CI Integration](https://circleci.com) will test these when you push but knowing before you commit prevents from having to do a lot of extra commits to get the build to pass. + +### Environment Setup + +In order to easily test on all these Pythons and run the exact same thing that CI will execute you'll want to setup [pyenv](https://github.com/yyuu/pyenv) and install the Python versions outlined in [tox.ini](https://github.com/lukeburden/django-zengo/blob/master/tox.ini). + +If you are on Mac OS X, it's recommended you use [brew](http://brew.sh/). After installing `brew` run: + +``` +$ brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper +``` + +Then: + +``` +pyenv install -s 3.6.10 +pyenv install -s 3.7.6 +pyenv install -s 3.8.1 +pyenv virtualenv zengo 3.8.1 +pyenv shell zengo 3.6.10 3.7.6 +pip install detox +``` + +To run the test suite: + +``` +$ detox +``` + + + + +%package -n python3-django-zengo +Summary: Integrate Zendesk Support and your Django app +Provides: python-django-zengo +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-zengo +# Integrate Zendesk Support into your Django app + +[](https://pypi.python.org/pypi/django-zengo/) +[](https://pypi.python.org/pypi/django-zengo/) +[](https://github.com/ambv/black) +[](https://codecov.io/gh/lukeburden/django-zengo) +[](https://circleci.com/gh/lukeburden/django-zengo) + + +## django-zengo + +`django-zengo` is a Django app that provides conveniences for integrating with Zendesk. + +It facilitates receiving webhook updates from Zendesk, detecting new tickets and changes to existing tickets. + +### Installation #### + +pip install django-zengo + + +### Usage ### + +#### Configuring the webhook #### + +Zengo comes with a view that processes messages sent by Zendesk and allows you to perform actions upon various Zendesk events. + +##### Expose `zengo.views.WebhookView` ##### + +You need to configure your application to receive the webhook. To do so simply include it in your URL conf: + +```python +from django.contrib import admin +from django.urls import path + +from zengo.views import WebhookView + +urlpatterns = [ + path('admin/', admin.site.urls), + path('zengo/webhook/', WebhookView.as_view()) +] +``` + + +##### Add required bits to `settings.py` ##### + +You need to tell Zengo how to authenticate with Zendesk: + +- `ZENDESK_EMAIL` is the email of the Zendesk account you will use to interact with the API. +- `ZENDESK_TOKEN` generated for the user above in the Zendesk web interface. +- `ZENDESK_SUBDOMAIN` must match the subdomain used in your Zendesk account. + +As seen below, you need to specify +And you need to set a shared secret so that the webhook view can trust incoming messages from Zendesk: + +- `ZENGO_WEBHOOK_SECRET` generated by your good self; make it long and random! + +So, your settings should appear something along the lines of: + +```python +ZENDESK_EMAIL = "iamanemail@example.com" +ZENDESK_TOKEN = "<token-from-zendesk-webui>" +ZENDESK_SUBDOMAIN = "example" + +ZENGO_WEBHOOK_SECRET = "<replace-me-with-a-great-password>" +``` + +###### Configure Zendesk to send events ###### + +Zendesk allows for many integrations, but for the purposes of Zengo we just need to be told when a ticket has been changed. + +Log in as an administrator in Zendesk, and visit `Settings > Extensions > Targets > add target > HTTP target`. + +Add an HTTP target with a URL of your service, and choose the `POST` method. Ensure you've added a `secret` query parameter to the URL where your webhook is accessible, such that the webhook view can authorize Zendesk's webhook sends. + +Next, you must configure a trigger to use the target. Visit `Business Rules > Triggers > Add trigger`. Add a condition that suits your needs, such as, `Ticket is updated`, or `Ticket is created`, and select an action of `Notify target`, selecting the previously configured target. For JSON body, enter the following: + +```json +{ + "id": "{{ ticket.id }}" +} +``` + +You're done! Now whenever a ticket is created or updated in Zendesk, you should have an event being processed in your application. + +Note: for development, I recommend using the excellent [ngrok](https://ngrok.com/) to proxy requests through to your localhost. + +#### Performing actions upon receiving Zendesk events #### + +When Zengo receives a webhook from Zendesk, it will fetch the latest state of the ticket from Zendesk's APIs, compare how this differs to the state in the local database models, and fire a signal indicating what has happened. In your application, you attach receivers to the signal that is most relevant to your need. + +```python +from django.dispatch import receiver + +from zengo.signals import ticket_created + + +@receiver(ticket_created) +def handle_new_ticket(sender, ticket, context, **kwargs): + # perform your custom action here + pass +``` + +#### Signals #### + +You can connect to the following signals. + +- `zengo.signals.ticket_created` - fires when a ticket is encountered for the first time. +- `zengo.signals.ticket_updated` - fires when a ticket previously encountered is changed, or has a new comment added. + + +## Contribute + +`django-zengo` supports a variety of Python and Django versions. It's best if you test each one of these before committing. Our [Circle CI Integration](https://circleci.com) will test these when you push but knowing before you commit prevents from having to do a lot of extra commits to get the build to pass. + +### Environment Setup + +In order to easily test on all these Pythons and run the exact same thing that CI will execute you'll want to setup [pyenv](https://github.com/yyuu/pyenv) and install the Python versions outlined in [tox.ini](https://github.com/lukeburden/django-zengo/blob/master/tox.ini). + +If you are on Mac OS X, it's recommended you use [brew](http://brew.sh/). After installing `brew` run: + +``` +$ brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper +``` + +Then: + +``` +pyenv install -s 3.6.10 +pyenv install -s 3.7.6 +pyenv install -s 3.8.1 +pyenv virtualenv zengo 3.8.1 +pyenv shell zengo 3.6.10 3.7.6 +pip install detox +``` + +To run the test suite: + +``` +$ detox +``` + + + + +%package help +Summary: Development documents and examples for django-zengo +Provides: python3-django-zengo-doc +%description help +# Integrate Zendesk Support into your Django app + +[](https://pypi.python.org/pypi/django-zengo/) +[](https://pypi.python.org/pypi/django-zengo/) +[](https://github.com/ambv/black) +[](https://codecov.io/gh/lukeburden/django-zengo) +[](https://circleci.com/gh/lukeburden/django-zengo) + + +## django-zengo + +`django-zengo` is a Django app that provides conveniences for integrating with Zendesk. + +It facilitates receiving webhook updates from Zendesk, detecting new tickets and changes to existing tickets. + +### Installation #### + +pip install django-zengo + + +### Usage ### + +#### Configuring the webhook #### + +Zengo comes with a view that processes messages sent by Zendesk and allows you to perform actions upon various Zendesk events. + +##### Expose `zengo.views.WebhookView` ##### + +You need to configure your application to receive the webhook. To do so simply include it in your URL conf: + +```python +from django.contrib import admin +from django.urls import path + +from zengo.views import WebhookView + +urlpatterns = [ + path('admin/', admin.site.urls), + path('zengo/webhook/', WebhookView.as_view()) +] +``` + + +##### Add required bits to `settings.py` ##### + +You need to tell Zengo how to authenticate with Zendesk: + +- `ZENDESK_EMAIL` is the email of the Zendesk account you will use to interact with the API. +- `ZENDESK_TOKEN` generated for the user above in the Zendesk web interface. +- `ZENDESK_SUBDOMAIN` must match the subdomain used in your Zendesk account. + +As seen below, you need to specify +And you need to set a shared secret so that the webhook view can trust incoming messages from Zendesk: + +- `ZENGO_WEBHOOK_SECRET` generated by your good self; make it long and random! + +So, your settings should appear something along the lines of: + +```python +ZENDESK_EMAIL = "iamanemail@example.com" +ZENDESK_TOKEN = "<token-from-zendesk-webui>" +ZENDESK_SUBDOMAIN = "example" + +ZENGO_WEBHOOK_SECRET = "<replace-me-with-a-great-password>" +``` + +###### Configure Zendesk to send events ###### + +Zendesk allows for many integrations, but for the purposes of Zengo we just need to be told when a ticket has been changed. + +Log in as an administrator in Zendesk, and visit `Settings > Extensions > Targets > add target > HTTP target`. + +Add an HTTP target with a URL of your service, and choose the `POST` method. Ensure you've added a `secret` query parameter to the URL where your webhook is accessible, such that the webhook view can authorize Zendesk's webhook sends. + +Next, you must configure a trigger to use the target. Visit `Business Rules > Triggers > Add trigger`. Add a condition that suits your needs, such as, `Ticket is updated`, or `Ticket is created`, and select an action of `Notify target`, selecting the previously configured target. For JSON body, enter the following: + +```json +{ + "id": "{{ ticket.id }}" +} +``` + +You're done! Now whenever a ticket is created or updated in Zendesk, you should have an event being processed in your application. + +Note: for development, I recommend using the excellent [ngrok](https://ngrok.com/) to proxy requests through to your localhost. + +#### Performing actions upon receiving Zendesk events #### + +When Zengo receives a webhook from Zendesk, it will fetch the latest state of the ticket from Zendesk's APIs, compare how this differs to the state in the local database models, and fire a signal indicating what has happened. In your application, you attach receivers to the signal that is most relevant to your need. + +```python +from django.dispatch import receiver + +from zengo.signals import ticket_created + + +@receiver(ticket_created) +def handle_new_ticket(sender, ticket, context, **kwargs): + # perform your custom action here + pass +``` + +#### Signals #### + +You can connect to the following signals. + +- `zengo.signals.ticket_created` - fires when a ticket is encountered for the first time. +- `zengo.signals.ticket_updated` - fires when a ticket previously encountered is changed, or has a new comment added. + + +## Contribute + +`django-zengo` supports a variety of Python and Django versions. It's best if you test each one of these before committing. Our [Circle CI Integration](https://circleci.com) will test these when you push but knowing before you commit prevents from having to do a lot of extra commits to get the build to pass. + +### Environment Setup + +In order to easily test on all these Pythons and run the exact same thing that CI will execute you'll want to setup [pyenv](https://github.com/yyuu/pyenv) and install the Python versions outlined in [tox.ini](https://github.com/lukeburden/django-zengo/blob/master/tox.ini). + +If you are on Mac OS X, it's recommended you use [brew](http://brew.sh/). After installing `brew` run: + +``` +$ brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper +``` + +Then: + +``` +pyenv install -s 3.6.10 +pyenv install -s 3.7.6 +pyenv install -s 3.8.1 +pyenv virtualenv zengo 3.8.1 +pyenv shell zengo 3.6.10 3.7.6 +pip install detox +``` + +To run the test suite: + +``` +$ detox +``` + + + + +%prep +%autosetup -n django-zengo-2.0.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-zengo -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +b1d65e18c4ff55fbfb9dd6e7182f2a91 django-zengo-2.0.4.tar.gz |