{"id":17004171,"url":"https://github.com/zerc/gio","last_synced_at":"2025-03-22T10:16:40.008Z","repository":{"id":137743921,"uuid":"41255531","full_name":"zerc/gio","owner":"zerc","description":"Github Issues Observer","archived":false,"fork":false,"pushed_at":"2015-08-24T16:11:10.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T10:08:32.372Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zerc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-23T15:42:16.000Z","updated_at":"2015-08-23T15:42:30.000Z","dependencies_parsed_at":"2023-03-13T04:41:10.280Z","dependency_job_id":null,"html_url":"https://github.com/zerc/gio","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerc%2Fgio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerc%2Fgio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerc%2Fgio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerc%2Fgio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerc","download_url":"https://codeload.github.com/zerc/gio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937835,"owners_count":20535127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T04:42:55.102Z","updated_at":"2025-03-22T10:16:39.988Z","avatar_url":"https://github.com/zerc.png","language":"Python","readme":"GIO - Github Issues Observer\n============================\n\nThis micro service will accept all webhook from Github and dispatch to the target system. In most case, it will just replay the request from Github.\n\nIn addition, it will:\n\n* pull the issue event stream: https://developer.github.com/v3/issues/events/.\n* pull the GET /repos/:owner/:repo/issues https://developer.github.com/v3/issues/.\n* composes a push webhook to the target system when issues description or title updated. To simulate Github Webhook of issue description and title update.\n\nDependencies\n------------\n\nProject based on Flask framework. All pythonic deps listed in `requirements.txt`. For dev purposes also i write `requirements.dev.txt` which have some useful deps for development.\n\nOther deps:\n\n* virutalenv - if you want using `make install` command\n* mongodb - 3+ version\n\nInstall\n-------\n\nTypically after pulling this repo just type:\n\n.. code:: shell\n\n    $ make install\n\nThis command install virtualenv, activate it and install all python deps for us.\n\n\nAfter that you can run tests for checking:\n\n.. code:: shell\n\n    $ make test\n\nUsage\n-----\n\nFirst you may want to edit you local settings like this:\n\n.. code:: shell\n\n    $ cp settings_local.example settings_local.py\n\nAfter that look at `gio/settings.py` for list of settings specified for project. Some main important:\n\n* ``MONGO_HOST``, ``MONGO_PORT``, ``MONGO_DB`` - settings for access to MongoDB.\n* ``GIO_APP_TOKEN`` - I recommend obtain it for avoiding troubles with rate limits. https://github.com/settings/tokens\n* ``GIO_WATCHED_REPO`` - repo what you want observe\n\nAfter configuration we can use following things.\n\nPulling all issues and events from ``GIO_WATCHED_REPO``. It may be long for first time.\n\n.. code:: shell\n\n    python gio/manage.py pull\n\nFor next time it will pull only updated data (uses `since` github api param).\n\nFor receiving webhooks use ``/_hooks/`` endpoint. Just setup you repo for it.\n\nAfter webhooks received it store in queue and wait for sending. It making for minimum blocking time GitHub hooks sender (it have 30sec timeout btw) and make independent sending mechanism. And for send all hooks to 3rd system you can use:\n\n.. code:: shell\n\n    python gio/manage.py send_hooks\n\n\nYou can place calls of ``pull`` and ``send_hook`` commands to crontab in your server.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerc%2Fgio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerc%2Fgio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerc%2Fgio/lists"}