{"id":26482012,"url":"https://github.com/kiwitcms/github-app","last_synced_at":"2025-03-20T03:36:38.746Z","repository":{"id":36745013,"uuid":"226945326","full_name":"kiwitcms/github-app","owner":"kiwitcms","description":"GitHub App integration for Kiwi TCMS ","archived":false,"fork":false,"pushed_at":"2024-10-09T13:06:32.000Z","size":211,"stargazers_count":2,"open_issues_count":8,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-30T05:41:59.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://kiwitcms.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiwitcms.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://kiwitcms.org/#subscriptions"],"github":["kiwitcms"],"patreon":null,"open_collective":"kiwitcms","ko_fi":null,"tidelift":"pypi/kiwitcms","community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null}},"created_at":"2019-12-09T18:59:48.000Z","updated_at":"2024-10-09T13:06:35.000Z","dependencies_parsed_at":"2023-01-17T04:29:05.011Z","dependency_job_id":"64070f9e-d7c9-4f57-b78f-798007eac5c7","html_url":"https://github.com/kiwitcms/github-app","commit_stats":{"total_commits":207,"total_committers":8,"mean_commits":25.875,"dds":"0.24154589371980673","last_synced_commit":"abc10f32641a2fe6525dd8354caf212f0a348778"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Fgithub-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Fgithub-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Fgithub-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Fgithub-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiwitcms","download_url":"https://codeload.github.com/kiwitcms/github-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244545544,"owners_count":20469880,"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":"2025-03-20T03:36:38.095Z","updated_at":"2025-03-20T03:36:38.734Z","avatar_url":"https://github.com/kiwitcms.png","language":"Python","funding_links":["https://kiwitcms.org/#subscriptions","https://github.com/sponsors/kiwitcms","https://opencollective.com/kiwitcms","https://tidelift.com/funding/github/pypi/kiwitcms","https://tidelift.com/badges/package/pypi/kiwitcms-github-app","https://tidelift.com/subscription/pkg/pypi-kiwitcms-github-app?utm_source=pypi-kiwitcms-github-app\u0026utm_medium=github\u0026utm_campaign=readme"],"categories":[],"sub_categories":[],"readme":"GitHub App integration for Kiwi TCMS\n====================================\n\n.. image:: https://coveralls.io/repos/github/kiwitcms/github-app/badge.svg?branch=master\n   :target: https://coveralls.io/github/kiwitcms/github-app?branch=master\n\n.. image:: https://pyup.io/repos/github/kiwitcms/github-app/shield.svg\n    :target: https://pyup.io/repos/github/kiwitcms/github-app/\n    :alt: Python updates\n\n.. image:: https://tidelift.com/badges/package/pypi/kiwitcms-github-app\n    :target: https://tidelift.com/subscription/pkg/pypi-kiwitcms-github-app?utm_source=pypi-kiwitcms-github-app\u0026utm_medium=github\u0026utm_campaign=readme\n    :alt: Tidelift\n\n.. image:: https://opencollective.com/kiwitcms/tiers/sponsor/badge.svg?label=sponsors\u0026color=brightgreen\n   :target: https://opencollective.com/kiwitcms#contributors\n   :alt: Become a sponsor\n\n.. image:: https://img.shields.io/twitter/follow/KiwiTCMS.svg\n    :target: https://twitter.com/KiwiTCMS\n    :alt: Kiwi TCMS on Twitter\n\n\nIntroduction\n------------\n\nThis package provides the GitHub App integration for\n`Kiwi TCMS Enterprise \u003chttps://github.com/MrSenko/kiwitcms-enterprise/\u003e`_\nand is designed to work only for multi-tenant environments!\nYou don't need this add-on in order to run Kiwi TCMS without extended\nGitHub integration!\n\nCommunication from GitHub to this plugin is via webhooks.\n\nPlugin behavior:\n\n- Auto-configure which tenant to use for database operations, either\n  'public' or a single private tenant to which user has access.\n- If unable to auto-configure display warning and redirect to configuration\n  page once the GitHub account who installed this integration onto their\n  GitHub repository logs into Kiwi TCMS\n- Existing \u0026 newly created repositories are added as products in Kiwi TCMS\n- BugSystem records are automatically configured for repositories\n- Fork repositories are skipped\n- Newly created git tags are added as product versions in Kiwi TCMS\n\n\nSee `Issues \u003chttps://github.com/kiwitcms/github-app/issues\u003e`_ for other ideas!\n\n\nInstallation\n------------\n\n::\n\n    pip install kiwitcms-github-app\n\ninside Kiwi TCMS's docker image and make sure the following settings are configured::\n\n    AUTHENTICATION_BACKENDS = [\n        'social_core.backends.github.GithubAppAuth',\n        ...\n    ]\n    SOCIAL_AUTH_GITHUB_APP_KEY = 'xxxxxx'\n    SOCIAL_AUTH_GITHUB_APP_SECRET = 'yyy'\n    KIWI_GITHUB_APP_SECRET = b'your-webhook-secret'\n    KIWI_GITHUB_APP_ID = 123456\n    KIWI_GITHUB_APP_PRIVATE_KEY = \"\"\"-----BEGIN RSA PRIVATE KEY-----\n    +++++++++base64-encoded-private-key+++++++\n    -----END RSA PRIVATE KEY-----\"\"\"\n\neverything else will be taken care for by Kiwi TCMS plugin loading code!\n\n\nGitHub App configuration\n------------------------\n\nThis plugin needs an existing GitHub App application with the following\nconfiguration:\n\n- User authorization callback URL: https://tcms.example.com/complete/github-app/\n- Request user authorization (OAuth) during installation - True\n- Webhook Active - True\n- Webhook URL - https://tcms.example.com/kiwitcms_github_app/webhook/\n- Webhook Secret - \u003cthe value of KIWI_GITHUB_APP_SECRET\u003e\n- SSL verification - Enabled\n\nThen configure how the application interacts with GitHub:\n\n- Repository permissions:\n\n  - Contents: Read-only\n  - Issues: Read \u0026 write (required for 1-click bug report on private repos)\n  - Metadata: Read-only\n\n- User permissions:\n\n  - Email addresses: Read-only\n\n- Subscribe to events:\n\n  - Meta\n  - Create\n  - Repository\n\n\nChangelog\n---------\n\nv2.0.1 (18 Jun 2024)\n~~~~~~~~~~~~~~~~~~~~\n\n- Filter DB only for 'github-app' instead of unconditionally using the first\n  record. Fixes\n  `Sentry KIWI-TCMS-P5 \u003chttps://kiwitcms.sentry.io/issues/5501934208/?project=277775\u003e`_\n\n\nv2.0.0 (07 Jun 2024)\n~~~~~~~~~~~~~~~~~~~~\n\n- Relicense this package under GNU Affero General Public License v3 or later\n- Prior versions are still licensed under GNU General Public License v3\n\n\nv1.7.0 (06 May 2024)\n~~~~~~~~~~~~~~~~~~~~\n\n- Pin indirect requirements to reduce the chance of installing vulnerable\n  dependencies\n- Remove the wrapper ``GithubKiwiTCMSBot()`` class\n- Simplify ``self.requester`` override in ``PatchedGithub()`` class\n- Start using the new GitHub Auth parameters introduced in PyGithub==1.59.0\n\n\nv1.6.0 (15 Jan 2024)\n~~~~~~~~~~~~~~~~~~~~\n\n- 1-click bug report will now use ``execution.build.version.product`` instead\n  of ``execution.run.plan.product`` following changes in Kiwi TCMS, see:\n  \u003chttps://github.com/kiwitcms/Kiwi/commit/48a33a71e664c8c3ed2ceb298b5f1e19d0bddb52\u003e_\n  and `PR #3439 \u003chttps://github.com/kiwitcms/Kiwi/pull/3439\u003e`_ for more details\n- Require minimum version of several transitive dependencies,\n  ``certifi\u003e=2023.7.22``, ``cryptography\u003e=41.0.4``, ``pyjwt\u003e=2.4.0``, ``requests\u003e=2.31.0``\n  in order to minimize exposure to known security vulnerabilities\n- Build \u0026 test with Python 3.11\n- Start testing with psycopg3\n- Small updates around test jobs \u0026 CI\n\n\nv1.5.1 (28 Mar 2023)\n~~~~~~~~~~~~~~~~~~~~\n\n- Unpin PyGithub dependency\n- Add more tests\n\n\nv1.5.0 (24 Feb 2023)\n~~~~~~~~~~~~~~~~~~~~\n\n- Refactor code so it works with PyGithub==1.58.0\n- Remove PatchedGithubIntegration class\n- Add sanity tests for upstream/downstream interfaces for PyGithub\n\n\nv1.4.1 (13 Feb 2023)\n~~~~~~~~~~~~~~~~~~~~\n\n- Adjust arguments for latest github.Github implementation\n- Raise RuntimeError instead of Exception\n\n\nv1.4.0 (05 Sep 2022)\n~~~~~~~~~~~~~~~~~~~~\n\n- Don't ask user to configure GitHub App if they are not tenant owner. Breaks\n  an endless loop cycle in case tenant creation goes wrong\n- Specify 30 sec timeout for internal HTTP requests\n- Improvements to CI\n\n\nv1.3.3 (31 Jan 2022)\n~~~~~~~~~~~~~~~~~~~~\n\n- Fix for GitHub exceptions. Fixes\n  `KIWI-TCMS-HH \u003chttps://sentry.io/organizations/kiwitcms/issues/2959079667\u003e`_\n\n\nv1.3.2 (05 Jan 2022)\n~~~~~~~~~~~~~~~~~~~~\n\n- Don't crash on 404 from GitHub. Fixes\n  `KIWI-TCMS-EA \u003chttps://sentry.io/organizations/kiwitcms/issues/1869016907/\u003e`_\n- Workaround upstream \u003chttps://github.com/PyGithub/PyGithub/pull/2079\u003e. Fixes\n  `KIWI-TCMS-HD \u003chttps://sentry.io/organizations/kiwitcms/issues/2835963408\u003e`_\n\n\nv1.3.1 (04 Oct 2021)\n~~~~~~~~~~~~~~~~~~~~\n\n- Adjust 2 parameters for changes introduced in PyGithub 1.55\n\n\nv1.3.0 (14 Feb 2021)\n~~~~~~~~~~~~~~~~~~~~\n\n- Migrate to Python 3.8\n- Always test with the latest Kiwi TCMS version\n- Adjustments to the internal test suite now that Kiwi TCMS is available via\n  source\n- Prevent crash if ``uid`` field is not a number to make it work with Keycloak\n\n\nv1.2.4 (14 Feb 2021)\n~~~~~~~~~~~~~~~~~~~~\n\n- Don't cause ISE in case of race conditions between webhooks\n- Fix ISE for existing Version\n\n\nv1.2.3 (25 Jan 2021)\n~~~~~~~~~~~~~~~~~~~~\n\n- Allow POST request (web hooks) without CSRF token\n\n\nv1.2.2 (08 Dec 2020)\n~~~~~~~~~~~~~~~~~~~~\n\n- Update for newer PyGithub\n\n\nv1.2.1 (17 Sep 2020)\n~~~~~~~~~~~~~~~~~~~~\n\n- Require login for views.Resync()\n\n\nv1.2 (13 Sep 2020)\n~~~~~~~~~~~~~~~~~~\n\n- Adjusted to work with Django 3.1 and Kiwi TCMS \u003e 8.6\n- Replace deprecated ``url()`` with ``re_path()``\n- Migrate the ``payload`` field to newer ``models.JSONField`` type\n- Setting ``PUBLIC_VIEWS`` is removed in Kiwi TCMS so remove the\n  automatic adjustment\n- Make error messages for missing AppInst more clear\n- Remove redundant if condition in Resync()\n- Update translation strings\n- Update documentation around GitHub permission requirements for\n  1-click bug report\n\n\nv1.1 (05 Aug 2020)\n~~~~~~~~~~~~~~~~~~\n\n- Add GitHub issue-tracker integration which authenticates as the installed app.\n  Fixes `Issue #25 \u003chttps://github.com/kiwitcms/github-app/issues/25\u003e`_\n- Configure BugSystem for new repos. Fixes\n  `Issue #15 \u003chttps://github.com/kiwitcms/github-app/issues/15\u003e`_\n- Create Product \u0026 BugSystem records when installation_repositores change.\n  Fixes `Issue #21 \u003chttps://github.com/kiwitcms/github-app/issues/21\u003e`_\n- Trigger resync from GitHub via menu. Fixes\n  `Issue #19 \u003chttps://github.com/kiwitcms/github-app/issues/19\u003e`_\n- Trigger resync from GitHub after AppInstallation is configured. Fixes\n  `Issue #20 \u003chttps://github.com/kiwitcms/github-app/issues/20\u003e`_\n- Database: Add ``AppInstallation.settings_url`` field\n- Link to the correct URL for GitHub settings. Fixes\n  `Issue #33 \u003chttps://github.com/kiwitcms/github-app/issues/33\u003e`_\n- Require user to be logged in for ApplicationEdit. Fixes\n  `Issue #36 \u003chttps://github.com/kiwitcms/github-app/issues/36\u003e`_\n- Update translation strings\n- Add more tests\n\n\nv1.0 (13 Apr 2020)\n~~~~~~~~~~~~~~~~~~\n\n- Install settings overrides under ``tcms_settings_dir/``\n  (compatible with Kiwi TCMS v8.2 or later):\n\n  - does not need ``MIDDLEWARE`` and ``PUBLIC_VIEWS`` override anymore\n- Remove ``GithubAppAuth`` backend, shipped with social-auth-core v3.3.0\n- Fix a redirect to use the correct name of our social_core backend\n\n\nv0.0.5 (19 Feb 2020)\n~~~~~~~~~~~~~~~~~~~~\n\n- Address GitHub API deprecation not yet fixed in social-auth-core\n\n\nv0.0.4 (25 Dec 2019)\n~~~~~~~~~~~~~~~~~~~~\n\n- Do not fail if product already exists\n- Do not fail if repository doesn't have description\n- Search UserSocialAuth by uid and provider\n\n\nv0.0.1 (24 Dec 2019)\n~~~~~~~~~~~~~~~~~~~~\n\n- initial release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwitcms%2Fgithub-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiwitcms%2Fgithub-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwitcms%2Fgithub-app/lists"}