Skip to main content

Matimo provider — GitHub tools (repos, issues, PRs, releases)

Project description

matimo-github

GitHub tools for Matimo — manage repositories, issues, pull requests, releases, and more.

PyPI Docs


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

Project details


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.0a14.post1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matimo_github-0.1.0a14.post1-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

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

Hashes for matimo_github-0.1.0a14.post1.tar.gz
Algorithm Hash digest
SHA256 d7da30199d31f6732f29b36e23d6d5ee4432a2aaa624ffe7c76f617089f42a1e
MD5 e99314198f62b709fc0a7bbcc03e5399
BLAKE2b-256 0a56eacdc8360279b55d7e6a1879cbfb17fd58cefe57ae7b777959d6183b873a

See more details on using hashes here.

File details

Details for the file matimo_github-0.1.0a14.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for matimo_github-0.1.0a14.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1d4021cbff3f481397e787d3c7ecd9103d510078ffc1327eb644567b389a77f
MD5 eee1aab49fd92d5182a760c36d84ca41
BLAKE2b-256 649537a7ae916171ab359f58349c36100bd6b4108165af27c6bb0a5f46d47c5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page