use gh to ask the API of GitHub and et a list of issues with their labels and milestones.

get_issues(
  source = c("local", "online"),
  dataset_dir = getOption("IssueTrackeR.dataset.dir"),
  dataset_name = "open_issues.yaml",
  repo = getOption("IssueTrackeR.repo"),
  owner = getOption("IssueTrackeR.owner"),
  state = c("open", "closed", "all"),
  verbose = TRUE
)

get_labels(
  source = c("local", "online"),
  dataset_dir = getOption("IssueTrackeR.dataset.dir"),
  dataset_name = "list_labels.yaml",
  repo = getOption("IssueTrackeR.repo"),
  owner = getOption("IssueTrackeR.owner"),
  verbose = TRUE
)

get_milestones(
  source = c("local", "online"),
  dataset_dir = getOption("IssueTrackeR.dataset.dir"),
  dataset_name = "list_milestones.yaml",
  repo = getOption("IssueTrackeR.repo"),
  owner = getOption("IssueTrackeR.owner"),
  verbose = TRUE
)

Arguments

source

a character string that is either "online" if you want to fetch information from GitHub or "local" (by default) if you want to fetch information locally.

dataset_dir

A character string specifying the path which contains the datasets (only taken into account if source is set to "local"). Defaults to the package option IssueTrackeR.dataset.dir.

dataset_name

A character string specifying the name of the datasets which will be written (only taken into account if source is set to "local"). Defaults to "open_issues.yaml".

repo

A character string specifying the GitHub repository name (only taken into account if source is set to "online"). Defaults to the package option IssueTrackeR.repo.

owner

A character string specifying the GitHub owner (only taken into account if source is set to "online"). Defaults to the package option IssueTrackeR.owner.

state

a character string that is either "open" (by default) if you want to fetch only open issues from GitHub, "closed" if you want to fetch only closed issues from GitHub or "all" if you want to fetch all issues from GitHub (closed and open). Only taken into account if source is set to "online".

verbose

A logical value indicating whether to print additional information. Default is TRUE.

Value

The function get_issues returns an object of class IssuesTB. It is a list composed by object of class IssueTB. An object of class IssueTB represents an issue with simpler structure (with number, title, body and labels).

The function get_labels returns a list representing labels with simpler structure (with name, description, colour).

The function get_milestones returns a list representing milestones with simpler structure (with title, description and due_on).

Details

The functions of get type are useful to retrieve object related to issues from GitHub. So it's possible to retrieve issues, labels and milestones.

The defaults value for the argument dataset_name depends on the function:

  • defaults is "list_issues.yaml" for get_issues()

  • defaults is "list_milestones.yaml" for get_milestones()

  • defaults is "list_labels.yaml" for get_labels()

Examples


# \donttest{
# From online

issues <- get_issues(source = "online")
#> Reading issues...
#> Issue n° 1... Done!
#> Issue n° 2... Done!
#> Issue n° 3... Done!
#> Issue n° 4... Done!
#> 4 issues found.
print(issues)
#> There are 4 issues. 
#> 
#> Issue #162
#> rjdverse/rjdemetra
#> Labels:  
#> Milestone: 
#> Title: How to differentiate a WS in V2 and in V3? 
#> Text:
#> *related to rjdverse/rjd3workspace#53*
#> 
#> When I try to load a WS in v3 with **{RJDemetra}** (with `load_workspace()`), I get no error but I will get error when trying to access other elements.
#> 
#> How to know if a WS is in V3 with **{RJDemetra}**? Is it possible?  
#> 
#> 
#> Issue #156
#> rjdverse/rjdemetra
#> Labels:  
#> Milestone: 
#> Title: Possible to extract slidingspan main diagnostics ? 
#> Text:
#> I wondered if it was possible in rjdemetra to extract and save the main slidingspan diagnostics of % unstable observations (A% and MM%) that are calculated  and displayed (but not saved) in JDemetra+ ?

#> 

#> I guess this is not an “issue”, but rather a (Christmas) wish

#> 

#> Best regards 

#> Jørn Ivar Hamre

#> (Statistics Norway)

#>  
#> 
#> Comment:
#> Hi,

#> 

#> it is indeed a wish ! We'll see...

#> 

#> Merry Xmas 
#> 
#> 
#> Issue #142
#> rjdverse/rjdemetra
#> Labels:  
#> Milestone: 
#> Title: Printing userdef variables with their name 
#> Text:
#> When you display a model (obtained with the get_model function), the regression variables are not displayed with their real name but with a name given by jdemetra+:

#> 

#> ![image](https://github.com/jdemetra/rjdemetra/assets/112711017/2dc551f8-2c0a-4da0-bc12-d74285537247)

