Compare commits

..

8 Commits

Author SHA1 Message Date
6cc245ae7e 1.0.11 2019-06-20 14:19:54 +02:00
1377fb6eb7 fix(core): update 2019-06-20 14:19:54 +02:00
daf8c80513 1.0.10 2019-06-20 14:10:42 +02:00
46fce49356 fix(core): update 2019-06-20 14:10:42 +02:00
8616613a95 1.0.9 2019-06-19 14:10:17 +02:00
352e4d8e96 fix(core): update 2019-06-19 14:10:16 +02:00
c2105ce78f 1.0.8 2019-06-19 14:00:44 +02:00
2864fc5507 fix(core): update 2019-06-19 14:00:44 +02:00
7 changed files with 35 additions and 25 deletions

View File

@ -1,5 +1,5 @@
# gitzone ci_default
image: hosttoday/ht-docker-node:npmci
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
cache:
paths:
@ -50,22 +50,10 @@ testLTS:
- docker
- notpriv
testSTABLE:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
release:
stage: release
script:
- npmci node install stable
- npmci node install lts
- npmci npm publish
only:
- tags

View File

@ -5,9 +5,9 @@
"coverageTreshold": 71
},
"npmci": {
"globalNpmTools": [
"npmts"
]
"npmGlobalTools": [],
"npmAccessLevel": "public"
},
"gitzone": {
"module": {

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartgit",
"version": "1.0.7",
"version": "1.0.11",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartgit",
"version": "1.0.7",
"version": "1.0.11",
"description": "smart wrapper for nodegit",
"main": "dist/index.js",
"typings": "dist/index.d.ts",

View File

@ -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();

View File

@ -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);
@ -42,13 +42,27 @@ export class GitRepo {
public async listRemotes(): Promise<string[]> {
return this.nodegitRepo.getRemotes();
}
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) {

View File

@ -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 };