Access Gitea from R"

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

library(gitear)
library(dplyr)
library(jsonlite)

r <- readRDS(system.file("helper_data/response_example.RDS",
                              package = "gitear"))

content_an_organization <- fromJSON(system.file("helper_data/get_an_org.json",
                                                package = "gitear"))

content_issues <- fromJSON(system.file("helper_data/get_issues.json",
                                      package = "gitear"))

content_list_repos_org <- fromJSON(system.file("helper_data/get_repos_org.json",
                                               package = "gitear"))

content_list_users <- fromJSON(system.file("helper_data/get_users.json",
                                           package = "gitear"))

content_commits <- fromJSON(system.file("helper_data/get_commits.json",
                                        package = "gitear"))

Gitea is a community managed, lightweight code hosting solution were projects and their respective git repositories can be managed https://gitea.io. This package gives an interface to the 'Gitea' API to access and manage repositories, issues and organizations directly in R.

Starting with gitear

If you want to start using the functions from gitear you should first go to your gitea service and create an API KEY. You will find this under your avatar, configuration, application and then generate a new token.

Be aware that you should save this token somewhere because its shown just once.

This is going to be your API TOKEN. Then you can use a function like this:

mockery::stub(where = get_issues,
              what = "GET",
              how = r)

mockery::stub(where = get_issues,
              what = "fromJSON",
              how = content_issues)
# Credentials

api_token <- "gfdsgfd8ba18a866bsdfgsdfgs3a2dc9303453b0c92dcfb19"
url_ixpantia <- "https://prueba.com"

# Example function use:

issues <- get_issues(base_url = url_ixpantia,
                       api_key = api_token,
                       owner = "empresa",
                       repo = "repo_prueba")

glimpse(issues)

For the examples below, we are going to use credentials stored in a .Renviron file, which we are going to call from this variables:

example_key <- Sys.getenv("example_key")
example_url <- Sys.getenv("example_url")

Get information about your organization

We can also obtain information from some organization defined in our gitea service:

mockery::stub(where = get_an_organization,
              what = "GET",
              how = r)

mockery::stub(where = get_an_organization,
              what = "fromJSON",
              how = content_an_organization)
# Example function use

organizations <- get_an_organization(base_url = example_url,
                                     api_key = example_key,
                                     org = "empresa") 

glimpse(organizations)

Get repositories information from one organization

And we can also see which repositories are associated with that same organization:

mockery::stub(where = get_list_repos_org,
              what = "GET",
              how = r)

mockery::stub(where = get_list_repos_org,
              what = "fromJSON",
              how = content_list_repos_org)
# Example function use

repos <- get_list_repos_org(base_url = example_url, 
                            api_key = example_key, 
                            org = "empresa")

glimpse(repos)

User information

But we can not only get information about projects and repositories, we can also see specific information about users:

mockery::stub(where = get_list_users,
              what = "GET",
              how = r)

mockery::stub(where = get_list_users,
              what = "fromJSON",
              how = content_list_users)
# Example function use

users <- get_list_users(base_url = example_url, 
                        api_key = example_key)

glimpse(users)

All commits from a specific repository

We can also see the commits made to a certain repository in a very simple way

mockery::stub(where = get_commits,
              what = "GET",
              how = r)

mockery::stub(where = get_commits,
              what = "fromJSON",
              how = content_commits)
# Example function use

commits <- get_commits(base_url = example_url, 
                     api_key = example_key,
                     owner = "empresa",
                     repo = "repo_prueba")

head(commits)

These are just some of the functionality of gitea, there are other information that we can obtain about a gitea service.



Try the gitear package in your browser

Any scripts or data that you put into this service are public.

gitear documentation built on Jan. 13, 2021, 9:44 p.m.