
# Test du plugin Silverbullet Git (v2)

Ressource : https://community.silverbullet.md/t/backup-your-space-to-github/798

## Création d’un dépôt Git

Créer un dépôt privé dans Forgejo.
Dans la configuration de l’utilisateur (section “Applications”), créer un nouveau jeton d’application avec les droits d’écrire et lecture sur les dépôts publics et privés.

## Configurer Git sur le serveur

Se connecter au serveur en SSH :

```bash
ssh shizendo@datagrandest.net -p 222
```

Passer en root

```bash
su
```

Aller dans le dossier silverbullet/notes

```bash
cd /home/yunohost.app/silverbullet/notes
```

Passer sur l’utilisateur qui exécute Silverbullet (`silverbullet`):

```bash
su silverbullet
```

Initier et lier Git au dépôt créé précédemment:

```bash
git init                                                                                            
git config user.name "shizendo"                                                                        git config user.email "guillaume@ryckelynck.info"                                                      git config pull.rebase false                                                                           git remote add origin https://a9a9739019ce711ab5951a3ed69d0400c33fb2f7@forgejo.datagrandest.net/shizendo/silverbullet-notes.git
git fetch
```

Se connecter à la branche `main`:

```bash
git push --set-upstream origin main
```

Tester un commit et un push:

```bash
git add .
git commit -m "Commit from server 20260123 - 17:32"
```

## Installer le plugin Git

Ouvrir le gestionnaire de librairies avec la commande `Library: Manager`.
Rechercher la librairie “Git” et l’installer.

Il est ainsi possible de disposer de nouvelles commandes `Git: *`.

Par exemple:

* ${widgets.commandButton("Git: Sync")} (fait un commit avec le message “Snapshot”, puis un `git pull` et un `git push`)
* ${widgets.commandButton("Git: Commit")} (demande un message et commite les modifications).

Pour configurer le plugin une seule option est disponible:

```lua
-- priority: 100
-- config.set("git.autoSync", 1)

config.set {
  git = {
    autoSync = 1
  },
}
```
