Skip to contents

Fetch gitignore template(s) from gitignore.io

Usage

gi_fetch_templates(
  template_name,
  copy_to_clipboard = FALSE,
  append_gitignore = FALSE,
  gitignore_file = here::here(".gitignore")
)

Arguments

template_name

A character vector with values included in gi_available_templates.

copy_to_clipboard

Logical. Should the returned template(s) be copied to the clipboard? Otherwise, it will be printed in the console. Default is FALSE.

append_gitignore

Logical. Should the .gitignore be modified to include the returned template(s)?

gitignore_file

The path of the .gitignore file to be modified. By default, it will try to find it in the current package/project using `here::here(".gitignore")`.

Value

A character containing gitignore template(s).

Examples

# Fetch template for the R language
gi_fetch_templates("R")
#> # Created by https://www.toptal.com/developers/gitignore/api/r
#> # Edit at https://www.toptal.com/developers/gitignore?templates=r
#> 
#> ### R ###
#> # History files
#> .Rhistory
#> .Rapp.history
#> 
#> # Session Data files
#> .RData
#> .RDataTmp
#> 
#> # User-specific files
#> .Ruserdata
#> 
#> # Example code in package build process
#> *-Ex.R
#> 
#> # Output files from R CMD build
#> /*.tar.gz
#> 
#> # Output files from R CMD check
#> /*.Rcheck/
#> 
#> # RStudio files
#> .Rproj.user/
#> 
#> # produced vignettes
#> vignettes/*.html
#> vignettes/*.pdf
#> 
#> # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3
#> .httr-oauth
#> 
#> # knitr and R markdown default cache directories
#> *_cache/
#> /cache/
#> 
#> # Temporary files created by R markdown
#> *.utf8.md
#> *.knit.md
#> 
#> # R Environment Variables
#> .Renviron
#> 
#> # pkgdown site
#> docs/
#> 
#> # translation temp files
#> po/*~
#> 
#> # RStudio Connect folder
#> rsconnect/
#> 
#> ### R.Bookdown Stack ###
#> # R package: bookdown caching files
#> /*_files/
#> 
#> # End of https://www.toptal.com/developers/gitignore/api/r

