Git
commit
Writes a commit to the local Git repository.
import { Git } from 'skuba';
await Git.commit({ dir, message: 'Test a commit' });
commitAllChanges
Stages all changes and writes a commit to the local Git repository.
Skips the commit and returns undefined
if there are no changes.
import { Git } from 'skuba';
await Git.commitAllChanges({ dir, message: 'Test a commit' });
currentBranch
Tries to return a Git branch name from CI environment variables, falling back to the local Git repository when the current working dir
is supplied.
import { Git } from 'skuba';
const currentBranch = Git.currentBranch({ dir });
fastForwardBranch
Fast forwards the specified ref
on the local Git repository to match the remote branch.
Currently, only GitHub app tokens are supported as an auth mechanism.
import { Git } from 'skuba';
await Git.fastForwardBranch({
auth: { type: 'gitHubApp' },
dir,
ref: 'branch-name',
});
getChangedFiles
Returns all the files which have been added, modified or deleted in the working directory of the local Git repository since the last commit.
import { Git } from 'skuba';
const changedFiles = await Git.getChangedFiles({ dir });
getHeadCommitId
Gets the object ID of the head commit.
This tries to extract the commit ID from common CI environment variables, and falls back to the local Git repository log.
import { Git } from 'skuba';
const headCommitId = await Git.getHeadCommitId({ dir });
getHeadCommitMessage
Gets the message of the head commit.
This tries to extract the message from common CI environment variables, and falls back to the local Git repository log.
import { Git } from 'skuba';
const headCommitMessage = await Git.getHeadCommitMessage({ dir });
getOwnerAndRepo
Extracts the owner and repository names from CI environment variables, falling back to local Git remotes.
Currently, only GitHub repository URLs are supported:
git@github.com:seek-oss/skuba.git
https://github.com/seek-oss/skuba.git
import { Git } from 'skuba';
const { owner, repo } = await getOwnerAndRepo({ dir });
push
Pushes the specified ref
from the local Git repository to a remote.
Currently, only GitHub app tokens are supported as an auth mechanism.
import { Git } from 'skuba';
await Git.push({
auth: { type: 'gitHubApp' },
dir,
ref: 'commit-id',
remoteRef: 'branch-name',
});
reset
Resets the specified branch in the local Git repository to a particular commit.
import { Git } from 'skuba';
await Git.reset({
dir,
branch: 'main',
commitId: 'abcd1234',
hard: true,
});