Skip to content

FEATURE REQUEST: Implement Contributor Recommendation Tool #96

@smokeyScraper

Description

@smokeyScraper

Is your feature request related to a problem?

  • Yes, it is related to a problem

Describe the feature you'd like

🌟 Feature Description

This feature introduces a new tool called recommend_contributors. This tool will be part of the DevRel Agent's capabilities, specifically within the GitHubToolkitNode. The primary function of this tool is to analyze a given GitHub issue or a general query and recommend the most suitable contributors from the community to help with the task.

A maintainer can trigger this tool in two ways:

  1. Specific Issue/PR: By mentioning the DevRel agent in a comment on a specific issue or pull request.

    • Example: “@devr-ai, who are the best people to assign/review this issue/PR about our Stripe integration #{pr_number}?”
  2. General Query: By asking for help on a specific topic in a community channel (e.g., Discord or Slack).

    • Example: “@devr-ai, I need some help with RabbitMQ, can you please suggest some people?”

🔍 Problem Statement

In large open-source communities, it can be challenging and time-consuming for maintainers and community members to identify the right contributors to help with specific tasks, whether it's assigning an issue or answering a question. This process often relies on personal knowledge of the community, which is not always scalable or accurate. This can lead to delays in addressing issues and getting help, and it can also result in less experienced contributors being overlooked.

🎯 Expected Outcome

The recommend_contributors tool will automate and improve the process of finding the right people for the job by providing data-driven recommendations. The expected outcome is a system that can:

  • Receive a request with either an issue ID or a general query.
  • Analyze the content of the issue or the query to understand its context and technical requirements.
  • Query a database of contributor profiles to find individuals with the most relevant skills and experience.
  • Return a ranked list of recommended contributors with a brief justification for each recommendation.
  • Post the recommendations as a comment on the relevant GitHub issue or as a message in the community channel.

📷 Screenshots and Design Ideas

The core of this feature is a multi-step process that leverages a hybrid search approach to find the best matches. The proposed workflow will adapt based on the type of input received:

Workflow

  1. Hybrid Search:

    • BM25 Search: To find contributors who have worked on issues or PRs containing the specified keywords.
    • Semantic Search: A vector embedding will be generated from the summarized content to find contributors with semantically similar past contributions.
  2. Ranking and Output: The results from both search methods will be combined and ranked to produce a final list of recommended contributors. The output will be a structured list that includes the contributor's username and the reason for the recommendation.

    {
      "status": "success",
      "recommendations": [
        { "user": "contributor-A", "reason": "Authored 3 PRs related to the payment API" },
        { "user": "contributor-B", "reason": "Frequently comments on billing-related issues" }
      ]
    }
  3. Final Action: The DevRel Agent will format this list into a user-friendly message and post it in the appropriate context (e.g., a GitHub comment or a Discord message).

Record

  • I agree to follow this project's Code of Conduct
  • I want to work on implementing this feature

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions