Create a gitbook with git_down

Create a reproducible example of a versioned directory

Create a versioned directory with some commits and a NEWS.md in a temporary directory

repo <- fake_repo()

Build book of commits messages

The main function of {gitdown} is to build this gitbook with all commit messages ordered according to a pattern. Each commit message associated with an issue will be recorded in the section of this issue. A commit message can thus appears multiple times if it is associated with multiple issues.
If you have your own referencing system for tickets in an external software, you can also create the gitbook associated like using ticket as in the example below.

git_down(repo, pattern = c("Tickets" = "ticket[[:digit:]]+", "Issues" = "#[[:digit:]]+"))

Read list of commits and extract information

As a side effect of {gitdown}, you can get some intermediate information used to build the book with some exported functions.

Get commits and find pattern

get_commits_tags(repo, ref = "main")
#> 4 commits found.
#> # A tibble: 4 × 9
#>   sha      summary  message      author email when                order tag.name
#>   <chr>    <chr>    <chr>        <chr>  <chr> <dttm>              <int> <chr>   
#> 1 38ecd05… Add NEWS "Add NEWS\n… Alice  alic… 2022-03-05 20:32:44     4 <NA>    
#> 2 c1c1588… Third c… "Third comm… Alice  alic… 2022-03-05 20:32:44     3 v0.1    
#> 3 13a5e01… example… "example: m… Alice  alic… 2022-03-05 20:32:44     2 v0.1    
#> 4 7e0a474… First c… "First comm… Alice  alic… 2022-03-05 20:32:44     1 v0.1    
#> # … with 1 more variable: tag.message <chr>
get_commits_pattern(repo, pattern = "#[[:digit:]]+", ref = "main")
#> 4 commits found.
#> # A tibble: 7 × 12
#>   sha      summary  message      author email when                order tag.name
#>   <chr>    <chr>    <chr>        <chr>  <chr> <dttm>              <int> <chr>   
#> 1 38ecd05… Add NEWS "Add NEWS\n… Alice  alic… 2022-03-05 20:32:44     4 <NA>    
#> 2 38ecd05… Add NEWS "Add NEWS\n… Alice  alic… 2022-03-05 20:32:44     4 <NA>    
#> 3 38ecd05… Add NEWS "Add NEWS\n… Alice  alic… 2022-03-05 20:32:44     4 <NA>    
#> 4 c1c1588… Third c… "Third comm… Alice  alic… 2022-03-05 20:32:44     3 v0.1    
#> 5 c1c1588… Third c… "Third comm… Alice  alic… 2022-03-05 20:32:44     3 v0.1    
#> 6 13a5e01… example… "example: m… Alice  alic… 2022-03-05 20:32:44     2 v0.1    
#> 7 7e0a474… First c… "First comm… Alice  alic… 2022-03-05 20:32:44     1 v0.1    
#> # … with 4 more variables: tag.message <chr>, pattern.type <chr>,
#> #   pattern.content <chr>, pattern.title <chr>

Create a vignette that lists all files with date of modification

repo_pkg <- fake_repo(as.package = TRUE)
# List only files in R/ directory
create_vignette_last_modif(repo_pkg)
# List all files of the git repository
create_vignette_last_modif(repo_pkg, path = "")

With this example, the vignette will show this content:

File Tracked in git Date of creation Last modification
NEWS.md Yes 2022-03-05 21:32:44 2022-03-05 21:32:44
example.txt Yes 2022-03-05 21:32:44 2022-03-05 21:32:44
R/my_mean.R No NA 2022-03-05 21:32:44