#> 

#> However, their variable name does exist in the object:

#> 

#> ![image](https://github.com/jdemetra/rjdemetra/assets/112711017/7645a392-6e06-4480-b832-282b83ec77da)

#> 

#> Is it possible to modify the display to add these more meaningful variable names instead of the current names? 
#> 
#> Comment:
#> They do not come from the same object and there are some differences in the Java output. 

#> In the first case the names comes from the results of the regarima model (<https://github.com/rjdverse/rjdemetra/blob/develop/R/regarima_rslts.R#L52>) and in the second case it comes from the specification (<https://github.com/rjdverse/rjdemetra/blob/develop/R/spec_rjd.R#L193-L220>). I think it would be complicated to do it in R since you would need to indentify your external regressors from all the regressions coefficients (outliers, easter, td, etc.), but maybe something can be done using the `context_dictionary`. Do you have a reproducible example? 
#> 
#> 
#> Issue #76
#> rjdverse/rjdemetra
#> Labels:  
#> Milestone: 
#> Title: Leap Year Effect 
#> Text:
#> I am running into problems including the leap year:

#> https://github.com/statistikat/persephone/issues/21

#> 

#> Am I missing some additional parameters that need to be set?  
#> 

labels <- get_labels(source = "online")
#> Reading labels... Done!
#> 8 labels found.
print(labels)
#>               name                               description  color      repo
#> 1              bug                   Something isn't working d73a4a rjdemetra
#> 2        duplicate This issue or pull request already exists cfd3d7 rjdemetra
#> 3      enhancement                    New feature or request a2eeef rjdemetra
#> 4 good first issue                        Good for newcomers 7057ff rjdemetra
#> 5      help wanted                 Extra attention is needed 008672 rjdemetra
#> 6          invalid                   This doesn't seem right e4e669 rjdemetra
#> 7         question          Further information is requested d876e3 rjdemetra
#> 8          wontfix                This will not be worked on ffffff rjdemetra
#>      owner
#> 1 rjdverse
#> 2 rjdverse
#> 3 rjdverse
#> 4 rjdverse
#> 5 rjdverse
#> 6 rjdverse
#> 7 rjdverse
#> 8 rjdverse

milestones <- get_milestones(source = "online")
#> Reading milestones... 
#> Done! 0 milestones found.
print(milestones)
#> data frame with 0 columns and 0 rows


# From local

