Find helpful tutorials or share inspiring use cases on AI technology for higher education.

Shared content may not reflect the policies of Tilburg University on the use of AI. 

Introducing the GitHub Issue Helper GPT

Communication between team members can be challenging for newcomers and even seasoned users when using GitHub. To address this gap, we introduce the “GPT: GitHub Issue Helper,” a GPT-based assistant specifically designed to assist users in creating clear, well-structured GitHub Issues using a specific template developed by TilburgScienceHub.

Styled Link Embed

What are Git & GitHub?

What is Git?

Git is an open-source version control system that allows you to keep track of your source files, and the changes you make to them. Using Git you can roll back to any previous version of a file, and easily collaborate with team members. Git runs on your computer and allows you to configure so-called repositories that track files and directories. Use the topic on TilburgScienceHub.com to Set up Git and Github!

What is GitHub?

You can optionally use Git in combination with an online hosting service such as GitHub, which allows you to back up your code, synchronize your work across multiple computers, or collaborate with others on joint projects. Several alternatives to GitHub are available, and maybe your institution even offers its own “Git” services.

On top of the basic features of Git (like versioning), GitHub offers a range of tools that allow you to collaborate more efficiently. A few examples are:

  • Issues are like to-do lists, flavored with a discussion board.
  • Projects are akin to a Scrum board. It facilitates project management, allowing for task allocation and progress tracking.

GitHub Issues

GitHub Issues can be used to clearly define tasks that you or your team members will eventually work on. In combination with Kanban-style GitHub Project boards, they become a compelling way of coordinating teamwork. They also help you keep track of what’s happening on projects and provide a durable, replicable record of the work for future reference.

Getting Started with Issues

  • Creator and Assignees: Every issue has a creator (the person who created it) and should have one or more assignees (the person(s) who will execute it). The creator chooses the assignee when the issue is created.
  • Scope: An issue is a discrete, well-defined unit of work on a project. Usually, this means that an issue should not represent more than a couple of weeks’ worth of work and should not remain open for more than a month or two.
  • Adaptability: Issues are adaptable. For example, an issue that started with a manageable scope may grow as the project expands or new questions arise. At this point, it can be split into separate issues, and the initial issue closed with an interim summary.
  • Prioritization: Issues are prioritized using the Project Board on GitHub. You can work on open issues outside the current sprint if you have time left. However, these rules are just guidelines. Using your time productively takes precedence over the priority ordering of tasks.

All such rules are just a guideline. Using your time productively takes precedence over the priority ordering of tasks.

Common Pitfalls: One common problem with issues is that they are formulated too broadly. They can become open-ended and mix multiple work threads. Phrases like “Write the follow-up paper” or “Do the analysis” are typically unsuitable unless the project is tiny.

GPT: GitHub Issue Helper

e have created a GPT Assistant to help GitHub users create issues. While most GitHub users may know the GitHub issue template by heart (see below), filling it in actually involves quite a bit of work. Communication must be clear for a team to coordinate well. Therefore, we have chosen an iterative prompt GPT that guides you through a series of prompts to elicit the necessary information to fill in this format according to best practices.

GitHub Issue template

# Goal of this issue

Clearly define the goal.

# Resources

Say which resources to use (e.g., where to find relevant code, papers, etc.).

# Deliverables

Clearly define deliverables. Mention deadlines if necessary.

How the Assistant Works

When asked to create a GitHub issue, the assistant:

  • Requests Relevant File Links: It first asks for links to the relevant files in the repository that need to be modified or referenced.
  • Iterates with Follow-up Questions: After receiving the links, the assistant asks if there are any additional resources or details to mention, such as documentation, related issues, or other files.
  • Formats the Issue: With the gathered information, the assistant formats the issue using GitHub markdown syntax, including only three sections:
    • Goal of this issue: A concise description of what needs to be accomplished.
    • Resources: A list of the specified file links and any additional resources provided.
    • Deliverables: A checklist of the expected outcomes, formatted using GitHub’s checkbox syntax.
Example Interaction

Initial Prompt:

“I need to fix a bug in the login form of my project.”


GPT Response:

“Could you please provide the specific file links from your repository that are related to this bug in the login form? These would be files where the bug is likely occurring or where the fixes need to be made.”


User’s Response:

“Here are the relevant files:
LoginForm.js
AuthService.js


GPT Follow-up:

“Great! Are there any additional resources, such as documentation, relevant issues, or other files, that should be mentioned in the issue?”


User’s Response:

“Yes, also include the README.md as a resource for the developer to review.”


Final Issue Draft:

Markdown
## Goal of this issue<
Fix the bug in the login form where incorrect credentials are not being properly handled, resulting in an unhandled promise error.

## Resources
- [LoginForm.js](https://github.com/user/repo/blob/main/src/components/LoginForm.js)
- [AuthService.js](https://github.com/user/repo/blob/main/src/services/AuthService.js) 
- [README.md](https://github.com/user/repo/blob/main/README.md)

## Deliverables
- [ ] Investigate the bug related to incorrect credentials in the login form.
- [ ] Fix the unhandled promise issue in `LoginForm.js`.
- [ ] Update `AuthService.js` to ensure proper error handling.
- [ ] Review the `README.md` and update any relevant documentation.

Additional Capabilities of the GPT Assistant

Further capabilities of the GPT assistant include:

  • Writing Clear and Informative Commit Messages: The assistant can help in composing concise and meaningful commit messages that accurately reflect the changes made.
  • Maintaining Consistent Terminology: It can be used to explain terminology and keep terminology consistent across issues and commits, ensuring that team members are on the same page.
  • Reviewing and Suggesting Improvements for Existing Issues: The assistant can review current issues and suggest improvements.

Prefer to keep control in your own hands? Check TilburgScienceHub.com for an extensive series of articles about Git and GitHub.

Conclusion

By incorporating the GPT: GitHub Issue Helper into the project management workflow, teams can significantly improve communication, reduce misunderstandings, and increase overall efficiency. The assistant not only aids in writing better issues but also serves as a learning tool for users to develop best practices in collaborative project management.