Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
dcc58a312e | |||
90f57bee1a | |||
98d1f8aea2 | |||
1f542367e6 | |||
201a5014ed | |||
6cc245ae7e | |||
1377fb6eb7 | |||
daf8c80513 | |||
46fce49356 |
@ -10,6 +10,7 @@
|
||||
|
||||
},
|
||||
"gitzone": {
|
||||
"projectType": "npm",
|
||||
"module": {
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "pushrocks",
|
||||
|
11690
package-lock.json
generated
11690
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartgit",
|
||||
"version": "1.0.9",
|
||||
"version": "1.0.14",
|
||||
"description": "smart wrapper for nodegit",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
@ -24,20 +24,20 @@
|
||||
},
|
||||
"homepage": "https://gitlab.com/pushrocks/smartgit",
|
||||
"dependencies": {
|
||||
"@pushrocks/smartfile": "^7.0.2",
|
||||
"@pushrocks/smartpath": "^4.0.1",
|
||||
"@pushrocks/smartpromise": "^3.0.2",
|
||||
"@pushrocks/smartshell": "^2.0.23",
|
||||
"@pushrocks/smartstring": "^3.0.10",
|
||||
"@pushrocks/smartfile": "^8.0.0",
|
||||
"@pushrocks/smartpath": "^4.0.3",
|
||||
"@pushrocks/smartpromise": "^3.0.6",
|
||||
"@pushrocks/smartshell": "^2.0.26",
|
||||
"@pushrocks/smartstring": "^3.0.18",
|
||||
"@types/minimatch": "^3.0.3",
|
||||
"@types/nodegit": "^0.24.8",
|
||||
"nodegit": "^0.24.3"
|
||||
"@types/nodegit": "^0.26.7",
|
||||
"nodegit": "^0.27.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.11",
|
||||
"@gitzone/tstest": "^1.0.24",
|
||||
"@pushrocks/tapbundle": "^3.0.9",
|
||||
"tslint": "^5.17.0",
|
||||
"@gitzone/tsbuild": "^2.1.25",
|
||||
"@gitzone/tstest": "^1.0.44",
|
||||
"@pushrocks/tapbundle": "^3.2.9",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
},
|
||||
"private": false,
|
||||
|
@ -1,4 +1,12 @@
|
||||
import { tap, expect } from '@pushrocks/tapbundle';
|
||||
import * as smartgit from '../ts/index';
|
||||
|
||||
import * as path from 'path';
|
||||
|
||||
const testRepoDir = path.join(__dirname, '../.nogit/testrepo');
|
||||
|
||||
tap.test('should create a new repo at .nogit', async () => {
|
||||
const gitRepo = await smartgit.GitRepo.fromCreatingRepoInDir(testRepoDir);
|
||||
});
|
||||
|
||||
tap.start();
|
||||
|
@ -8,7 +8,7 @@ export class GitRepo {
|
||||
/**
|
||||
* creates a new GitRepo Instance after cloning a project
|
||||
*/
|
||||
public static async createRepoFromClone(fromArg: string, toArg: string): Promise<GitRepo> {
|
||||
public static async fromCloningIntoDir(fromArg: string, toArg: string): Promise<GitRepo> {
|
||||
const dirArg = plugins.path.resolve(toArg);
|
||||
const ngRespository = await plugins.nodegit.Clone.clone(fromArg, toArg, {
|
||||
bare: 0,
|
||||
@ -17,13 +17,13 @@ export class GitRepo {
|
||||
return new GitRepo(ngRespository);
|
||||
}
|
||||
|
||||
public static async createNewRepoInDir(dirArg: string): Promise<GitRepo> {
|
||||
public static async fromCreatingRepoInDir(dirArg: string): Promise<GitRepo> {
|
||||
dirArg = plugins.path.resolve(dirArg);
|
||||
const ngRepository = await plugins.nodegit.Repository.init(dirArg, 0);
|
||||
return new GitRepo(ngRepository);
|
||||
}
|
||||
|
||||
public static async openRepoAt(dirArg: string) {
|
||||
public static async fromOpeningRepoDir(dirArg: string) {
|
||||
dirArg = plugins.path.resolve(dirArg);
|
||||
const ngRepository = await plugins.nodegit.Repository.open(dirArg);
|
||||
return new GitRepo(ngRepository);
|
||||
@ -39,16 +39,36 @@ export class GitRepo {
|
||||
/**
|
||||
* lists remotes
|
||||
*/
|
||||
public async listRemotes(): Promise<string[]> {
|
||||
public async listRemotes(): Promise<plugins.nodegit.Remote[]> {
|
||||
return this.nodegitRepo.getRemotes();
|
||||
}
|
||||
|
||||
/**
|
||||
* ensures the existance of a remote within a repository
|
||||
* @param remoteNameArg
|
||||
* @param remoteUrlArg
|
||||
*/
|
||||
public async ensureRemote(remoteNameArg: string, remoteUrlArg: string): Promise<void> {
|
||||
const existingUrl = await this.getUrlForRemote(remoteNameArg);
|
||||
if (existingUrl === remoteUrlArg) {
|
||||
return;
|
||||
}
|
||||
if (existingUrl) {
|
||||
await plugins.nodegit.Remote.delete(this.nodegitRepo, remoteNameArg);
|
||||
}
|
||||
await plugins.nodegit.Remote.create(this.nodegitRepo, remoteNameArg, remoteUrlArg);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the url for a specific remote
|
||||
*/
|
||||
public async getUrlForRemote(remoteName: string) {
|
||||
public async getUrlForRemote(remoteName: string): Promise<string> {
|
||||
const ngRemote = await this.nodegitRepo.getRemote(remoteName);
|
||||
return ngRemote.url;
|
||||
if (ngRemote) {
|
||||
return ngRemote.url();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async pushBranchToRemote(branchName: string, remoteName: string) {
|
||||
|
@ -11,6 +11,6 @@ import * as smartstring from '@pushrocks/smartstring';
|
||||
export { smartfile, smartpath, smartpromise, smartstring };
|
||||
|
||||
// third party
|
||||
import * as nodegit from 'nodegit';
|
||||
import nodegit from 'nodegit';
|
||||
|
||||
export { nodegit };
|
||||
|
Reference in New Issue
Block a user