blob: 4a18e1449e21ca678bfa626d8f575e8ebf17caed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#+title: gtree
A tool to clone and pull whole group trees from a git forge, properly organized on disk.
* Usage
#+begin_src
gtree
Sync Gitlab Trees
USAGE:
gtree <SUBCOMMAND> [SCOPE]
ARGS:
<SCOPE> Only operate on this subtree
OPTIONS:
-h, --help Print help information
-j, --jobs <JOBS> Number of jobs to run in parallel, 0 is automatic [default: 0]
SUBCOMMANDS:
help Print this message or the help of the given subcommand(s)
list List Directories
sync Download new repositories and delete old ones, also update
update Pull and Push new commits to and from the cloned repos
#+end_src
* Config
Default location for the config file is ~$HOME/.config/gtree/config.toml~, in the toml format, yaml is also supported.
#+begin_src toml
# Give the forge a easily identifiable name
["gitlab.com"]
# Configure which kind of forge this is
# Currently only gitlab is supported
type = "gitlab"
# Set the domain name to reach the forge at
host = "gitlab.com"
# API Token for the forge
# for gitlab this is a Personal Access Token
# https://gitlab.com/-/profile/personal_access_tokens
token = "HgDAfJ9tfD5xUw2L6SUm"
# Directory to clone the repos into
directory = "/home/audron/repo/gitlab.com"
#+end_src
* Known Problems
** error during git operation invalid or unknown remote ssh hostkey
libgit2, the git library this project uses, does not have support for ssh
configuration via ~\~/.ssh/config~. Thus if you have a custom location for the
~known_hosts~ file or disabled known hosts verification this configuration will
not be respected.
Execute a ssh-keyscan to a known hosts file for each of your configured forges:
#+begin_src sh
ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
#+end_src
https://github.com/libgit2/libgit2/issues/4872
|