Skip to content

Latest commit

 

History

History
72 lines (70 loc) · 2.82 KB

github.org

File metadata and controls

72 lines (70 loc) · 2.82 KB

Créer ou réactiver un compte gratuit MangeChats sur github.com

  • Lui ajouter dans settings la clef publique avec les 2 rôles
  • Créer un repository public emacs sur github
  • Sans un README

Ajouter la clef publique dans la console

  • 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

Créer un repository local

  • 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

Pour les push suivants

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

Automatisation du login github

  • 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.