{"id":28523165,"url":"https://github.com/weblateorg/fedora_messaging","last_synced_at":"2025-07-06T05:32:31.963Z","repository":{"id":37952089,"uuid":"214434822","full_name":"WeblateOrg/fedora_messaging","owner":"WeblateOrg","description":"Fedora messaging integration for Weblate","archived":false,"fork":false,"pushed_at":"2025-07-03T17:45:22.000Z","size":497,"stargazers_count":6,"open_issues_count":3,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-03T18:46:52.322Z","etag":null,"topics":["django","fedora","hacktoberfest","localization","messaging","python","weblate"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WeblateOrg.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"WeblateOrg","open_collective":"weblate","liberapay":"Weblate","custom":"https://weblate.org/donate/"}},"created_at":"2019-10-11T12:47:40.000Z","updated_at":"2025-07-03T17:45:26.000Z","dependencies_parsed_at":"2023-10-23T23:26:46.469Z","dependency_job_id":"29833159-dbb4-46e4-8608-ca4fc344dd19","html_url":"https://github.com/WeblateOrg/fedora_messaging","commit_stats":{"total_commits":653,"total_committers":7,"mean_commits":93.28571428571429,"dds":0.6049004594180705,"last_synced_commit":"a294b30c59af4aeb042b21dcbbc23ac70687223e"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/WeblateOrg/fedora_messaging","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeblateOrg%2Ffedora_messaging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeblateOrg%2Ffedora_messaging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeblateOrg%2Ffedora_messaging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeblateOrg%2Ffedora_messaging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WeblateOrg","download_url":"https://codeload.github.com/WeblateOrg/fedora_messaging/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeblateOrg%2Ffedora_messaging/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263853379,"owners_count":23520131,"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":["django","fedora","hacktoberfest","localization","messaging","python","weblate"],"created_at":"2025-06-09T10:07:30.494Z","updated_at":"2025-07-06T05:32:31.957Z","avatar_url":"https://github.com/WeblateOrg.png","language":"Python","funding_links":["https://github.com/sponsors/WeblateOrg","https://opencollective.com/weblate","https://liberapay.com/Weblate","https://weblate.org/donate/"],"categories":[],"sub_categories":[],"readme":".. image:: https://s.weblate.org/cdn/Logo-Darktext-borders.png\n   :alt: Weblate\n   :target: https://weblate.org/\n   :height: 80px\n\n**Weblate is libre software web-based continuous localization system,\nused by over 2500 libre projects and companies in more than 165 countries.**\n\n\nFedora messaging integration and AMQP publisher for Weblate.\n\n.. image:: https://img.shields.io/badge/website-weblate.org-blue.svg\n    :alt: Website\n    :target: https://weblate.org/\n\n.. image:: https://hosted.weblate.org/widgets/weblate/-/svg-badge.svg\n    :alt: Translation status\n    :target: https://hosted.weblate.org/engage/weblate/?utm_source=widget\n\n.. image:: https://bestpractices.coreinfrastructure.org/projects/552/badge\n    :alt: CII Best Practices\n    :target: https://bestpractices.coreinfrastructure.org/projects/552\n\n.. image:: https://img.shields.io/pypi/v/weblate-fedora-messaging.svg\n    :target: https://pypi.org/project/weblate-fedora-messaging/\n    :alt: PyPI package\n\n.. image:: https://readthedocs.org/projects/weblate/badge/\n    :alt: Documentation\n    :target: https://docs.weblate.org/\n\nInstallation\n------------\n\nInstall from PyPI:\n\n.. code-block:: sh\n\n    pip install weblate-fedora-messaging\n\nSources are available at \u003chttps://github.com/WeblateOrg/fedora_messaging\u003e.\n\nConfigure Weblate integration:\n\n.. code-block:: python\n\n   # Add to installed apps\n   INSTALLED_APPS.append(\"weblate_fedora_messaging\")\n   # Path to configuration file\n   FEDORA_MESSAGING_CONF = \"/etc/fedora-messaging/config.toml\"\n   # fedora_messaging_task retry settings (optional, the following are the default values)\n   FEDORA_MESSAGING_TASK_RETRY_BACKOFF = 600\n   FEDORA_MESSAGING_TASK_RETRY_BACKOFF_MAX = 3600\n   FEDORA_MESSAGING_TASK_RETRY_JITTER = True\n   FEDORA_MESSAGING_TASK_MAX_RETRIES = 3\n   # Route messaging to notify queue\n   CELERY_TASK_ROUTES[\"weblate_fedora_messaging.tasks.*\"] = {\"queue\": \"notify\"}\n\n\nMessages content\n----------------\n\nTopic\n+++++\n\nAll messages have topic\n``weblate.\u003caction\u003e.\u003cproject\u003e.\u003ccomponent\u003e.\u003ctranslation\u003e``. The action is\nlowercase textual representation of action with underscores instead of space,\nfor example ``resource_update``, all other parts are optional and represent\nslug of the object or a language code.\n\nBody\n++++\n\nThe body consists of following fields (given that they are available for the event):\n\n``id``\n   Numerical ID of change\n``action``\n   Verbose name of the change, see `Change actions source code`_ for possible values\n``timestamp``\n   ISO formatted timestamp\n``target``\n   New value of the change (eg. new translation of the string)\n``old``\n   Old value of the change (eg. previous translation of the string)\n``source``\n   Source string.\n``url``\n   Absolute URL to view the related object.\n``author``\n   Author username (this can be different from user for example when accepting suggestions)\n``user``\n   Acting username\n``project``\n   Project slug\n``component``\n   Component slug\n``translation``\n   Translation language code\n\nHeaders\n+++++++\n\nThere are additional headers which you might utilize for routing as well:\n\n``action``\n   Verbose name of the change, see `Change actions source code`_ for possible values\n``project``\n   Project slug\n``component``\n   Component slug\n\n\n.. _Change actions source code: https://github.com/WeblateOrg/weblate/blob/master/weblate/trans/models/change.py#L218\n\n\nExample messages\n----------------\n\nRepository merge event:\n\n.. code-block:: json\n\n    {\n      \"id\": 1,\n      \"action\": \"Merged repository\",\n      \"timestamp\": \"2017-06-15T11:30:47.325000+00:00\",\n      \"url\": \"http://example.com/projects/test/test/\",\n      \"component\": \"test\"\n    }\n\nNew source string event:\n\n.. code-block:: json\n\n    {\n      \"id\": 2,\n      \"action\": \"New source string\",\n      \"timestamp\": \"2017-06-15T11:30:47.372000+00:00\",\n      \"url\": \"http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e\",\n      \"component\": \"test\",\n      \"translation\": \"cs\",\n      \"source\": [\"Hello, world!\\n\"]\n    }\n\nResource update event:\n\n.. code-block:: json\n\n    {\n      \"id\": 6,\n      \"action\": \"Resource update\",\n      \"timestamp\": \"2017-06-15T11:30:47.410000+00:00\",\n      \"url\": \"http://example.com/projects/test/test/cs/\",\n      \"project\": \"test\",\n      \"component\": \"test\",\n      \"translation\": \"cs\"\n    }\n    {\n      \"id\": 7,\n      \"action\": \"Resource update\",\n      \"timestamp\": \"2017-06-15T11:30:47.510000+00:00\",\n      \"url\": \"http://example.com/projects/test/test/de/\",\n      \"project\": \"test\",\n      \"component\": \"test\",\n      \"translation\": \"de\"\n    }\n    {\n      \"id\": 8,\n      \"action\": \"Resource update\",\n      \"timestamp\": \"2017-06-15T11:30:47.595000+00:00\",\n      \"url\": \"http://example.com/projects/test/test/it/\",\n      \"project\": \"test\",\n      \"component\": \"test\",\n      \"translation\": \"it\"\n    }\n\nProject removal event:\n\n.. code-block:: json\n\n    {\n      \"id\": 9,\n      \"action\": \"Removed project\",\n      \"timestamp\": \"2019-10-17T15:57:08.559420+00:00\",\n      \"target\": \"test\",\n      \"user\": \"testuser\"\n    }\n\nNew contributor event:\n\n.. code-block:: json\n\n    {\n      \"id\": 11,\n      \"action\": \"New contributor\",\n      \"timestamp\": \"2019-10-17T15:57:08.759960+00:00\",\n      \"url\": \"http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e\",\n      \"author\": \"testuser\",\n      \"user\": \"testuser\",\n      \"project\": \"test\",\n      \"component\": \"test\",\n      \"translation\": \"cs\",\n      \"source\": [\"Hello, world!\\n\"]\n    }\n\nNew translation event:\n\n.. code-block:: json\n\n    {\n      \"id\": 12,\n      \"action\": \"New translation\",\n      \"timestamp\": \"2019-10-17T15:57:08.772591+00:00\",\n      \"url\": \"http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e\",\n      \"target\": [\"Ahoj svete!\\n\"],\n      \"author\": \"testuser\",\n      \"user\": \"testuser\",\n      \"project\": \"test\",\n      \"component\": \"test\",\n      \"translation\": \"cs\",\n      \"source\": [\"Hello, world!\\n\"]\n    }\n\nContributing\n------------\n\nContributions are welcome! See `documentation \u003chttps://docs.weblate.org/en/latest/contributing/modules.html\u003e`__ for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweblateorg%2Ffedora_messaging","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweblateorg%2Ffedora_messaging","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweblateorg%2Ffedora_messaging/lists"}