# First update the local database
update_database(verbose = TRUE)
#> Reading issues...
#> Issue n° 1... Done!
#> Issue n° 2... Done!
#> Issue n° 3... Done!
#> Issue n° 4... Done!
#> 4 issues found.
#> The datasets will be exported to /tmp/RtmpFk7oC2/data/open_issues.yaml.
#> Reading issues...
#> Issue n° 1... Done!
#> Issue n° 2... Done!
#> Issue n° 3... Done!
#> Issue n° 4... Done!
#> Issue n° 5... Done!
#> Issue n° 6... Done!
#> Issue n° 7... Done!
#> Issue n° 8... Done!
#> Issue n° 9... Done!
#> Issue n° 10... Done!
#> Issue n° 11... Done!
#> Issue n° 12... Done!
#> Issue n° 13... Done!
#> Issue n° 14... Done!
#> Issue n° 15... Done!
#> Issue n° 16... Done!
#> Issue n° 17... Done!
#> Issue n° 18... Done!
#> Issue n° 19... Done!
#> Issue n° 20... Done!
#> Issue n° 21... Done!
#> Issue n° 22... Done!
#> Issue n° 23... Done!
#> Issue n° 24... Done!
#> Issue n° 25... Done!
#> Issue n° 26... Done!
#> Issue n° 27... Done!
#> Issue n° 28... Done!
#> Issue n° 29... Done!
#> Issue n° 30... Done!
#> Issue n° 31... Done!
#> Issue n° 32... Done!
#> Issue n° 33... Done!
#> Issue n° 34... Done!
#> Issue n° 35... Done!
#> Issue n° 36... Done!
#> Issue n° 37... Done!
#> Issue n° 38... Done!
#> Issue n° 39... Done!
#> Issue n° 40... Done!
#> Issue n° 41... Done!
#> Issue n° 42... Done!
#> Issue n° 43... Done!
#> Issue n° 44... Done!
#> Issue n° 45... Done!
#> Issue n° 46... Done!
#> Issue n° 47... Done!
#> Issue n° 48... Done!
#> Issue n° 49... Done!
#> Issue n° 50... Done!
#> Issue n° 51... Done!
#> Issue n° 52... Done!
#> Issue n° 53... Done!
#> Issue n° 54... Done!
#> Issue n° 55... Done!
#> Issue n° 56... Done!
#> Issue n° 57... Done!
#> Issue n° 58... Done!
#> Issue n° 59... Done!
#> Issue n° 60... Done!
#> Issue n° 61... Done!
#> Issue n° 62... Done!
#> Issue n° 63... Done!
#> Issue n° 64... Done!
#> Issue n° 65... Done!
#> Issue n° 66... Done!
#> Issue n° 67... Done!
#> Issue n° 68... Done!
#> Issue n° 69... Done!
#> Issue n° 70... Done!
#> Issue n° 71... Done!
#> Issue n° 72... Done!
#> Issue n° 73... Done!
#> Issue n° 74... Done!
#> Issue n° 75... Done!
#> Issue n° 76... Done!
#> Issue n° 77... Done!
#> Issue n° 78... Done!
#> Issue n° 79... Done!
#> Issue n° 80... Done!
#> Issue n° 81... Done!
#> Issue n° 82... Done!
#> Issue n° 83... Done!
#> Issue n° 84... Done!
#> Issue n° 85... Done!
#> Issue n° 86... Done!
#> Issue n° 87... Done!
#> Issue n° 88... Done!
#> Issue n° 89... Done!
#> Issue n° 90... Done!
#> Issue n° 91... Done!
#> Issue n° 92... Done!
#> Issue n° 93... Done!
#> Issue n° 94... Done!
#> Issue n° 95... Done!
#> Issue n° 96... Done!
#> Issue n° 97... Done!
#> Issue n° 98... Done!
#> Issue n° 99... Done!
#> Issue n° 100... Done!
#> Issue n° 101... Done!
#> Issue n° 102... Done!
#> Issue n° 103... Done!
#> Issue n° 104... Done!
#> Issue n° 105... Done!
#> Issue n° 106... Done!
#> Issue n° 107... Done!
#> Issue n° 108... Done!
#> Issue n° 109... Done!
#> Issue n° 110... Done!
#> Issue n° 111... Done!
#> Issue n° 112... Done!
#> Issue n° 113... Done!
#> Issue n° 114... Done!
#> Issue n° 115... Done!
#> Issue n° 116... Done!
#> Issue n° 117... Done!
#> Issue n° 118... Done!
#> Issue n° 119... Done!
#> Issue n° 120... Done!
#> Issue n° 121... Done!
#> Issue n° 122... Done!
#> Issue n° 123... Done!
#> Issue n° 124... Done!
#> Issue n° 125... Done!
#> Issue n° 126... Done!
#> Issue n° 127... Done!
#> Issue n° 128... Done!
#> Issue n° 129... Done!
#> Issue n° 130... Done!
#> Issue n° 131... Done!
#> Issue n° 132... Done!
#> Issue n° 133... Done!
#> Issue n° 134... Done!
#> Issue n° 135... Done!
#> Issue n° 136... Done!
#> Issue n° 137... Done!
#> Issue n° 138... Done!
#> Issue n° 139... Done!
#> Issue n° 140... Done!
#> Issue n° 141... Done!
#> Issue n° 142... Done!
#> Issue n° 143... Done!
#> Issue n° 144... Done!
#> Issue n° 145... Done!
#> Issue n° 146... Done!
#> Issue n° 147... Done!
#> Issue n° 148... Done!
#> Issue n° 149... Done!
#> Issue n° 150... Done!
#> Issue n° 151... Done!
#> Issue n° 152... Done!
#> Issue n° 153... Done!
#> Issue n° 154... Done!
#> Issue n° 155... Done!
#> Issue n° 156... Done!
#> Issue n° 157... Done!
#> Issue n° 158... Done!
#> Issue n° 159... Done!
#> 159 issues found.
#> The datasets will be exported to /tmp/RtmpFk7oC2/data/closed_issues.yaml.
#> Reading labels... Done!
#> 8 labels found.
#> The datasets will be exported to /tmp/RtmpFk7oC2/data/list_labels.yaml.
#> Reading milestones... 
#> Done! 0 milestones found.
#> The datasets will be exported to /tmp/RtmpFk7oC2/data/list_milestones.yaml.

issues <- get_issues(source = "local",
                     dataset_name = "open_issues.yaml",
                     state = "open")
#> The issues will be read from /tmp/RtmpFk7oC2/data/open_issues.yaml.
labels <- get_labels(source = "local")
#> The labels will be read from /tmp/RtmpFk7oC2/data/list_labels.yaml.
milestones <- get_milestones(source = "local")
#> The milestones will be read from /tmp/RtmpFk7oC2/data/list_milestones.yaml.
# }