Type: | Package |
Title: | 'Rstudio' Addin for Version Control and Assignment Management using Git |
Version: | 0.8.2 |
Date: | 2025-4-6 |
Description: | An 'Rstudio' addin for version control that allows users to clone repositories, create and delete branches, and sync forks on GitHub, GitLab, etc. Furthermore, the addin uses the GitLab API to allow instructors to create forks and merge requests for all students/teams with one click of a button. |
Depends: | R (≥ 4.0.0) |
Imports: | shiny (≥ 1.7.1), miniUI (≥ 0.1.1.1), rstudioapi (≥ 0.7), curl (≥ 3.2), jsonlite (≥ 1.5), dplyr (≥ 0.8.3), shinyFiles (≥ 0.7.5), callr (≥ 2.0.4), usethis (≥ 1.5.1), markdown |
Suggests: | knitr, rmarkdown |
URL: | https://github.com/vnijs/gitgadget |
BugReports: | https://github.com/vnijs/gitgadget/issues |
License: | GPL-3 |
RoxygenNote: | 7.3.2 |
Encoding: | UTF-8 |
Language: | en-US |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2025-04-07 01:09:26 UTC; vnijs |
Author: | Vincent Nijs [aut, cre], Sanjiv Erat [aut] |
Maintainer: | Vincent Nijs <vnijs@ucsd.edu> |
Repository: | CRAN |
Date/Publication: | 2025-04-07 02:30:06 UTC |
gitgadget
Description
An 'Rstudio' addin for version control that allows users to clone repositories, create and delete branches, and sync forks on GitHub, GitLab, etc. Furthermore, the addin uses the GitLab API to allow instructors to create forks and merge requests for all students/teams with one click of a button.
Run gitgadget in the Rstudio viewer if available
Usage
gitgadget(port = get_port(), host = "127.0.0.1", launch.browser = TRUE)
Arguments
port |
Port to use for the app |
host |
Host ip to use |
launch.browser |
Launch app in viewer (browsers) or only show the URL |
Details
See https://github.com/vnijs/gitgadget for documentation
Author(s)
Maintainer: Vincent Nijs vnijs@ucsd.edu
Authors:
Sanjiv Erat serat@ucsd.edu
See Also
Useful links:
Add users to a repo
Description
Add users to a repo
Usage
add_users_repo(
token,
repo,
userfile,
permission = 20,
server = "https://api.github.com/"
)
Arguments
token |
GitHub token |
repo |
Repo to update |
userfile |
A csv file with student information (i.e., username, token, and email) |
permission |
Permission setting for the repo (default is 20, i.e., reporter) |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Assign work to each student/team by creating a fork of the main repo
Description
Assign work to each student/team by creating a fork of the main repo
Usage
assign_work(
token,
groupname,
assignment,
userfile,
tafile = "",
type = "individual",
pre = "",
server = "https://api.github.com/"
)
Arguments
token |
GitLab token |
groupname |
Group to create on GitLab (defaults to user's namespace) |
assignment |
Name of the assignment to assign |
userfile |
A csv file with student information (i.e., username, token, and email) |
tafile |
A optional csv file with TA information (i.e., username, token, and email) |
type |
Individual or Team work |
pre |
Pre-amble for the assignment name, usually groupname + "-" |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Check student tokens
Description
Check student tokens
Usage
check_tokens(
userfile,
server = Sys.getenv("git.server", "https://api.github.com/")
)
Arguments
userfile |
A csv file with student information (i.e., username, token, and email) |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Check error status
Description
Check error status
Usage
checkerr(code)
Arguments
code |
Code returned by an API request |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Create merge requests for each student/team
Description
Create merge requests for each student/team
Usage
collect_work(
token,
assignment,
userfile,
type = "individual",
server = "https://api.github.com/"
)
Arguments
token |
GitHub token |
assignment |
Name of the assignment (e.g., "class345/class345-assignment1") |
userfile |
A csv file with student information (i.e., username, token, and email) |
type |
Individual or Team work |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Create a group on GitLab using the API
Description
Create a group on GitLab using the API
Usage
create_group(
token,
groupname = "",
userfile = "",
permission = 20,
server = "https://api.github.com/"
)
Arguments
token |
GitLab token |
groupname |
Group to create on GitLab (defaults to user's namespace) |
userfile |
A csv file with student information (i.e., username, token, and email) |
permission |
Permission setting for the group (default is 20, i.e., reporter) |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Create the main repo from a local directory
Description
Create the main repo from a local directory
Usage
create_repo(
username = Sys.getenv("git.user"),
token = Sys.getenv("GITHUB_PAT"),
repo = basename(getwd()),
base_dir = dirname(getwd()),
groupname = "",
pre = "",
ssh = FALSE,
server = "https://api.github.com/"
)
Arguments
username |
Username |
token |
Token (e.g., Sys.getenv("GITHUB_PAT") or Sys.getenv("GITHUB_PAT")) |
repo |
Name of the repo (assignment) |
base_dir |
Base directory for the repo. file.path(directory, assignment) should exist |
groupname |
Group to create on GitLab (defaults to user's namespace) |
pre |
Pre-amble for the repo (assignment) name |
ssh |
Use SSH for authentication |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Fetch all merge requests as local branches and link to a remote
Description
Fetch all merge requests as local branches and link to a remote
Usage
fetch_work(token, assignment, page = 1, server = "https://api.github.com/")
Arguments
token |
GitLab token |
assignment |
Name of the assignment (e.g., "class345/class345-assignment1") |
page |
Number of the results page to select |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
noRd export
Description
noRd export
Usage
get_port()
Launch gitgadget in a separate process
Description
Launch gitgadget in a separate process
Usage
gitgadget_callr()
Details
Using the callr
package to launch gitgadget in a separate process so
the console is not blocked. Rstudio viewer is used if available. See
https://github.com/vnijs/gitgadget for documentation
Start gitgadget and show url to open the application in an external browser
Description
Start gitgadget and show url to open the application in an external browser
Usage
gitgadget_url()
Details
See https://github.com/vnijs/gitgadget for documentation
Find project ID
Description
Find project ID
Usage
projID(path_with_namespace, token, server, owned = TRUE, search = "")
Arguments
path_with_namespace |
Repo name together with the group or user namespace |
token |
GitLab token |
server |
The GitLab API server |
owned |
Restrict listing to only repos owned by the user? TRUE or FALSE |
search |
Search term to use to narrow down the set of projects |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Reach user file
Description
Reach user file
Usage
read_ufile(userfile, cols = c("userid", "team", "token"))
Arguments
userfile |
File with student information |
cols |
Column names that must exists in the file |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Remove a project
Description
Remove a project
Usage
remove_project(token, id, server)
Arguments
token |
GitLab token |
id |
Project ID |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation
Remove users from a repo
Description
Remove users from a repo
Usage
remove_users_repo(token, repo, userfile, server = "https://api.github.com/")
Arguments
token |
GitLab token |
repo |
Repo the update |
userfile |
A csv file with student information (i.e., username, token, and email) |
server |
The GitLab API server |
Details
See https://github.com/vnijs/gitgadget for additional documentation