# You can combine many templates at once
gi_fetch_templates(c("R", "python", "java"))
#> # Created by https://www.toptal.com/developers/gitignore/api/r,python,java
#> # Edit at https://www.toptal.com/developers/gitignore?templates=r,python,java
#> 
#> ### Java ###
#> # Compiled class file
#> *.class
#> 
#> # Log file
#> *.log
#> 
#> # BlueJ files
#> *.ctxt
#> 
#> # Mobile Tools for Java (J2ME)
#> .mtj.tmp/
#> 
#> # Package Files #
#> *.jar
#> *.war
#> *.nar
#> *.ear
#> *.zip
#> *.tar.gz
#> *.rar
#> 
#> # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
#> hs_err_pid*
#> replay_pid*
#> 
#> ### Python ###
#> # Byte-compiled / optimized / DLL files
#> __pycache__/
#> *.py[cod]
#> *$py.class
#> 
#> # C extensions
#> *.so
#> 
#> # Distribution / packaging
#> .Python
#> build/
#> develop-eggs/
#> dist/
#> downloads/
#> eggs/
#> .eggs/
#> lib/
#> lib64/
#> parts/
#> sdist/
#> var/
#> wheels/
#> share/python-wheels/
#> *.egg-info/
#> .installed.cfg
#> *.egg
#> MANIFEST
#> 
#> # PyInstaller
#> #  Usually these files are written by a python script from a template
#> #  before PyInstaller builds the exe, so as to inject date/other infos into it.
#> *.manifest
#> *.spec
#> 
#> # Installer logs
#> pip-log.txt
#> pip-delete-this-directory.txt
#> 
#> # Unit test / coverage reports
#> htmlcov/
#> .tox/
#> .nox/
#> .coverage
#> .coverage.*
#> .cache
#> nosetests.xml
#> coverage.xml
#> *.cover
#> *.py,cover
#> .hypothesis/
#> .pytest_cache/
#> cover/
#> 
#> # Translations
#> *.mo
#> *.pot
#> 
#> # Django stuff:
#> local_settings.py
#> db.sqlite3
#> db.sqlite3-journal
#> 
#> # Flask stuff:
#> instance/
#> .webassets-cache
#> 
#> # Scrapy stuff:
#> .scrapy
#> 
#> # Sphinx documentation
#> docs/_build/
#> 
#> # PyBuilder
#> .pybuilder/
#> target/
#> 
#> # Jupyter Notebook
#> .ipynb_checkpoints
#> 
#> # IPython
#> profile_default/
#> ipython_config.py
#> 
#> # pyenv
#> #   For a library or package, you might want to ignore these files since the code is
#> #   intended to run in multiple environments; otherwise, check them in:
#> # .python-version
#> 
#> # pipenv
#> #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#> #   However, in case of collaboration, if having platform-specific dependencies or dependencies
#> #   having no cross-platform support, pipenv may install dependencies that don't work, or not
#> #   install all needed dependencies.
#> #Pipfile.lock
#> 
#> # poetry
#> #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#> #   This is especially recommended for binary packages to ensure reproducibility, and is more
#> #   commonly ignored for libraries.
#> #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#> #poetry.lock
#> 
#> # pdm
#> #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#> #pdm.lock
#> #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
#> #   in version control.
#> #   https://pdm.fming.dev/#use-with-ide
#> .pdm.toml
#> 
#> # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
#> __pypackages__/
#> 
#> # Celery stuff
#> celerybeat-schedule
#> celerybeat.pid
#> 
#> # SageMath parsed files
#> *.sage.py
#> 
#> # Environments
#> .env
#> .venv
#> env/
#> venv/
#> ENV/
#> env.bak/
#> venv.bak/
#> 
#> # Spyder project settings
#> .spyderproject
#> .spyproject
#> 
#> # Rope project settings
#> .ropeproject
#> 
#> # mkdocs documentation
#> /site
#> 
#> # mypy
#> .mypy_cache/
#> .dmypy.json
#> dmypy.json
#> 
#> # Pyre type checker
#> .pyre/
#> 
#> # pytype static type analyzer
#> .pytype/
#> 
#> # Cython debug symbols
#> cython_debug/
#> 
#> # PyCharm
#> #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#> #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#> #  and can be added to the global gitignore or merged into this file.  For a more nuclear
#> #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
#> #.idea/
#> 
#> ### Python Patch ###
#> # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
#> poetry.toml
#> 
#> # ruff
#> .ruff_cache/
#> 
#> # LSP config files
#> pyrightconfig.json
#> 
#> ### R ###
#> # History files
#> .Rhistory
#> .Rapp.history
#> 
#> # Session Data files
#> .RData
#> .RDataTmp
#> 
#> # User-specific files
#> .Ruserdata
#> 
#> # Example code in package build process
#> *-Ex.R
#> 
#> # Output files from R CMD build
#> /*.tar.gz
#> 
#> # Output files from R CMD check
#> /*.Rcheck/
#> 
#> # RStudio files
#> .Rproj.user/
#> 
#> # produced vignettes
#> vignettes/*.html
#> vignettes/*.pdf
#> 
#> # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3
#> .httr-oauth
#> 
#> # knitr and R markdown default cache directories
#> *_cache/
#> /cache/
#> 
#> # Temporary files created by R markdown
#> *.utf8.md
#> *.knit.md
#> 
#> # R Environment Variables
#> .Renviron
#> 
#> # pkgdown site
#> docs/
#> 
#> # translation temp files
#> po/*~
#> 
#> # RStudio Connect folder
#> rsconnect/
#> 
#> ### R.Bookdown Stack ###
#> # R package: bookdown caching files
#> /*_files/
#> 
#> # End of https://www.toptal.com/developers/gitignore/api/r,python,java

