javascript - Hur man autentiserar med SSH eller HTTPS med exec


Jag arbetar på ett projekt med JavaScript för att skapa en applikation som kan utföra git-kommandon som clone, pull, push.

Jag använder ett bibliotek som heter simple git (https://github.com/steveukx/git-js) som låter mig göra detta med exec.

Exempel på git clone-kommando:

const USER = 'something';
const PASS = 'somewhere';
const REPO = 'github.com/username/private-repo';

const git = require('simple-git/promise');
const remote = `https://${USER}:${PASS}@${REPO}`;

git().silent(true)
  .clone(remote)
  .then(() => console.log('finished'))
  .catch((err) => console.error('failed: ', err));

För att till exempel köra pull-kommandot fungerar det perfekt med HTTPS bara genom att lägga till användarnamn och lösenord i URL:en:

const remote = `https://${username}:${password}@${REPO}`;

Men nu vet jag inte hur man autentiserar med SSH.

Finns det ett sätt att autentisera med HTTPS eller SSH med exec (child-bibliotek, process.spawn).

Vi skulle också kunna använda autentiseringsuppgifter från git men problemet är att jag behöver skriva lösenordet efter pull-kommandot till exempel men jag kan inte använda exec.

Tack på förhand för dina svar.

Svar #1

Jag kunde lösa detta genom att följa vägledningen i detta GitHub-ärende: https://github.com/steveukx/git-js/issues/710

Du bör kunna uppnå samma sak förutsatt att ditt nyckelpar är korrekt inställt som nämnts av andra i kommentarerna.

const remote = `[email :<yourworkspace>/${repo.name}.git`;