Table of Contents |
---|
Problem
- Goal
- Part I - Email Bot
- Part II - Label Bot
- Part III - Determine labels automatically
- Approach
- Part I - Email Bot
- Part II - Label Bot
- Part III - Determine labels automatically
- Technical Challenges
- References
...
- Part I - Email Bot
Create weekly email todev@mxnet.incubator.apache.org:
(Instead of sending emails directly to dev@, another option is to create another email alia and ask people who are interested in weekly reports to join. ) - Count of newly opened issues and closed issues in last 7 days
- Average and worst response time for all new issues
- List of non-responded new issues with links
- List of non-responded issues outside SLA
- Part II - Label Bot
Create a bot to add labels for incubator-mxnet issues - Create weekly email to internal team members:
- Count of newly opened issues and closed issues in last 7 days
- List of non-labelled issues
- List of non-responded issues
- Pie chart with top 10 labels for all issues
- Pie chart with top 10 labels for newly opened issues in last 7 days. (Add "unlabelled" as a segment)
- A line/bar graph with week over week statistics of the number of issues closed and the number of issues opened
- Generate a spreadsheet with detailed information of non-labelled issues. Every team member should have access to view and fill in labels to it.
- Read filled-in labels and add labels to corresponding issue.
- Part III - Determine labels automatically from GitHub issues:
- Identify the corresponding programming language to it (ex: Python, C/C++, Scala)
- Multi-label classification
3. Approach
Part I - Email Bot
An amazon cloudwatch event will trigger lambda function in a certain frequency(ex: 9am every Monday). Once the lambda function is executed, the issue report will be generated and sent to the mailing list. Figure1 shows the bot design and Figure2 shows demo email content.
Figure1 Email Bot Design
Figure 2 Demo Email Content
Part II - Label Bot
Amazon cloudwatch event (a) will trigger lambda function(a) 9am every Monday. At that time, lambda function(a) will generate an email and write non-labelled issues' data into a Google sheet. Every team member has access to view and fill in labels to it. 12 hours later, another lambda function (lambda function b) will be executed and add labels to corresponding issues. This bot should have restricted permissions to avoid unexpected operations. Figure3 shows the bot design, Figure 4 shows the demo email content and Figure 5 shows the demo Google sheet content.
Figure 3 Label Bot Design
Sample Report
Figure 4 Demo Email Content (updating)
Figure 5 Demo Google Sheet Content
...