Matimo provider — GitHub tools (repos, issues, PRs, releases)
Project description
matimo-github
GitHub tools for Matimo — manage repositories, issues, pull requests, releases, and more.
Installation
pip install matimo matimo-github
Available Tools (27 Total)
| Category | Tool | Description |
|---|---|---|
| Repositories | get-repository |
Get repository details |
list-repositories |
List repositories for user/org | |
create-repository |
Create a new repository | |
delete-repository |
Delete a repository | |
search-repositories |
Search GitHub repositories | |
| Issues | list-issues |
List issues in a repository |
get-issue |
Get a single issue | |
create-issue |
Create a new issue | |
update-issue |
Update issue title, body, state, labels | |
search-issues |
Search issues across GitHub | |
| Pull Requests | list-pull-requests |
List PRs in a repository |
create-pull-request |
Open a new pull request | |
merge-pull-request |
Merge a pull request | |
| Releases | list-releases |
List releases for a repository |
create-release |
Create a new release with tag | |
| Commits | list-commits |
List commits on a branch |
| Collaborators | list-collaborators |
List repository collaborators |
add-collaborator |
Add a collaborator | |
| Code Search | search-code |
Search code across repositories |
search-users |
Search GitHub users | |
| Security | list-code-alerts |
List Dependabot/code scanning alerts |
update-code-alert |
Dismiss or resolve a code alert |
Quick Start
import asyncio
import os
from matimo import Matimo
from matimo_github import get_tools_path
async def main():
matimo = await Matimo.init(get_tools_path())
# List open issues
result = await matimo.execute('list-issues', {
'owner': 'my-org',
'repo': 'my-repo',
'state': 'open',
})
# Create an issue
await matimo.execute('create-issue', {
'owner': 'my-org',
'repo': 'my-repo',
'title': 'Bug: login fails on mobile',
'body': 'Steps to reproduce...',
})
asyncio.run(main())
Authentication
export GITHUB_TOKEN="ghp_your-personal-access-token"
Required Scopes
| Operations | Required Scope |
|---|---|
| Read public repos, issues, PRs | public_repo |
| Read private repositories | repo |
| Create/update issues, PRs | repo |
| Manage collaborators | repo + admin:org |
| Delete repositories | delete_repo |
| Read security alerts | security_events |
LangChain Agent Example
from matimo import Matimo
from matimo_github import get_tools_path
from matimo.integrations.langchain import convert_tools_to_langchain
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
matimo = await Matimo.init(get_tools_path())
lc_tools = convert_tools_to_langchain(
matimo.list_tools(), matimo,
credentials={'GITHUB_TOKEN': os.environ['GITHUB_TOKEN']},
)
llm = ChatOpenAI(model='gpt-4o-mini')
prompt = ChatPromptTemplate.from_messages([
('system', 'You are a GitHub assistant.'),
('human', '{input}'),
('placeholder', '{agent_scratchpad}'),
])
agent = create_tool_calling_agent(llm, lc_tools, prompt)
executor = AgentExecutor(agent=agent, tools=lc_tools)
result = await executor.ainvoke({'input': 'List all open issues in tallclub/matimo'})
Documentation
Links
- PyPI: https://pypi.org/project/matimo-github/
- GitHub: https://github.com/tallclub/matimo
- GitHub Docs: https://docs.github.com/en/rest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
matimo_github-0.1.0.tar.gz
(8.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file matimo_github-0.1.0.tar.gz.
File metadata
- Download URL: matimo_github-0.1.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a731e9f3891c8aafb1ba0795f82e95a7856bc0f6e862d4d6b45eead9dd73231d
|
|
| MD5 |
3d62b8619d7e875e324d782e101518f9
|
|
| BLAKE2b-256 |
1de6e5e397782111a2b120e03e6a779dcf05e1aab4f2ff3b0e8079e6236b119e
|
File details
Details for the file matimo_github-0.1.0-py3-none-any.whl.
File metadata
- Download URL: matimo_github-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8ae8d6272a1360aaa0b782874cb817bae47eb7e7b9ec9790d48f950d0c8bba6
|
|
| MD5 |
9c05065e8935fb31ed68bf0f498ca280
|
|
| BLAKE2b-256 |
3145ae5c32f52050e2bc6bf6a08df21bc07057603ec580ede0781f9c5d4d7475
|