Manage a 'GitHub' problem using R: wrangle issues, labels and milestones. It includes functions for storing, prioritizing (sorting), displaying, adding, deleting, and selecting (filtering) issues based on qualitative and quantitative information. Issues (labels and milestones) are written in lists and categorized into the S3 class to be easily manipulated as datasets in R.
{IssueTrackeR} is an R package designed to retrieve and manage GitHub issues directly within R. This package allows users to efficiently track and handle issues from their GitHub repositories.
This package relies a lot on the package {gh} to use the GitHub API and retrieve data from GitHub.
You can install {IssueTrackeR} from CRAN:
install.packages("IssueTrackeR")
You can install the development version of {IssueTrackeR} from GitHub:
# install.packages("pak")
pak::pak("TanguyBarthelemy/IssueTrackeR")
library("IssueTrackeR")
#> Currently, the default options are:
#> - location for datasets is /tmp/RtmpAaWI8a/data
#> - owner: rjdverse
#> - repo: rjdemetra
#>
#> Attaching package: 'IssueTrackeR'
#> The following objects are masked from 'package:base':
#>
#> append, sample
To get information from a repository, you can call the functions
get_issues, get_labels and get_milestones
# From online
my_issues <- get_issues(
source = "online",
owner = "jdemetra",
repo = "jdplus-main",
verbose = FALSE
)
my_labels <- get_labels(
source = "online",
owner = "jdemetra",
repo = "jdplus-main"
)
#> Repo: jdplus-main owner: jdemetra
#> Reading labels... Done!
#> 12 labels found.
my_milestones <- get_milestones(
source = "online",
owner = "jdemetra",
repo = "jdplus-main"
)
#> Repo: jdplus-main owner: jdemetra
#> Reading milestones...
#> - backlog ... Done!
#> - 3.8.0 ... Done!
#> Done! 2 milestones found.
You can also write the datasets in local with write_to_dataset():
write_to_dataset(
x = my_issues,
dataset_dir = tempdir()
)
#> The datasets will be exported to /tmp/RtmpAaWI8a/list_issues.yaml.
write_to_dataset(
x = my_labels,
dataset_dir = tempdir()
)
#> The datasets will be exported to /tmp/RtmpAaWI8a/list_labels.yaml.
write_to_dataset(
x = my_milestones,
dataset_dir = tempdir()
)
#> The datasets will be exported to /tmp/RtmpAaWI8a/list_milestones.yaml.
It is also possible to set option for a R session:
# The directory containing the yaml files in local
options(IssueTrackeR.dataset.dir = tempdir())
# The default GitHub owner
options(IssueTrackeR.owner = "jdemetra")
# the default GitHub repository
options(IssueTrackeR.repo = "jdplus-main")
Then it’s possible to read Issues from local yaml files:
# From local
my_issues <- get_issues(source = "local")
my_labels <- get_labels(source = "local")
my_milestones <- get_milestones(source = "local")
You can update your full database of issues, labels and milestones with
update_database():
# From online
update_database(verbose = FALSE)
Contributions are welcome! Please feel free to submit a pull request or report any issues.
This project is licensed under the MIT License. See the LICENSE file for details.