{"id":22713284,"url":"https://github.com/artemeon/mantis2github","last_synced_at":"2026-06-05T23:00:25.847Z","repository":{"id":37868626,"uuid":"409909468","full_name":"artemeon/mantis2github","owner":"artemeon","description":"A small CLI tool to create a GitHub issue out of a Mantis issue.","archived":false,"fork":false,"pushed_at":"2025-06-07T09:54:34.000Z","size":181,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"dev/3.x","last_synced_at":"2026-03-11T13:30:14.002Z","etag":null,"topics":["cli","github","issue","issue-management","issues","mantis","mantisbt","synchronization","ticket","ticketing-system"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/artemeon/mantis2github","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artemeon.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":".github/CODEOWNERS","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":"2021-09-24T09:37:27.000Z","updated_at":"2026-01-09T14:23:49.000Z","dependencies_parsed_at":"2024-01-17T11:10:47.556Z","dependency_job_id":"8c4b9e05-c50b-4f9e-af58-69764485e0e1","html_url":"https://github.com/artemeon/mantis2github","commit_stats":{"total_commits":41,"total_committers":5,"mean_commits":8.2,"dds":"0.31707317073170727","last_synced_commit":"00b64115848618421e075ebb7c9a90b5f5361d1e"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/artemeon/mantis2github","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemeon%2Fmantis2github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemeon%2Fmantis2github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemeon%2Fmantis2github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemeon%2Fmantis2github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artemeon","download_url":"https://codeload.github.com/artemeon/mantis2github/tar.gz/refs/heads/dev/3.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemeon%2Fmantis2github/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33962959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cli","github","issue","issue-management","issues","mantis","mantisbt","synchronization","ticket","ticketing-system"],"created_at":"2024-12-10T14:08:55.404Z","updated_at":"2026-06-05T23:00:25.840Z","avatar_url":"https://github.com/artemeon.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mantis 2 GitHub Connector\n\n[![Packagist Version](https://img.shields.io/packagist/v/artemeon/mantis2github?style=for-the-badge)](https://packagist.org/packages/artemeon/mantis2github)\n![PHPStan](https://img.shields.io/badge/PHPStan-level%2010-brightgreen.svg?style=for-the-badge)\n[![Packagist Downloads](https://img.shields.io/packagist/dt/artemeon/mantis2github?style=for-the-badge)](https://packagist.org/packages/artemeon/mantis2github)\n[![License](https://img.shields.io/github/license/artemeon/mantis2github?style=for-the-badge)](https://packagist.org/packages/artemeon/mantis2github)\n\nA small CLI tool to create a GitHub issue out of a Mantis issue.\nCreates cross-references, so links the GitHub issue to mantis and vice versa.\n\n## Installation\n\n```shell\ncomposer global require artemeon/mantis2github\n```\n\n## Configuration\n\nWhen you first installed the package, call the `configure` command. You only need to do this once.\n\n```shell\nmantis2github configure\n```\n\nThe command will direct you through the installation process.\n\n### Quick setup\n\nIf you have used a previous version of this package and already have a `config.yaml` file, you can skip the configuration by running:\n\n```shell\nmantis2github configure path/to/config.yaml\n```\n\n## Usage\n\n```shell\nmantis2github [command]\n```\n\n### Available Commands\n\n| Command                      | Description                                                       |\n|------------------------------|-------------------------------------------------------------------|\n| [`sync`](#sync)              | Create a GitHub issue from a Mantis issue                         |\n| [`read:github`](#readgithub) | Read details of a GitHub issue                                    |\n| [`read:mantis`](#readmantis) | Read details of a Mantis issue                                    |\n| [`issues:list`](#issueslist) | Get a list of Mantis Tickets with their associated GitHub Issues. |\n\n#### `sync`\n\nCreate a GitHub issue from a list of Mantis issues.\n\n```shell\nmantis2github sync \u003cids\u003e...\n```\n\n##### Arguments\n\n| Argument | required | Description      |\n|----------|----------|------------------|\n| `ids`    | `true`   | Mantis issue ids |\n\n##### Examples\n\n###### Sync a single issue\n\n```shell\nmantis2github sync 123\n```\n\n###### Sync multiple issues\n\n```shell\nmantis2github sync 123 456 789\n```\n\n#### `read:github`\n\nRead details of a GitHub issue.\n\n```shell\nmantis2github read:github \u003cid\u003e\n```\n\n##### Arguments\n\n| Argument | required | Description     |\n|----------|----------|-----------------|\n| `id`     | `true`   | GitHub issue id |\n\n#### `read:mantis`\n\nRead details of a Mantis issue.\n\n```shell\nmantis2github read:mantis \u003cid\u003e\n```\n\n##### Arguments\n\n| Argument | required | Description     |\n|----------|----------|-----------------|\n| `id`     | `true`   | Mantis issue id |\n\n#### `issues:list`\n\nGet a list of Mantis Tickets with their associated GitHub Issues.\n\n```shell\nmantis2github issues:list [--output=html]\n```\n\n##### Options\n\n| Option   | Possible values | Description   |\n|----------|-----------------|---------------|\n| `output` | `html`          | Output Format |\n\n## MCP Server\n\nThis package ships an [MCP](https://modelcontextprotocol.io) server (`mantis-mcp`) that exposes\nMantis ticket details to LLM-powered clients. It reuses the same `config.yaml` as the CLI, so\nrunning `mantis2github configure` once is enough to make both available.\n\nThe server speaks the stdio transport and exposes three tools:\n\n| Tool                         | Description                                                                                       | Input                                                          |\n|------------------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------|\n| `mantis-issue-details`       | Read ticket details (incl. attachment metadata)                                                   | `{ \"id\": \u003cint\u003e }` or `{ \"url\": \"\u003cmantis-view-url\u003e\" }`          |\n| `mantis-issue-attachments`   | List attachment metadata (id, filename, size, content type) for a ticket                          | `{ \"id\": \u003cint\u003e }` or `{ \"url\": \"\u003cmantis-view-url\u003e\" }`          |\n| `mantis-attachment`          | Fetch the bytes of a single attachment. Images come back as inline image content, text as text, everything else as an embedded resource. Files over 10 MB are rejected. | `{ \"issue_id\": \u003cint\u003e, \"file_id\": \u003cint\u003e }`                      |\n\nTextual responses are encoded as [TOON](https://github.com/helgesverre/toon) to keep the LLM context compact.\n\n### Example host configuration\n\nFor Claude Desktop (`claude_desktop_config.json`) or any other MCP host that supports stdio servers:\n\n```json\n{\n  \"mcpServers\": {\n    \"mantis\": {\n      \"command\": \"mantis-mcp\"\n    }\n  }\n}\n```\n\nIf `mantis-mcp` is not on your `$PATH`, point `command` at the absolute path inside your Composer\n`vendor/bin/` (or `~/.composer/vendor/bin/` for a global install).\n\n## License\n\nThis project is open-sourced software licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemeon%2Fmantis2github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartemeon%2Fmantis2github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemeon%2Fmantis2github/lists"}