Original workflow, work and repository https://github.com/haesleinhuepf/git-bob by https://github.com/haesleinhuepf. This is just a very simple testing repo, read and study the source if you want to learn more.
git-bob uses AI to solve GitHub issues. It runs inside the GitHub CI, no need to install anything on your computer. Read more in the publication.
Under the hood it uses Anthropic's Claude or OpenAI's chatGPT or Google's Gemini to understand the text and pygithub to interact with the issues and pull requests. As its discussions are conserved, you can document how things were done using AI and others can learn how to prompt for the things you did. For example, the pair-plot discussion above is available online.
git-bob
is a research project aiming at streamlining GitHub interaction in software development projects. Under the hood it uses
artificial intelligence / large language models to generate text and code fulfilling the user's requests.
Users are responsible to verify the generated code according to good scientific practice.
When using git-bob
you configure it to use an API key to access the AI models.
You have to pay for the usage and must be careful in using the software.
Do not use this technology if you are not aware of the costs and consequences.
Caution
When using the Anthropic, OpenAI, Google Gemini, Mistral or any other endpoint via git-bob, you are bound to the terms of service of the respective companies or organizations. The GitHub issues, pull requests and messages you enter are transferred to their servers and may be processed and stored there. Make sure to not submit any sensitive, confidential or personal data. Also using these services may cost money.
There is a detailed tutorial on how to install git-bob as GitHub action to your repository. In very short, to use git-bob in your GitHub repository, you need to
- Copy the git-bob GitHub workflow in folder
.github/workflows/
to your repository.- Make sure to replace
pip install -e .
with a specific git-bob version such aspip install git-bob==0.16.0
. - If your project does not contain a
requirements.txt
file, remove the linepip install -r requirements.txt
. - Configure the LLM you want to use in the workflow files by specifying the
GIT_BOB_LLM_NAME
secret. These were tested:claude-3-5-sonnet-20241022
gpt-4o-2024-08-06
- tested in this repogpt-4o
meta-llama-3.1-405b-instruct
gemini-1.5-pro-002
- tested in this repomistral-large-2411
(usespixtral-12b-2409
for vision tasks)deepseek-chat
- configure a GitHub secret with the corresponding key from the LLM provider depending on the above configured LLM:
OPENAI_API_KEY
: OpenAI (gpt)ANTHROPIC_API_KEY
: Anthropic (claude)GH_MODELS_API_KEY
: GitHub Models MarketplaceGOOGLE_API_KEY
: Google AIMISTRAL_API_KEY
: MistralDEEPSEEK_API_KEY
: DeepSeekKISSKI_API_KEY
: KISSKIBLABLADOR_API_KEY
: BLABLADOR
- configure GitHub actions to run the workflow on issues and pull requests. Also give write-access to the Workflow using the
GITHUB_TOKEN
.
- Make sure to replace
When using it in your repository, you can also set a custom system message, for example for:
- General Data Science / Python Programming
- Bio-Image Analysis
- Giving advice on a specific repository / library
- Manuscript writing
Furthermore, to guide discussions, you may want to setup issue templates, e.g.
To trigger git-bob, you need to comment on an issue or pull request with the comment
trigger word (or aliases think about
, review
, respond
):
git-bob comment
If you want to ask git-bob for a review of a pull-request, you can use the review
trigger word. Also make sure mention explictly what you want to be reviewed.
git-bob review this PR. Check code quality and comments.
After some back-and-forth discussion, you can also use the solve
trigger word (or aliases implement
, apply
) make git-bob solve an issue and send a pull-request.
This trigger can also be used to modify code in pull requests.
git-bob solve
You can ask git-bob to implement a solution for testing, without sending a pull-request, using the try
trigger:
git-bob try
If you have multiple API-Key for different LLMs configured, you can specify the LLM in the command using the ask <LLM-Name> to
trigger command:
git-bob ask claude-3-5-sonnet-20241022 to solve this issue.
If the issue is complex and should be split into sub-issues, you can use the following command:
git-bob split
If you have two GitHub secrets TWINE_USERNAME
and TWINE_PASSWORD
configured, you can also use the following command to publish a new version of your library to PyPI:
git-bob deploy
All trigger words can be combined with please
and/or ,
, which will make no difference to calling git-bob without these words:
git-bob, please ask gemini-1.5-pro-002 to solve this issue.