- Lui ajouter dans settings la clef publique avec les 2 rôles
- Créer un repository public emacs sur github
- Sans un README
- ssh-add clef.privee et saisir la passphrase
En principe il est possible que keepass ouvert contenant cette clef
suffise à être identifié, mais à défaut on peut l’ajouter
manuellement ainsi. Lors des essais suivants, même si
keepassxc est ouvert avant de lancer emacs
- le login pour la consultation des mails sur les 2 serveurs est bien OK
- l’envoi de mail demande bien le déverrouillage de .authinfo.gpg et l’envoi qui suis fonctionne (après un retry ?)
- mais pour un push github le
ssh-add pdedieu.priv
reste indispensable
- Lui définir un remote origin avec comme URL [email protected]:MangeChats/emacs.git
- Renommer la branche par défaut locale
de master en main pour être en accord avec le défaut de github
git branch -m main
- Faire un premier Push vers ce remote
- dans un premier temps Les mises à jour ont été rejetées car le sommet de la branche actuelle est derrière son homologue distant. Si vous souhaitez intégrer les changements distants, utilisez ‘git pull’ avant de pousser à nouveau.
- Mais mes essais de git pull échouent SAUF avec un –rebase
il faut que l’agent ait la clef SSH pdedieu chargée manuellement et que emacs soit lancé depuis le même terminal (?).
- Ne pas faire confiance à keepassxc
- si nécessaire retirer les clefs de l’agent soit lancer en shell dans emacs
git-add -D git-add ~/.ssh/pdedieu.priv # donner la passphrase de keepass git push origin main
- pour la session en cours l’authentification est conservée dans emacs
- Premier essai
(defun run-this-in-shell (cmd) "Runs the command 'cmd' in a shell." (with-current-buffer "*login-buf*" (comint-kill-input) (end-of-buffer) (insert cmd) (comint-send-input) (end-of-buffer) (yank))) (defun github-login () (interactive) (shell "*login-buf*") (run-this-in-shell "eval $(ssh-agent)") (sleep-for 0.5) (run-this-in-shell "ssh-add -D") (sleep-for 0.5) (run-this-in-shell "ssh-add ~/.ssh/pdedieu.priv") (sleep-for 0.5) (run-this-in-shell "git push -v github master:main") (sleep-for 0.5) ;; (sleep-for 3) ;; (let ((proc (get-buffer-process (current-buffer)))) ;; (when (processp proc) ;; (set-process-query-on-exit-flag proc nil)) ;; (kill-buffer "*login-buf*")) )
- marche plus ou moins, mais après un clone, il est sensiblement plus facile de gérer ce qu’on a écupéré depuis.