# The .gitignore file can be automatically modified with `append_gitignore = TRUE`
gi_fetch_templates(c("R", "python", "java"))
#> # Created by https://www.toptal.com/developers/gitignore/api/r,python,java
#> # Edit at https://www.toptal.com/developers/gitignore?templates=r,python,java
#> 
#> ### Java ###
#> # Compiled class file
#> *.class
#> 
#> # Log file
#> *.log
#> 
#> # BlueJ files
#> *.ctxt
#> 
#> # Mobile Tools for Java (J2ME)
#> .mtj.tmp/
#> 
#> # Package Files #
#> *.jar
#> *.war
#> *.nar
#> *.ear
#> *.zip
#> *.tar.gz
#> *.rar
#> 
#> # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
#> hs_err_pid*
#> replay_pid*
#> 
#> ### Python ###
#> # Byte-compiled / optimized / DLL files
#> __pycache__/
#> *.py[cod]
#> *$py.class
#> 
#> # C extensions
#> *.so
#> 
#> # Distribution / packaging
#> .Python
#> build/
#> develop-eggs/
#> dist/
#> downloads/
#> eggs/
#> .eggs/
#> lib/
#> lib64/
#> parts/
#> sdist/
#> var/
#> wheels/
#> share/python-wheels/
#> *.egg-info/
#> .installed.cfg
#> *.egg
#> MANIFEST
#> 
#> # PyInstaller
#> #  Usually these files are written by a python script from a template
#> #  before PyInstaller builds the exe, so as to inject date/other infos into it.
#> *.manifest
#> *.spec
#> 
#> # Installer logs
#> pip-log.txt
#> pip-delete-this-directory.txt
#> 
#> # Unit test / coverage reports
#> htmlcov/
#> .tox/
#> .nox/
#> .coverage
#> .coverage.*
#> .cache
#> nosetests.xml
#> coverage.xml
#> *.cover
#> *.py,cover
#> .hypothesis/
#> .pytest_cache/
#> cover/
#> 
#> # Translations
#> *.mo
#> *.pot
#> 
#> # Django stuff:
#> local_settings.py
#> db.sqlite3
#> db.sqlite3-journal
#> 
#> # Flask stuff:
#> instance/
#> .webassets-cache
#> 
#> # Scrapy stuff:
#> .scrapy
#> 
#> # Sphinx documentation
#> docs/_build/
#> 
#> # PyBuilder
#> .pybuilder/
#> target/
#> 
#> # Jupyter Notebook
#> .ipynb_checkpoints
#> 
#> # IPython
#> profile_default/
#> ipython_config.py
#> 
#> # pyenv
#> #   For a library or package, you might want to ignore these files since the code is
#> #   intended to run in multiple environments; otherwise, check them in:
#> # .python-version
#> 
#> # pipenv
#> #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#> #   However, in case of collaboration, if having platform-specific dependencies or dependencies
#> #   having no cross-platform support, pipenv may install dependencies that don't work, or not
#> #   install all needed dependencies.
#> #Pipfile.lock
#> 
#> # poetry
#> #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#> #   This is especially recommended for binary packages to ensure reproducibility, and is more
#> #   commonly ignored for libraries.
#> #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#> #poetry.lock
#> 
#> # pdm
#> #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#> #pdm.lock
#> #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
#> #   in version control.
#> #   https://pdm.fming.dev/#use-with-ide
#> .pdm.toml
#> 
#> # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
#> __pypackages__/
#> 
#> # Celery stuff
#> celerybeat-schedule
#> celerybeat.pid
#> 
#> # SageMath parsed files
#> *.sage.py
#> 
#> # Environments
#> .env
#> .venv
#> env/
#> venv/
#> ENV/
#> env.bak/
#> venv.bak/
#> 
#> # Spyder project settings
#> .spyderproject
#> .spyproject
#> 
#> # Rope project settings
#> .ropeproject
#> 
#> # mkdocs documentation
#> /site
#> 
#> # mypy
#> .mypy_cache/
#> .dmypy.json
#> dmypy.json
#> 
#> # Pyre type checker
#> .pyre/
#> 
#> # pytype static type analyzer
#> .pytype/
#> 
#> # Cython debug symbols
#> cython_debug/
#> 
#> # PyCharm
#> #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#> #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#> #  and can be added to the global gitignore or merged into this file.  For a more nuclear
#> #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
#> #.idea/
#> 
#> ### Python Patch ###
#> # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
#> poetry.toml
#> 
#> # ruff
#> .ruff_cache/
#> 
#> # LSP config files
#> pyrightconfig.json
#> 
#> ### R ###
#> # History files
#> .Rhistory
#> .Rapp.history
#> 
#> # Session Data files
#> .RData
#> .RDataTmp
#> 
#> # User-specific files
#> .Ruserdata
#> 
#> # Example code in package build process
#> *-Ex.R
#> 
#> # Output files from R CMD build
#> /*.tar.gz
#> 
#> # Output files from R CMD check
#> /*.Rcheck/
#> 
#> # RStudio files
#> .Rproj.user/
#> 
#> # produced vignettes
#> vignettes/*.html
#> vignettes/*.pdf
#> 
#> # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3
#> .httr-oauth
#> 
#> # knitr and R markdown default cache directories
#> *_cache/
#> /cache/
#> 
#> # Temporary files created by R markdown
#> *.utf8.md
#> *.knit.md
#> 
#> # R Environment Variables
#> .Renviron
#> 
#> # pkgdown site
#> docs/
#> 
#> # translation temp files
#> po/*~
#> 
#> # RStudio Connect folder
#> rsconnect/
#> 
#> ### R.Bookdown Stack ###
#> # R package: bookdown caching files
#> /*_files/
#> 
#> # End of https://www.toptal.com/developers/gitignore/api/r,python,java