Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@uscreen.de/dev-repo

Package Overview
Dependencies
Maintainers
0
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uscreen.de/dev-repo

cli to manage dev repos

  • 0.9.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

dev-repo

Test CI Test Coverage Known Vulnerabilities NPM Version

Manage a group of repositories for local development

Install

Add the module within your dev repo:

$ yarn add @uscreen.de/dev-repo

Usage

To combine mutliple repositories into one single development repository you just add a mapping to your existing package.json, ie.:

"repos": {
  "client": "git@github.com:example/client.git",
  "api": "git@github.com:example/api.git",
  "website": "git@github.com:example/website.git"
}

Next run repo install and you will end up with a directory structure like:

.
├── package.json
├── repos
│   ├── client
│   ├── api
│   └── site
└── yarn.lock

Each ./repos/* now containing a git cloned checkout with ./repos/*/node_modules already installed. Invoking $ repowithout any parameter prints general usage information:

$ repo
Usage: repo [options] [command]

Options:
  -V, --version         output the version number
  -h, --help            output usage information

Commands:
  install [repository]            install named repository (ie. "webapi"), or all if no name supplied
  list [repository] [-f|--fetch]  list named repository (ie. "webapi"), or all if no name supplied
  pull [repository]               pull named repository (ie. "webapi"), or all if no name supplied
  run <command> [repository]      run command within named repository (ie. "webapi"), or all if no name supplied
  help [cmd]                      display help for [cmd]

Api

$ repo install [repository]

Install given repository or all. This will create any missing subdirectory, git clone missing repositories and run a yarn install for each repository. Subsequent calls of repo install will at least run a yarn install each time. Those will run in parallel.

$ repo pull [repository]

Pull one given repository from remote or all repositories. Those pulls will run in parallel.

$ repo run <command> [repository]

Run given command within given repository or all available repositories. Example with three repoos:

$ repo run "git pull"
Already up to date.
Already up to date.
Already up to date.

Example with a given repository:

$ repo run "git status" webapi
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

By now commands will run in parallel, so don't expect a proper sequences output. run inherits the current users shell from env to enable aliases etc. by default. For example this could open editors for all projects:

$ repo run "v"

(assuming an alias like alias v 'code .')

$ repo list [repository] [-f|--fetch]

Lists local information about a given repository or all.

  • name@version
  • current branch of working copy
  • current changes of working copy
  • counts of commits behind/ahead HEAD

Example output:

$ repo list
client@0.1.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD dirty [2⇡/⇣1] - Working Copy: 2 uncommitted local changes
website@0.3.0 - [stable] HEAD clean

$ repo list
client@0.1.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD dirty [2⇡/⇣1]
website@0.3.0 - [stable] HEAD clean

$ repo list
client@0.1.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD dirty [3⇡/⇣0]
website@0.3.0 - [stable] HEAD clean

$ repo list
client@0.1.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD clean - Working Copy: 1 uncommitted local changes
website@0.3.0 - [stable] HEAD clean

$ repo list
client@0.1.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD clean - Working Copy: 1 uncommitted local changes
website@0.3.0 - [stable] HEAD clean

$ repo list -f
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 2 (delta 1), reused 1 (delta 1)
Unpacking objects: 100% (2/2), done.
From github.com:example/api
   b578056..d7b07cd  master     -> origin/master
website@0.3.0 - [master] HEAD clean
api@0.4.0 - [master] HEAD dirty [0⇡/⇣1]
client@0.1.0 - [master] HEAD clean


Roadmap

  • add unit tests for edge cases
  • add tests for v0.2.0
  • add switch to run commands in squence

Changelog

v0.8.0

Added
  • optionally skip package installation

v0.7.0

Removed
  • Support for Node.js < v16

v0.6.0

Changed
  • upgraded all deps

v0.5.0

Changed
  • refactored to ESM

v0.4.[1,2]

  • security fixes & upgrades

v0.4.0

Changed
  • dropped git packages (isomorphic-git, git-utils), replaced by shell commands

v0.3.0

Added
  • travis ci integration
  • snyk audit integration

v0.2.0

Added
  • repo pull command to pull one or all repositories from remote
  • repo run command to run sub-commands within repositories

v0.1.0

Added
  • repo install command to install from git & npm
  • repo list command to give some status info
  • integration tests covering most (not all) use cases
  • added integration test for repo list --fetch to also git fetch befores list

v0.0.0

  • initially bootstrapped

License

Licensed under MIT.

Published, Supported and Sponsored by u|screen

FAQs

Package last updated on 10 Jul 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc