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
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.0a14.post1.tar.gz.
File metadata
- Download URL: matimo_github-0.1.0a14.post1.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 |
d7da30199d31f6732f29b36e23d6d5ee4432a2aaa624ffe7c76f617089f42a1e
|
|
| MD5 |
e99314198f62b709fc0a7bbcc03e5399
|
|
| BLAKE2b-256 |
0a56eacdc8360279b55d7e6a1879cbfb17fd58cefe57ae7b777959d6183b873a
|
File details
Details for the file matimo_github-0.1.0a14.post1-py3-none-any.whl.
File metadata
- Download URL: matimo_github-0.1.0a14.post1-py3-none-any.whl
- Upload date:
- Size: 24.1 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 |
b1d4021cbff3f481397e787d3c7ecd9103d510078ffc1327eb644567b389a77f
|
|
| MD5 |
eee1aab49fd92d5182a760c36d84ca41
|
|
| BLAKE2b-256 |
649537a7ae916171ab359f58349c36100bd6b4108165af27c6bb0a5f46d47c5e
|