Metadata-Version: 2.1
Name: hmd-cli-repo
Version: 0.2.85
Summary: Implementation for repo cli command
Home-page: UNKNOWN
Author: Alex Burgoon
Author-email: alex.burgoon@hmdlabs.io
License: Apache 2.0
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: arrow (==1.2.2)
Requires-Dist: aws-secretsmanager-caching (==1.1.1.5)
Requires-Dist: binaryornot (==0.4.4)
Requires-Dist: boto3 (==1.21.7)
Requires-Dist: botocore (==1.24.9)
Requires-Dist: cachetools (==5.2.0)
Requires-Dist: cement (==3.0.6)
Requires-Dist: certifi (==2021.10.8)
Requires-Dist: cffi (==1.15.0)
Requires-Dist: cfgv (==3.3.1)
Requires-Dist: chardet (==4.0.0)
Requires-Dist: charset-normalizer (==2.0.12)
Requires-Dist: click (==8.0.4)
Requires-Dist: cookiecutter (==2.1.1)
Requires-Dist: deprecated (==1.2.13)
Requires-Dist: distlib (==0.3.4)
Requires-Dist: filelock (==3.6.0)
Requires-Dist: gitdb (==4.0.9)
Requires-Dist: gitpython (==3.1.30)
Requires-Dist: google-auth (==2.9.1)
Requires-Dist: hmd-cli-tools (~=1.0.222)
Requires-Dist: identify (==2.4.11)
Requires-Dist: idna (==3.3)
Requires-Dist: jinja2 (==3.0.3)
Requires-Dist: jinja2-time (==0.2.0)
Requires-Dist: jmespath (==0.10.0)
Requires-Dist: kubernetes (==24.2.0)
Requires-Dist: markupsafe (==2.1.0)
Requires-Dist: nodeenv (==1.6.0)
Requires-Dist: oauthlib (==3.2.2)
Requires-Dist: platformdirs (==2.5.1)
Requires-Dist: pre-commit (==2.17.0)
Requires-Dist: prompt-toolkit (==1.0.14)
Requires-Dist: pyasn1 (==0.4.8)
Requires-Dist: pyasn1-modules (==0.2.8)
Requires-Dist: pycparser (==2.21)
Requires-Dist: pygithub (==1.57)
Requires-Dist: pygments (==2.14.0)
Requires-Dist: pyinquirer (==1.0.3)
Requires-Dist: pyjwt (==2.6.0)
Requires-Dist: pynacl (==1.5.0)
Requires-Dist: python-dateutil (==2.8.2)
Requires-Dist: python-dotenv (==0.19.2)
Requires-Dist: python-slugify (==6.1.1)
Requires-Dist: pyyaml (==6.0)
Requires-Dist: regex (==2022.10.31)
Requires-Dist: requests (==2.28.2)
Requires-Dist: requests-oauthlib (==1.3.1)
Requires-Dist: rsa (==4.8)
Requires-Dist: s3transfer (==0.5.2)
Requires-Dist: six (==1.16.0)
Requires-Dist: smmap (==5.0.0)
Requires-Dist: text-unidecode (==1.3)
Requires-Dist: toml (==0.10.2)
Requires-Dist: urllib3 (==1.26.8)
Requires-Dist: virtualenv (==20.13.2)
Requires-Dist: wcwidth (==0.2.6)
Requires-Dist: websocket-client (==1.3.3)
Requires-Dist: wrapt (==1.13.3)

# hmd-cli-repo

A CLI application for creating NeuronSphere compliant project repositories.

## Additional Requirements

- Git

## Basic Usage

`hmd repo create` will provide prompts to choose which Project Type Category and then Project Type you want to create.
After having selected a Project Type, you will be prompted for any additional information need to create the project, i.e. a name for the project.

After all prompts have been answered, it will render a series of templates into a folder with the Project Name.
This will be a standard Git repository and all generated files will be committed for you.

## Configuration

All configuration is done via environment variables set in an `hmd.env` file.
These variables can be set via the `hmd configure` tool.

### Required Variables

- `HMD_HOME`: a folder used to contain Local NeuronSphere specific configuration and data. The `hmd.env` file gets create in here at `$HMD_HOME/.config/hmd.env`.

### Optional Variables

- `HMD_REPO_ORG_NAME`: a common org code prefix to prepend to all create repo names.
- `HMD_REPO_REMOTE_GITHUB_ENABLED`: if set to "true", a remote repository will be created in GitHub upon running `hmd repo create`
- `HMD_GH_USERNAME`: the GitHub username to use
- `HMD_GH_PASSWORD`: the GitHub PAT to use
- `HMD_GH_ORG_NAME`: the GitHub Organization to create the repository in

## Commands

- **hmd repo create**: create a NeuronSphere compliant repository based on chosen Project Type
- **hmd repo add**: overlay a new Project Type onto an existing repository in a new branch
- **hmd repo configure**: configure `hmd-cli-repo` specific environment variables in `$HMD_HOME/.config/hmd.env`
- **hmd repo pull-all**: pull all changes and new repositories from a GitHub organization locally into `$HMD_REPO_HOME`
- **hmd repo create-remote**: create a remote repository for an existing local repo, will set `origin` remote in Git to new remote.


