Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
6cc245ae7e | |||
1377fb6eb7 | |||
daf8c80513 | |||
46fce49356 | |||
8616613a95 | |||
352e4d8e96 | |||
c2105ce78f | |||
2864fc5507 |
@ -1,5 +1,5 @@
|
|||||||
# gitzone ci_default
|
# gitzone ci_default
|
||||||
image: hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
@ -50,22 +50,10 @@ testLTS:
|
|||||||
- docker
|
- docker
|
||||||
- notpriv
|
- 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:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npmci node install stable
|
- npmci node install lts
|
||||||
- npmci npm publish
|
- npmci npm publish
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
"coverageTreshold": 71
|
"coverageTreshold": 71
|
||||||
},
|
},
|
||||||
"npmci": {
|
"npmci": {
|
||||||
"globalNpmTools": [
|
"npmGlobalTools": [],
|
||||||
"npmts"
|
"npmAccessLevel": "public"
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"gitzone": {
|
"gitzone": {
|
||||||
"module": {
|
"module": {
|
||||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartgit",
|
"name": "@pushrocks/smartgit",
|
||||||
"version": "1.0.7",
|
"version": "1.0.11",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartgit",
|
"name": "@pushrocks/smartgit",
|
||||||
"version": "1.0.7",
|
"version": "1.0.11",
|
||||||
"description": "smart wrapper for nodegit",
|
"description": "smart wrapper for nodegit",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
import { tap, expect } from '@pushrocks/tapbundle';
|
import { tap, expect } from '@pushrocks/tapbundle';
|
||||||
import * as smartgit from '../ts/index';
|
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();
|
tap.start();
|
||||||
|
@ -8,7 +8,7 @@ export class GitRepo {
|
|||||||
/**
|
/**
|
||||||
* creates a new GitRepo Instance after cloning a project
|
* 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 dirArg = plugins.path.resolve(toArg);
|
||||||
const ngRespository = await plugins.nodegit.Clone.clone(fromArg, toArg, {
|
const ngRespository = await plugins.nodegit.Clone.clone(fromArg, toArg, {
|
||||||
bare: 0,
|
bare: 0,
|
||||||
@ -17,13 +17,13 @@ export class GitRepo {
|
|||||||
return new GitRepo(ngRespository);
|
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);
|
dirArg = plugins.path.resolve(dirArg);
|
||||||
const ngRepository = await plugins.nodegit.Repository.init(dirArg, 0);
|
const ngRepository = await plugins.nodegit.Repository.init(dirArg, 0);
|
||||||
return new GitRepo(ngRepository);
|
return new GitRepo(ngRepository);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async openRepoAt(dirArg: string) {
|
public static async fromOpeningRepoDir(dirArg: string) {
|
||||||
dirArg = plugins.path.resolve(dirArg);
|
dirArg = plugins.path.resolve(dirArg);
|
||||||
const ngRepository = await plugins.nodegit.Repository.open(dirArg);
|
const ngRepository = await plugins.nodegit.Repository.open(dirArg);
|
||||||
return new GitRepo(ngRepository);
|
return new GitRepo(ngRepository);
|
||||||
@ -42,13 +42,27 @@ export class GitRepo {
|
|||||||
public async listRemotes(): Promise<string[]> {
|
public async listRemotes(): Promise<string[]> {
|
||||||
return this.nodegitRepo.getRemotes();
|
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
|
* 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);
|
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) {
|
public async pushBranchToRemote(branchName: string, remoteName: string) {
|
||||||
|
@ -11,6 +11,6 @@ import * as smartstring from '@pushrocks/smartstring';
|
|||||||
export { smartfile, smartpath, smartpromise, smartstring };
|
export { smartfile, smartpath, smartpromise, smartstring };
|
||||||
|
|
||||||
// third party
|
// third party
|
||||||
import * as nodegit from 'nodegit';
|
import nodegit from 'nodegit';
|
||||||
|
|
||||||
export { nodegit };
|
export { nodegit };
|
||||||
|
Reference in New Issue
Block a user