Large projects are often difficult to manage, with lots of issues and PRs to review. Some issues are often user specific, which don't require the attention of project managers and can be resolved by doing some online research or referring some websites/blogs. The bot takes this responsibility from the project managers.
The bot shares links of various websites, when triggered with a certain query with the required keywords. It also requires an integer, the number of results to return.
An example query like !help Cloud Native Hackathon 5
will trigger the bot. The bot checks if the issue comment starts with !help
and ends with an int
, the number of results.
After installation, the bot configures webhooks on the repositories selected by the user. When the user comments a certain query, like the example above, it will trigger the webhook, which sends the request to a NGROK endpoint (for testing purposes), where a flask server is running. The request is processed and formatted. Google API is used to fetch the results, specifing the query (here Cloud Native Hackathon
), along with an integer (5
here). The links are sent in a POST request to the GitHub API, authenticated via the bot, which the shares the links in a issue comment.
Google API can process and send any number of results. So, if the user does not specify the number of results to return, then the API will keep on scraping the results, and will not stop. So we have specified a strict format to use the bot, with max number of results as 9.
The project managers had to manually search the web to find relevant websites which might help in fixing the issue. The bot will save quite some time in doing this for them.
We learned how the use the GitHub API, how the webhooks work, and learned how to manage servers.
We are yet to add site specific search in Kronos. This will help to scrap several web pages from the same website. The limit on the max number of results will be changed in the near future, with an optimised solution. We are also planning to implement Open AI into the bot, which will be useful for sharing frequently used code snippets in issues.