🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

@johnls/git-extra

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@johnls/git-extra

Extra git commands for working with GitHub, BitBucket and GitLab

latest
Source
npmnpm
Version
3.6.0
Version published
Maintainers
1
Created
Source

Extra Git Commands

A tool that creates some commands for working with BitBucket and GitHub that you can add to Git.

  • browse - Opens a browser for the current repository and branch.
  • pull-request - Opens a new pull-request.
  • quick-start - Quickly starts a new project by copying and customizing an existing repository.

To add these commands to Git, do git config --global --edit and insert:

[alias]
  ...
  browse = !git-extra browse
  pull-request = !git-extra pull-request
  quick-start = !git-extra quick-start

Quick Start

By default quick-start copies an existing repository by cloning it and then resets the Git history.

The power of quick-start is that you can customize the project after the initial clone. To enable this, create a git-extra-customize.js file in the root of the project. This file contains a Javascript program that is run after the initial clone which can change the contents of the files, changing names, creating files and directories, etc.. The script is run in a VM so it can only do a restricted set of things. See the GitExtraTool.js for the full list of functions available.

git-extra-customize.js

The following objects and methods are available:

asyncMethodDescription
args.projectNameThe name of the project (the path.basename() of the directory)
args.userNameThe name of the currently logged in user
ui.log(message)Display a message to stdout
asyncfs.readFile(fileName)Read a file from the project
asyncfs.writeFile(fileName)Write a file to the project
asyncfs.remove(pathName)Remove a file or directory from the project
asyncfs.move(fromPath, toPath)Move a file or directory in the project
asyncfs.ensureFile(fileName)Ensure a file exists in the project, creating it if not
asyncfs.ensureDir(dirName)Ensure a directory exists in the project, creating it if not
asyncfs.inPlaceUpdate(fileName, array)In-place-update a file with an array of search/replace strings. See below.
path.join(...pathNames)Join a bunch of path parts
path.dirname(pathName)Get the directory part of a path
path.basename(pathName[, extName])Get the base part of path with any extension, remove extName if it exists
path.extname(pathName)Get the extension of a path
asyncgit.forceAdd(fileName)Force add a file to the Git repository
changeCase.camel(name)Change the name to "camelCase"
changeCase.capital(name)Change the name to "Capital Case"
changeCase.constant(name)Change the name to "CONSTANT_CASE"
changeCase.dot(name)Change the name to "dot.case"
changeCase.header(name)Change the name to "Header-Case"
changeCase.word(name)Change the name to "word case"
changeCase.param(name)Change the name to "param-case"
changeCase.pascal(name)Change the name to "PascalCase"
changeCase.path(name)Change the name to "path/case"
changeCase.sentence(name)Change the name to "Sentence case"
changeCase.snake(name)Change the name to "snake_case"
asyncui.prompts(promptArray)Display array of prompts. See below.
ui.log(message)Display a message to stdout

ui.prompts(...) takes an array of:

  [
    {
      name: string,
      initial: string, // Optional
      message: string,
      regex: string, // Optional
      error: string, // Optional
    }
  ]

fs.inPlaceUpdate(...) takes an array of arrays of search/replace pairs:

 [
   [/something/, "anotherThing"],
 ]

Keywords

bitbucket

FAQs

Package last updated on 18 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts