git-bob uses AI to solve Github-issues and review pull-requests. It runs inside the Github CI, no need to install anything on your computer.
Under the hood it uses Anthropic's Claude or OpenAI's chatGPT to understand the text and pygithub to interact with the issues and pull-requests.
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 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
pip install -e .
with a specific git-bob version such as pip install git-bob==0.2.2
.GIT_BOB_LLM_NAME
environment variable. These were tested:claude-3-5-sonnet-20240620
gpt-4o-2024-08-06
(recommended if you work with large files, < 16k tokens)github_models:gpt-4o
OPENAI_API_KEY
or ANTHROPIC_API_KEY
or GH_MODELS_API_KEY
with the corresponding key from the LLM provider depending on the above configured LLM. You can get these keys here:
GITHUB_TOKEN
.To trigger git-bob, you need to comment on an issue or pull-request with the following command:
git-bob comment
If the issue is complex and should be split into sub-issues, you can use the following command:
git-bob split
You can also use the following command to trigger git-bob solving an issue. It will then try to solve the issue and send a pull-request.
git-bob solve
Here's the recommended workflow for using git-bob:
git-bob comment
, or git-bob think about this
(an alias for comment
) to trigger git-bob making a plan.git-bob solve
or git-bob implement this
(an alias for solve
) to trigger git-bob.git-bob
can fix typos (issue, pull-request):
git-bob
can improve code documentation (issue, pull-request):
git-bob
can review pull-requests and provide feedback (pull-request):
To split a main issue into sub-issues, ask git-bob split this issue
.
git-bob
can also be exploited to answer questions (issue).
You can also install git-bob locally and run it from the terminal.
In this case, create a Github token and store it in an environment variable named GITHUB_API_KEY
.
Also create an environment variable GIT_BOB_LLM_NAME
with the name of the LLM you want to use, e.g. "gpt-4o-2024-05-13" or "claude-3-5-sonnet-20240620" or "github_models:gpt-4o".
Then you can install git-bob using pip:
pip install git-bob
You can then use git-bob from the terminal on repositories you have read/write access to.
git-bob <action> <organization>/<repository> <issue-number>
Available actions:
review-pull-request
comment-on-issue
solve-issue
split-issue
git-bob
is a research project and has limitations. It serves as basis for discussion and further development. Once LLMs become better, git-bob
will become better as well.
At the moment, these limitations can be observed:
git-bob
was tested for Python projects only (yet).gpt-4o-2024-08-06
).git-bob
is incompatible with locally running open-source/-weight LLMs.
This might make sense when being executed locally only. In the Github-CI this might be impossible.claude-3-5-sonnet-20240620
and gpt-4o-2024-08-06
models produce useful results. The model gemini-1.5-flash-001
is technically supported too, but its results were not very useful.There are similar projects out there
Feedback and contributions are welcome! Just open an issue and let's discuss before you send a pull-request. A human will respond and comment on your ideas!
We acknowledge the financial support by the Federal Ministry of Education and Research of Germany and by Sächsische Staatsministerium für Wissenschaft, Kultur und Tourismus in the programme Center of Excellence for AI-research „Center for Scalable Data Analytics and Artificial Intelligence Dresden/Leipzig", project identification number: ScaDS.AI