Compute a summary of an issue or a list of issues

# S3 method for class 'IssueTB'
summary(object, ...)

# S3 method for class 'IssuesTB'
summary(object, ...)

# S3 method for class 'LabelsTB'
summary(object, ...)

Arguments

object

a IssueTB or IssuesTB object.

...

Unused argument

Value

invisibly (with invisible()) NULL.

Details

This function compute the summary of an issue (IssueTB object) with adding some information (number of comments, ...). For a list of issues (IssuesTB object), it just summarise the information with statistics by modalities.

Examples

all_issues <- get_issues(
    source = "local",
    dataset_dir = system.file("data_issues", package = "IssueTrackeR"),
    dataset_name = "open_issues.yaml"
)
#> Looking into open_issues.yaml ...
#> The issues will be read from /home/runner/work/_temp/Library/IssueTrackeR/data_issues/open_issues.yaml.

# Summarise one issue
summary(all_issues[1, ])
#> 
#> ── Issue jdemetra/jdplus-main#763 ──
#> 
#> State: 🟢 Open
#> Nb comments: 0
#> 
#> Title: Error loading V2 workspace with fixed week calendar day
#> Text:
#> If I create a workspace in V2 with a National Calendar with a Fixed Week it cannot be imported with the V3. Error loading the calendar with the following error:
#> ```
#> java.lang.NullPointerException: Cannot invoke "String.toUpperCase(java.util.Locale)" because "day" is null
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlFixedWeekDay.ofDay(XmlFixedWeekDay.java:64)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlFixedWeekDay.create(XmlFixedWeekDay.java:46)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlFixedWeekDay.create(XmlFixedWeekDay.java:32)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlSpecialDayEvent.create(XmlSpecialDayEvent.java:53)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlNationalCalendar.addTo(XmlNationalCalendar.java:120)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlCalendars.copyTo(XmlCalendars.java:67)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlCalendars.create(XmlCalendars.java:82)
#> 	at internal.toolkit.base.workspace.file.xml.util.XmlCalendars.create(XmlCalendars.java:33)
#> 	at jdplus.toolkit.base.workspace.file.util.XmlConverterSupport$ValueAdapter.toValue(XmlConverterSupport.java:104)
#> 	at internal.io.AndThenFileParser.parsePath(AndThenFileParser.java:29)
#> 	at nbbrd.io.xml.Xml$AdaptedParser.parsePath(Xml.java:102)
#> 	at jdplus.toolkit.base.workspace.file.util.XmlConverterSupport.readItem(XmlConverterSupport.java:77)
#> 	at jdplus.toolkit.base.workspace.file.util.XmlConverterSupport.read(XmlConverterSupport.java:63)
#> 	at internal.toolkit.base.workspace.file.util.QuickHandler.read(QuickHandler.java:32)
#> 	at internal.toolkit.base.workspace.file.GenericHandlers$UtilCal.read(GenericHandlers.java:38)
#> 	at internal.toolkit.base.workspace.file.SafeHandler.loadValue(SafeHandler.java:61)
#> Caused: java.io.IOException: Unexpected exception while loading Calendars
#> 	at internal.toolkit.base.workspace.file.SafeHandler.loadValue(SafeHandler.java:63)
#> 	at internal.toolkit.base.workspace.file.FileWorkspaceImpl.load(FileWorkspaceImpl.java:133)
#> 	at jdplus.toolkit.desktop.plugin.workspace.FileRepository.loadCalendars(FileRepository.java:224)
#> [catch] at jdplus.toolkit.desktop.plugin.workspace.FileRepository.load(FileRepository.java:185)
#> 	at jdplus.toolkit.desktop.plugin.workspace.FileRepository.open(FileRepository.java:162)
#> 	at jdplus.toolkit.desktop.plugin.workspace.WorkspaceFactory.openWorkspace(WorkspaceFactory.java:269)
#> 	at jdplus.toolkit.desktop.plugin.workspace.WorkspaceFactory.openWorkspace(WorkspaceFactory.java:264)
#> 	at jdplus.toolkit.desktop.plugin.workspace.actions.OpenWorkspace.actionPerformed(OpenWorkspace.java:31)
#> 	at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:175)
#> 	at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:70)
#> 	at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:91)
#> 	at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:74)
#> 	at org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:178)
#> 	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
#> 	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
#> 	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
#> 	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
#> 	at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
#> 	at java.desktop/com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129)
#> 	at java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:692)
#> 	at java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:651)
#> 	at java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:378)
#> 	at java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:367)
#> 	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
#> 	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
#> 	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
#> 	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
#> 	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
#> 	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
#> 	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
#> 	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
#> 	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
#> 	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
#> 	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
#> 	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
#> 	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
#> 	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
#> 	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
#> 	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
#> 	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
#> 	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
#> ```
#> 

# Summarise several issues
summary(all_issues[1:10, ])
#> There are 10 issues. 
#> - jdemetra/jdplus-main#763 🟢 Open 
#> - jdemetra/jdplus-main#761 🟢 Open 
#> - jdemetra/jdplus-main#758 🟢 Open 
#> - jdemetra/jdplus-main#752 🟢 Open 
#> - jdemetra/jdplus-main#751 🟢 Open 
#> - jdemetra/jdplus-main#734 🟢 Open 
#> - jdemetra/jdplus-main#733 🟢 Open 
#> - jdemetra/jdplus-main#711 🟢 Open 
#> - jdemetra/jdplus-main#698 🟢 Open 
#> - jdemetra/jdplus-main#695 🟢 Open