{"id":28359915,"url":"https://github.com/dtinit/activity-pub-testbed","last_synced_at":"2026-03-05T19:05:05.653Z","repository":{"id":293361987,"uuid":"884557633","full_name":"dtinit/activity-pub-testbed","owner":"dtinit","description":"A Django-based project designed to help developers test and validate their ActivityPub implementations. This tool enables users to replicate a test ActivityPub account on their own servers and verify functionality by comparing test data. Ideal for ensuring compatibility with the ActivityPub protocol and diagnosing interoperability issues.","archived":false,"fork":false,"pushed_at":"2026-02-02T20:30:41.000Z","size":1455,"stargazers_count":3,"open_issues_count":58,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-03T04:31:50.611Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dtinit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-07T01:01:56.000Z","updated_at":"2026-01-20T14:17:38.000Z","dependencies_parsed_at":"2025-06-12T06:34:54.348Z","dependency_job_id":"b8f847bc-5026-429f-8947-ede1a6fb87fa","html_url":"https://github.com/dtinit/activity-pub-testbed","commit_stats":null,"previous_names":["dtinit/activity-pub-testbed"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dtinit/activity-pub-testbed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtinit%2Factivity-pub-testbed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtinit%2Factivity-pub-testbed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtinit%2Factivity-pub-testbed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtinit%2Factivity-pub-testbed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dtinit","download_url":"https://codeload.github.com/dtinit/activity-pub-testbed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtinit%2Factivity-pub-testbed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30144702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-05-28T10:10:28.649Z","updated_at":"2026-03-05T19:05:05.604Z","avatar_url":"https://github.com/dtinit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django ActivityPub Testbed Project\n\nThis project provides a framework to test ActivityPub implementations by allowing users to copy a test account to their server, perform various operations, and retrieve test data for verification.\n\nThis tool is especially useful for developers looking to ensure compatibility with the ActivityPub protocol.\n\n## Objectives\n\n- **Implement a Reference ActivityPub Account:** Create a standardized ActivityPub test account that others can replicate on their own servers.\n- **Enable Data Comparison:** Script functionality to pull test data back from a server and analyze it, highlighting differences or errors to assist developers in refining their ActivityPub implementations.\n\n## Features\n\n- **Test Account Creation:** Provides a ready-made ActivityPub-compatible account that can be replicated on external servers. \n- **Data Comparison Tool:** Automated scripts to retrieve ActivityPub data from other servers and compare it against the expected data, logging any discrepancies. \n- **Endpoint Verification:** Check whether common ActivityPub endpoints (e.g., /inbox, /outbox) behave as expected.\n\n\n## Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/yourusername/activitypub-testbed.git\n    cd activitypub-testbed\n    ```\n\n2. Create and activate a virtual environment:\n    ```sh\n    python -m venv venv\n    source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n    ```\n\n3. Install the dependencies:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n4. Set up the environment variables:\n    ```sh\n    cp .env-example .env\n    # Edit .env file to set your environment variables\n    ```\n\n5. Run the database migrations:\n    ```sh\n    python manage.py migrate\n    ```\n\n6. Seed the database with sample data:\n    ```sh\n    python manage.py seed\n    # This will prompt you if you want to create an admin account.\n    ```\n\n7. Run the development server:\n    ```sh\n    python manage.py runserver\n    ```\n\n## Running Tests\n\nTo run the tests, use the following command:\n```sh\npytest\n```\n\n## 🧹 pre-commit Hooks\n\nWe use [pre-commit](https://pre-commit.com/) to automatically lint and format code before each commit, ensuring code quality and consistency.\n\n### 🚀 Setting it up\n\n1. **Install the pre-commit hook**  \n   This sets up Git hooks in your local repo:\n\n   ```sh\n   pre-commit install\n   ```\n\n2. **You're all set!**  \n   Now, every time you commit, `pre-commit` will automatically run checks (like `ruff`) on staged files.\n\n### 💡 Run checks manually (optional)\n\nTo run all hooks on all files manually:\n\n```bash\npre-commit run --all-files\n```\n\nThis is useful for checking your work before pushing large changes.\n\n## Email\nDuring local development, emails printed in the server output and not actually sent, including verification link emails. In production, you will need to pass `EMAIL_HOST_USER` and `EMAIL_HOST_PASSWORD` with valid Gmail credentials, where `EMAIL_HOST_USER` is the email address to send mail from, and `EMAIL_HOST_PASSWORD` is an [app password](https://support.google.com/mail/answer/185833?hl=en) for that account.\n\n## License\nThis project is licensed under the Apache License 2.0.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtinit%2Factivity-pub-testbed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdtinit%2Factivity-pub-testbed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtinit%2Factivity-pub-testbed/lists"}