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
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.2.tar.gz
(8.6 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.2.tar.gz.
File metadata
- Download URL: matimo_github-0.1.2.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d57b0053d96f89247edbba9f6a5a62e0063f1b76f91323d2d763a288d3b4c913
|
|
| MD5 |
165faebb86e16dfb14c3eb83d72c3975
|
|
| BLAKE2b-256 |
068dcf32e8021a8550a4e37a3076b106f637d6bef2b5834f23c925e674c2955f
|
File details
Details for the file matimo_github-0.1.2-py3-none-any.whl.
File metadata
- Download URL: matimo_github-0.1.2-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 |
bb80f0d145a952225b5b0be6b5f8801913815e8045512402eab464f58cb3306a
|
|
| MD5 |
82d773a6fdedde30318a2ab7d73af226
|
|
| BLAKE2b-256 |
afaf143f59b6c58b01135e375f941b7e4803104410de475c13998bba4a9e294c
|