sommerfeld-io / .github

Special repository with fallback content for all of repos that don't have an actual .github directory
0 stars 0 forks source link

Think about AI support for the development process #14

Open sebastian-sommerfeld-io opened 3 months ago

sebastian-sommerfeld-io commented 3 months ago

Relates to

ChatGPT infos

There are several AI tools and techniques you can use to enhance your software development:

  1. Code Review and Quality Analysis: Tools like Codacy or DeepSource use AI to analyze your code for potential issues, ensuring higher code quality and consistency.

  2. Automated Testing: Tools like Testim or Mabl leverage AI to create and run automated tests, making it easier to catch bugs early.

  3. Code Generation: Beyond GitHub Copilot, you can explore tools like TabNine or Kite, which offer AI-driven code completion and suggestions across multiple languages.

  4. Natural Language Processing: You can integrate NLP models (like those provided by Hugging Face) to build features such as chatbots, text analysis, or sentiment analysis within your applications.

  5. AI-powered Debugging: Tools like Sentry can help you identify, diagnose, and fix errors in your code by analyzing patterns and common issues.

  6. Project Management: AI tools like ZenHub or Clubhouse can help in managing your projects more efficiently by predicting timelines, prioritizing tasks, and providing insights based on your project data.

Exploring these tools can help you streamline various aspects of your software development process. Which of these sounds interesting to you?

:zap: The issue with automated Code Reviews (due to available services)

Using ChatGPT with GitHub Actions like code-review-gpt or using the OpenAI API directly consumes credits for ChatGPT. I already pay for GitHub Copilot. I do not want to pay for a second AI solution. Plus (I assume) it is only a matter of time until Copilot is deeply integrated into GitHub and allows working with PRs and Issues and everything.

Additional non-AI logic

:warning: for Backlog refinement, not Code Reviews

:thought_balloon: It might be better to not just prioritize issues based on score but to use an AI solution right from the start where the score is combined with some AI recommendations.

sebastian-sommerfeld-io commented 1 month ago

GitHub Copilot Chat

You can store business value and story points for each user story by using custom fields in GitHub Issues. Here’s how you can do it:

Custom Labels: Use labels to represent business value and story points. For example, you can create labels like business-value: high, story-points: 5.

Issue Templates: Create issue templates that include fields for business value and story points.

Querying: Use GitHub’s search and filtering capabilities to filter issues based on these labels.

For instance, to filter issues with high business value, you can search for label:"business-value: high".

Would you like more detailed steps or help with setting up specific filters?


When you use issue templates in GitHub, the inputs are stored as a single text block in the resulting issue. However, you can still make the fields queryable by using labels or structured text within the issue.

Approaches:

  1. Labels:

    • Use labels to tag issues with specific story points and business values.
    • Example: label:"story-points: 5" and label:"business-value: high".
  2. Structured Text:

    • Include structured text in the issue body and use search queries to filter.
    • Example: Use a consistent format like Story Points: 5 and Business Value: High.

To filter issues based on these fields, you can use GitHub's search functionality with appropriate queries. For example:

Would you like to see an example of an issue template structure for this?


Example Issue Template

---
name: User Story
about: Create a new user story
title: "[User Story] "
labels: user-story
assignees: ''

---

**Story Points:** 

**Business Value:** 

**Description**

Provide a detailed description of the user story.

Querying Example

Using labels to tag issues can make it easier to filter and manage them.


Label Naming

Both are correct, but "needs triage" is more commonly recognized in a broader context.

Marking Story Points and Business Value

Recommendation

Would you like specific examples or further assistance with setting up labels or issue templates?

sebastian-sommerfeld-io commented 1 month ago

needs-triage vs needs-refinement

Yes, that distinction makes sense:

Using both labels can help clarify the stages of issue processing in your workflow.

sebastian-sommerfeld-io commented 1 month ago

Google Gemini Free Tier

https://ai.google.dev/docs

Request

curl \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' \
  -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=<API_TOKEN>'

Response

{
  "error": {
    "code": 400,
    "message": "Gemini API free tier is not available in your country. Please enable billing on your project in Google AI Studio.",
    "status": "FAILED_PRECONDITION"
  }
}