{"id":26775776,"url":"https://github.com/jjlongoria/stash-cli","last_synced_at":"2026-05-03T11:37:42.353Z","repository":{"id":65386912,"uuid":"532263040","full_name":"JJLongoria/stash-cli","owner":"JJLongoria","description":"CLI application to manage and work with Atlassian Stash. Work with your Stash project and repositories from Command lines.","archived":false,"fork":false,"pushed_at":"2022-09-21T15:02:12.000Z","size":31287,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-25T10:06:24.207Z","etag":null,"topics":["atlassian","atlassian-stash","cli","git","nodejs","oclif","stash","stash-cli","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JJLongoria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-03T13:07:39.000Z","updated_at":"2023-02-13T22:31:30.000Z","dependencies_parsed_at":"2023-01-21T13:18:29.691Z","dependency_job_id":null,"html_url":"https://github.com/JJLongoria/stash-cli","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JJLongoria","download_url":"https://codeload.github.com/JJLongoria/stash-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246135263,"owners_count":20729036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atlassian","atlassian-stash","cli","git","nodejs","oclif","stash","stash-cli","typescript"],"created_at":"2025-03-29T03:28:50.672Z","updated_at":"2025-10-27T00:17:39.586Z","avatar_url":"https://github.com/JJLongoria.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[**Stash CLI Application - BETA -**]()\n=================\n\n[![Version](https://img.shields.io/npm/v/cli-stash?logo=npm)](https://www.npmjs.com/package/cli-stash)\n[![Total Downloads](https://img.shields.io/npm/dt/cli-stash?logo=npm)](https://www.npmjs.com/package/cli-stash/core)\n[![Downloads/Month](https://img.shields.io/npm/dm/cli-stash?logo=npm)](https://www.npmjs.com/package/cli-stash)\n[![Issues](https://img.shields.io/github/issues/jjlongoria/stash-cli)](https://github.com/JJLongoria/stash-cli/issues)\n[![Known Vulnerabilities](https://snyk.io/test/github/JJLongoria/cli-stash/badge.svg)](https://snyk.io/test/github/JJLongoria/cli-stash)\n[![Code Size](https://img.shields.io/github/languages/code-size/jjlongoria/stash-cli)](https://github.com/JJLongoria/stash-cli)\n[![License](https://img.shields.io/github/license/jjlongoria/stash-cli?logo=github)](https://github.com/JJLongoria/stash-cli/blob/master/LICENSE)\n\n**CLI application** to manage and work with **Atlassian Stash**. Work with your Stash *projects* and *repositories* from Command lines. The benefits of a CLI applications are both, able to the users to **handle Stash repositories outside Stash**, and more important, can **automate** Tasks against Stash like merge pull requests for example. This tool are designed to be really easy to learn and use because group topics and commands with a semantic names.\n\n**Stash CLI** allow to any user to work with **Stash outside Stash** from a command line. Admin Stash with the Administration commands or updated your user details easy from the command line. You can Watch or Unwatch commits and pull request with a simple command, even test to merge or merge the pull request easy. Add comments to a commit or pull request or respond a command. Grant or Revoke app, project or repository permissions in a few steps and every what you want with Stash.\n\n**Automate** every task from the command line easy to make many things automatically. There are many posibilities.\n\nTo learn more or read a full documentation of the **Stash CLI Application**, go to the [**Official Documentation Site**](https://github.com/JJLongoria/stash-cli/wiki).\n\nThis CLI Application use the [**Stash Connector**](https://github.com/JJLongoria/stash-connector) library to connect and work with stash. \n\nSupported Operative Systems:\n- Windows\n- Linux\n- Mac OS X\n\nNow Stil in BETA Version because is not fully tested.\n\n--- \n\n- [**Stash CLI Application - BETA -**](#stash-cli-application---beta--)\n- [**Installation Guide**](#installation-guide)\n  - [**NPM**](#npm)\n  - [**Windows Standalone**](#windows-standalone)\n- [**Usage**](#usage)\n- [**CLI Responses**](#cli-responses)\n  - [**StashCLIResponse\u003cT\u003e**](#stashcliresponset)\n  - [**StashCLIError**](#stashclierror)\n  - [**StashCLIErrorData**](#stashclierrordata)\n- [**Paginated API**](#paginated-api)\n  - [**Pagination Flags**](#pagination-flags)\n- [**CLI Output Format**](#cli-output-format)\n  - [**Table**](#table)\n  - [**JSON**](#json)\n  - [**CSV**](#csv)\n- [**Core CLI Commands**](#core-cli-commands)\n  - [**`stash help [COMMAND]`**](#stash-help-command)\n  - [**`stash update`**](#stash-update)\n  - [**`stash commands`**](#stash-commands)\n  - [**`stash plugins`**](#stash-plugins)\n  - [**`stash plugins:install PLUGIN...`**](#stash-pluginsinstall-plugin)\n  - [**`stash plugins:inspect PLUGIN...`**](#stash-pluginsinspect-plugin)\n  - [**`stash plugins:link PLUGIN`**](#stash-pluginslink-plugin)\n  - [**`stash plugins:uninstall PLUGIN...`**](#stash-pluginsuninstall-plugin)\n- [**Main CLI Topics**](#main-cli-topics)\n  - [**Auth**](#auth)\n  - [**Admin**](#admin)\n  - [**App**](#app)\n  - [**Groups**](#groups)\n  - [**Hooks**](#hooks)\n  - [**Logs**](#logs)\n  - [**Markup**](#markup)\n  - [**Profile**](#profile)\n  - [**Projects**](#projects)\n  - [**Repos**](#repos)\n  - [**Tasks**](#tasks)\n  - [**User**](#user)\n- [**JSON Objects Schemes**](#json-objects-schemes)\n  - [**AddGroupInput**](#addgroupinput)\n  - [**AddUsersInput**](#addusersinput)\n  - [**ApplicationProperties**](#applicationproperties)\n  - [**Avatar**](#avatar)\n  - [**Branch**](#branch)\n  - [**ChangePasswordInput**](#changepasswordinput)\n  - [**ChangeUserPasswordInput**](#changeuserpasswordinput)\n  - [**ClusterOutput**](#clusteroutput)\n  - [**ClusterNode**](#clusternode)\n  - [**ClusterAddress**](#clusteraddress)\n  - [**Comment**](#comment)\n  - [**CommentAnchor**](#commentanchor)\n  - [**CommentInput**](#commentinput)\n  - [**Commit**](#commit)\n  - [**CommitDiff**](#commitdiff)\n  - [**CommitDiffHunk**](#commitdiffhunk)\n  - [**CommitDiffHunk**](#commitdiffhunk-1)\n  - [**CommitDiffLine**](#commitdiffline)\n  - [**CommitDiffOutput**](#commitdiffoutput)\n  - [**CreateUserInput**](#createuserinput)\n  - [**FilePath**](#filepath)\n  - [**ForkRepoInput**](#forkrepoinput)\n  - [**HookDetails**](#hookdetails)\n  - [**HookInput**](#hookinput)\n  - [**HookOutput**](#hookoutput)\n  - [**Group**](#group)\n  - [**Instance**](#instance)\n  - [**License**](#license)\n  - [**LicenseStatus**](#licensestatus)\n  - [**Line**](#line)\n  - [**Link**](#link)\n  - [**LinkRef**](#linkref)\n  - [**Logger**](#logger)\n  - [**MailHostConfiguration**](#mailhostconfiguration)\n  - [**Participant**](#participant)\n  - [**ParticipantInput**](#participantinput)\n  - [**PermittedOutput**](#permittedoutput)\n  - [**PermissionGroups**](#permissiongroups)\n  - [**PermissionUsersOutput**](#permissionusersoutput)\n  - [**PermissionUserOutput**](#permissionuseroutput)\n  - [**Project**](#project)\n  - [**ProjectInput**](#projectinput)\n  - [**PullRequest**](#pullrequest)\n  - [**PullRequestActivity**](#pullrequestactivity)\n  - [**PullRequestActivityChanges**](#pullrequestactivitychanges)\n  - [**PullRequestInput**](#pullrequestinput)\n  - [**PullRequestRef**](#pullrequestref)\n  - [**PullRequestRefInput**](#pullrequestrefinput)\n  - [**PullRequestVeto**](#pullrequestveto)\n  - [**PullRequestUpdateInput**](#pullrequestupdateinput)\n  - [**Repository**](#repository)\n  - [**RepoChangesOutput**](#repochangesoutput)\n  - [**UpdateRepoInput**](#updaterepoinput)\n  - [**TagOutput**](#tagoutput)\n  - [**Task**](#task)\n  - [**TaskInput**](#taskinput)\n  - [**TaskCountOutput**](#taskcountoutput)\n  - [**User**](#user-1)\n  - [**UserInput**](#userinput)\n\n\n# [**Installation Guide**]()\n\n## [**NPM**]()\n\nInstallation with NPM manager is, at the moment, the unique way to install Stash CLI on Linux and MacOs systems. \n\nInstall Node JS on your computer:\n\nTo install NodeJS on Windows systems go to [Node JS Webpage](https://nodejs.org/) and download the latest version for Windows.\n\nTo install NodeJS on Linux systems go to [\"Installing Node.js via package manager\"](https://nodejs.org/en/download/package-manager/) and choose the correct option according your linux system.\n\nWith NodeJS installed on your system, now open a terminal (CMD, Bash, Power Shell...) and run the next command:\n\n    npm install -g cli-stash\n\n## [**Windows Standalone**]()\n\nIf you don't want to install NPM on your windows system to install Stash CLI, can download the installer and install it without node on windows systemas.\n\n  - [**Windows x64**](https://github.com/JJLongoria/stash-cli/raw/main/installers/stash-cli_win_x64.exe)\n\n# [**Usage**]()\n```sh-session\n$ stash COMMAND [args] [flags]\nrunning command...\n\n$ stash --help [COMMAND]\n...\n```\n\n# [**CLI Responses**]()\n\nAll commands **except Core CLI Commands** return the same response JSON Object for a better reponse handling and standarization. The JSON response definition is the next:\n\n## [**StashCLIResponse\u003cT\u003e**]()\n\n```js\n{\n\tstatus: 0 | -1 = 0;\t\t// Returned status. 0 OK, -1 KO\n\tmessage?: string;\t\t// General execution status message\n\tresult?: T;\t\t\t\t// Response data when status is 0. (Not all Ok responses return data)\n\terror?: StashCLIError;\t// Error data when status is -1.\n}\n```\n\nThe **`StashCLIResponse`** `result` property has **Generic type** (`T`), that means the result can be of any type defined in [**JSON Objects Schemes**](#json-objects-schemes) or primitive types likes `string` or `string[]` among others.\n\n## [**StashCLIError**]()\n\nThe **`StashCLIResponse`** object contains the `StashCLIError` on `error` property to return the errors data. This object has the next definition:\n\n```js\n{\n\tstatusCode?: number;\t\t\t// The status code of execution\n    status?: string;\t\t\t\t// The error status\n    statusText?: string;\t\t\t// The error status text\n    errors?: StashCLIErrorData[];\t// Error details\n}\n```\n\n## [**StashCLIErrorData**]()\n\nThe error object **`StashCLIError`** has a collection of errors with detailed error data, the JSON object is the next:\n\n```js\n{\n\tcontext?: string;\t\t// Context of the error\n    message: string;\t\t// Error message\n    exceptionName: string;\t// Error exception name\n}\n```\n\n\n# [**Paginated API**]()\n\nThe **Stash API Rest** work with **paginated results**, this means that the most of list commands return a **`Page\u003cT\u003e`** whith a collection of values of the requested data types. For example, when retrieve projects, get a **`Page\u003cProject\u003e`** with the paginated values.\n\nThe **`Page\u003cT\u003e`** object has the page data, size, limit and next page start among other data to use the paginated API. \n\n```ts\n{\n    size: number;               // The page size\n    limit: number;              // The page limit\n    isLastPage: boolean;     \t// True if is the last page, false in otherwise\n    values: T[];               \t// Returned values collection.\n    start: number;              // First page record\n    filter?: any;               // Page filter\n    nextPageStart?: number;     // First record of the next page\n}\n```\n\n**IMPORTANT**: If more than one page exists (i.e. the response contains \"isLastPage\": false), the response object will also contain a **nextPageStart** attribute which must be used by the client as the start parameter on the next request. Identifiers of adjacent objects in a page may not be contiguous, so the start of the next page is not necessarily the start of the last page plus the last page's size. A client should always use **nextPageStart** to avoid unexpected results from a paged API.\n\n## [**Pagination Flags**]()\n\nAll commands that support paginations (the most of list commands) has the same flags to support and user the paginated api, this flags are listed below:\n| Name      | flag      | Type          | Description                                                                  |\n| --------- | --------- | ------------- | ---------------------------------------------------------------------------- |\n| **All**   | `--all`   | [`Boolean`]() | Return all records on the same page (instead paginate results)               |\n| **Limit** | `--limit` | [`Integer`]() | Indicates how many results to return per page                                |\n| **Start** | `--start` | [`Integer`]() | Indicates which item should be used as the first item in the page of results |\n\n# [**CLI Output Format**]()\n\nThe Stash CLI support to return the output in different formats, CSV, JSON and Table. All commands support the JSON Output. All commands that return data into the `result` property support Table and CSV outputs. All commands that support tables, support also CSV output.\n\n## [**Table**]()\n\nIs the standard output if not select any other type, this is the best human readable response. All commands that support CSV output, support tables output too. To many commands has the `--extended` flag. This flag is for show more columns on the tables (By default, not show all columns in many commands).\n\n## [**JSON**]()\n\nIs the most complete response and the best to work with the command, but is not human readable like a table. The flag to return a JSON output is `--json`\n\n## [**CSV**]()\n\nTo many commands support to format the output as JSON (the same with output as table). This response contains the same information of an extended table but in different format. The flag to format as csv is `--csv`.\n\n\n# [**Core CLI Commands**]()\n\n## **`stash help [COMMAND]`**\n\nDisplay help for Stash CLI.\n\n```\nUSAGE\n  $ stash help [COMMAND] [-n]\n\nARGUMENTS\n  COMMAND  Command to show help for.\n\nFLAGS\n  -n, --nested-commands  Include all nested commands in the output.\n\nDESCRIPTION\n  Display help for stash.\n```\n\n## **`stash update`**\n\nUpdate the Stash CLI.\n\n```\nUSAGE\n  $ stash update [CHANNEL] [-a] [-v \u003cvalue\u003e | -i] [--force]\n\nFLAGS\n  -a, --available        Install a specific version.\n  -i, --interactive      Interactively select version to install. This is ignored if a channel is provided.\n  -v, --version=\u003cvalue\u003e  Install a specific version.\n  --force                Force a re-download of the requested version.\n\nDESCRIPTION\n  Update the Stash CLI\n\nEXAMPLES\n  Update to the stable channel:\n\n    $ stash update stable\n\n  Update to a specific version:\n\n    $ stash update --version 1.0.0\n\n  Interactively select version:\n\n    $ stash update --interactive\n\n  See available versions:\n\n    $ stash update --available\n```\n\n## **`stash commands`**\n\nList all the commands\n\n```\nUSAGE\n  $ stash commands [--json] [-h] [--hidden] [--tree] [--columns \u003cvalue\u003e | -x] [--sort \u003cvalue\u003e] [--filter \u003cvalue\u003e] [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]\n\nFLAGS\n  -h, --help         Show CLI help.\n  -x, --extended     show extra columns\n  --columns=\u003cvalue\u003e  only show provided columns (comma-separated)\n  --csv              output is csv format [alias: --output=csv]\n  --filter=\u003cvalue\u003e   filter property by partial string matching, ex: name=foo\n  --hidden           show hidden commands\n  --no-header        hide table header from output\n  --no-truncate      do not truncate output to fit screen\n  --output=\u003coption\u003e  output in a more machine friendly format\n                     \u003coptions: csv|json|yaml\u003e\n  --sort=\u003cvalue\u003e     property to sort by (prepend '-' for descending)\n  --tree             show tree of commands\n\nGLOBAL FLAGS\n  --json  Format output as json.\n\nDESCRIPTION\n  List all the commands\n```\n\n## **`stash plugins`**\n\nList installed plugins.\n\n```\nUSAGE\n  $ stash plugins [--core]\n\nFLAGS\n  --core  Show core plugins.\n\nDESCRIPTION\n  List installed plugins.\n\nEXAMPLES\n  $ stash plugins\n```\n\n\n## **`stash plugins:install PLUGIN...`**\n\nInstalls a plugin into the CLI.\n\n```\nUSAGE\n  $ stash plugins:install PLUGIN...\n\nARGUMENTS\n  PLUGIN  Plugin to install.\n\nFLAGS\n  -f, --force    Run yarn install with force flag.\n  -h, --help     Show CLI help.\n  -v, --verbose\n\nDESCRIPTION\n  Installs a plugin into the CLI.\n\n  Can be installed from npm or a git url.\n\n  Installation of a user-installed plugin will override a core plugin.\n\n  e.g. If you have a core plugin that has a \"hello\" command, installing a user-installed plugin with a \"hello\" command\n  will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in\n  the CLI without the need to patch and update the whole CLI.\n\nALIASES\n  $ stash plugins add\n\nEXAMPLES\n  $ stash plugins:install myplugin \n\n  $ stash plugins:install https://github.com/someuser/someplugin\n\n  $ stash plugins:install someuser/someplugin\n```\n\n## **`stash plugins:inspect PLUGIN...`**\n\nDisplays installation properties of a plugin.\n\n```\nUSAGE\n  $ stash plugins:inspect PLUGIN...\n\nARGUMENTS\n  PLUGIN  [default: .] Plugin to inspect.\n\nFLAGS\n  -h, --help     Show CLI help.\n  -v, --verbose\n\nDESCRIPTION\n  Displays installation properties of a plugin.\n\nEXAMPLES\n  $ stash plugins:inspect myplugin\n```\n\n## **`stash plugins:link PLUGIN`**\n\nLinks a plugin into the CLI for development.\n\n```\nUSAGE\n  $ stash plugins:link PLUGIN\n\nARGUMENTS\n  PATH  [default: .] path to plugin\n\nFLAGS\n  -h, --help     Show CLI help.\n  -v, --verbose\n\nDESCRIPTION\n  Links a plugin into the CLI for development.\n\n  Installation of a linked plugin will override a user-installed or core plugin.\n\n  e.g. If you have a user-installed or core plugin that has a \"hello\" command, installing a linked plugin with a \"hello\"\n  command will override the user-installed or core plugin implementation. This is useful for development work.\n\nEXAMPLES\n  $ stash plugins:link myplugin\n```\n\n## **`stash plugins:uninstall PLUGIN...`**\n\nRemoves a plugin from the CLI.\n\n```\nUSAGE\n  $ stash plugins:uninstall PLUGIN...\n\nARGUMENTS\n  PLUGIN  plugin to uninstall\n\nFLAGS\n  -h, --help     Show CLI help.\n  -v, --verbose\n\nDESCRIPTION\n  Removes a plugin from the CLI.\n\nALIASES\n  $ stash plugins unlink\n  $ stash plugins remove\n```\n\nRemoves a plugin from the CLI.\n\n```\nUSAGE\n  $ stash plugins:uninstall PLUGIN...\n\nARGUMENTS\n  PLUGIN  plugin to uninstall\n\nFLAGS\n  -h, --help     Show CLI help.\n  -v, --verbose\n\nDESCRIPTION\n  Removes a plugin from the CLI.\n\nALIASES\n  $ stash plugins unlink\n  $ stash plugins remove\n```\n\n\n# [**Main CLI Topics**]()\n\nThe [**Stash CLI Application**]() has to many commands to handle all Stash features. All commands are grouped in **topics**, any many topics has **subtopics** to better organization of commands (and better to learn and understand).\n\nThe main topics are listed below.\n\n## [**Auth**]()\n\nTopic with all auth related matters like **list** authorized **stash instances** and **login** and **logout** from Stash instances. \n\n## [**Admin**]()\n\nTopic to work with all administration related tasks like **Create groups** or **users**, **grant** or **revoke** general **permissions**, get or update de **license**, manage the **mail server** or see the Stash **clusters**\n\n## [**App**]()\n\nTopic to view the **application properties**\n\n## [**Groups**]()\n\nTopic to **search groups** on Stash. To create or manage groups use the [**Admin groups commands (admin:groups:...)**](#admin).\n\n## [**Hooks**]()\n\nTopic to work with **Hook's Avatars**. To work with Hooks (list, update...) use the [**Project Repo settings (projects:repos:settings:hooks...)**](#projects).\n\n## [**Logs**]()\n\nTopic with all matters related to the Stash **Logs** like **view** or **change** **log levels** from any logger, including root logger.\n\n## [**Markup**]()\n\nTopic to **preview as HTML** (and save) **markdown files** (or markdown content). \n\n## [**Profile**]()\n\nTopic with all profile commands. **List** all **recent viewed repositories** by the logged user.\n\n## [**Projects**]()\n\nThe **bigger topic** of Stash CLI because contains all commands to work with the **Stash Projects**. You can *create*, *update* *delete*... any **project**, can work with **project repositories**, make **pull request** to any branch for any repository, **list** *commits*, *changes*, handle **project** and **repository** **permissions** and to much more.\n\nAlso can work with personal repository if use the user slug like **\"~userSlug\"** instead the prokect key on all commands that support it on the **--project** flag.\n\n## [**Repos**]()\n\nThis topic contains operations to **search repositories**, to work with repositories, use [**Project Repository commands (projects:repos:settings:hooks...)**](#projects).\n\n## [**Tasks**]()\n\nTopic to work with **Tasks** like *create*, *update*, *list* or *delete*.\n\n## [**User**]()\n\nTopic with all commands related to **the users** (and the **logged user**). List or search users or update information about the logged user like details or avatar.\n\n\n# [**JSON Objects Schemes**]()\n\nAll JSON Schemes used by the Stash CLI application as response or data input are listed bellow.\n\n**Schema definition**:\n```json\n{\n  \"FieldName\": \"FieldType\", // Required field\n  \"FieldName?\": \"FieldType\", // Optional field\n}\n```\n---\n## [**AddGroupInput**]()\n```json\n{\n    \"user\": \"string\",\n    \"groups\": \"string[]\",\n}\n```\n---\n## [**AddUsersInput**]()\n```json\n{\n    \"group\": \"string\",\n    \"users\": \"string[]\",\n}\n```\n---\n## [**ApplicationProperties**]()\n```json\n{\n  \"version\": \"string\",\n  \"buildNumber\": \"number\",\n  \"buildDate\": \"number\",\n  \"displayName\": \"string\",\n}\n```\n---\n## [**Avatar**]()\n```json\n{\n    \"type\": \"string\",\n    \"content\": \"string\",\n}\n```\n---\n## [**Branch**]()\n```json\n{\n    \"id\": \"string\",\n    \"displayId\": \"string\",\n    \"latestChangeset\": \"string\",\n    \"latestCommit\": \"string\",\n    \"isDefault\": \"boolean\",\n}\n```\n---\n## [**ChangePasswordInput**]()\n```json\n{\n    \"password\": \"string\",\n    \"passwordConfirm\": \"string\",\n    \"name\": \"string\",\n}\n```\n---\n## [**ChangeUserPasswordInput**]()\n```json\n{\n    \"password\": \"string\",\n    \"passwordConfirm\": \"string\",\n    \"oldPassword\": \"string\",\n}\n```\n---\n## [**ClusterOutput**]()\n```json\n{\n    \"localNode\": \"ClusterNode\",\n    \"nodes\": \"ClusterNode[]\",\n    \"running\": \"boolean\",\n}\n```\n- See [`ClusterNode`](#clusternode) Definition\n\n---\n## [**ClusterNode**]()\n\n```json\n{\n    \"id\": \"string\",\n    \"name\": \"string\",\n    \"address\": \"ClusterAddress\",\n    \"local\": \"boolean\",\n}\n```\n- See [`ClusterAddress`](#clusteraddress) Definition\n\n---\n## [**ClusterAddress**]()\n```json\n{\n    \"hostName\": \"string\",\n    \"port\": \"number\",\n}\n```\n---\n## [**Comment**]()\n```json\n{\n    \"properties\": \"{ [key: string]: string }\",\n    \"id\": \"number\",\n    \"version\": \"number\",\n    \"text\": \"string\",\n    \"author\": \"User\",\n    \"createdDate\": \"number\",\n    \"updatedDate\": \"number\",\n    \"comments\": \"Comment\"[],\n    \"attributes\": \"{ [key: string]: string }\",\n    \"tasks\": \"{ [key: string]: string }\",\n    \"permittedOperations\": {\n        \"editable\": \"boolean\",\n        \"deletable\": \"boolean\",\n    }\n}\n```\n- See [`User`](#user) Definition\n\n---\n## [**CommentAnchor**]()\n```json\n{\n    \"fromHash?\": \"string\",\n    \"toHash?\": \"string\",\n    \"line?\": \"number\",\n    \"lineType?\": \"'ADDED' | 'REMOVED' | 'CONTEXT'\",\n    \"fileType?\": \"'FROM' | 'TO'\",\n    \"path?\": \"string\",\n    \"srcPath?\": \"string\",\n    \"orphaned?\": \"boolean\",\n}\n```\n- See [`User`](#user) Definition\n\n---\n## [**CommentInput**]()\n```json\n{\n    \"text\": \"string\",\n    \"parent?\": \"string\",\n    \"commentAnchor?\": \"CommentAnchor\"\n}\n```\n- See [`commentAnchor`](#commentanchor) Definition\n- See [`User`](#user) Definition\n\n---\n## [**Commit**]()\n```json\n{\n    \"id\": \"string\",\n    \"displayId\": \"string\",\n    \"author\": \"User\",\n    \"authorTimestamp\": \"number\",\n    \"message\": \"string\",\n    \"parents\": \"Commit[]\",\n    \"attributes\": \"{ [key: string]: string }\",\n}\n```\n- See [`User`](#user) Definition\n\n---\n## [**CommitDiff**]()\n```json\n{\n    \"source\": \"FilePath\",\n    \"destination\": \"FilePath\",\n    \"hunks\": \"CommitDiffHunk[]\",\n    \"truncated\": \"boolean\",\n}\n```\n- See [`FilePath`](#filepath) Definition\n- See [`CommitDiffHunk`](#commitdiffhunk) Definition\n\n---\n## [**CommitDiffHunk**]()\n```json\n{\n    \"sourceLine\": \"number\",\n    \"sourceSpan\": \"number\",\n    \"destinationLine\": \"number\",\n    \"destinationSpan\": \"number\",\n    \"segments\": \"CommitDiffHunkSegment[]\",\n    \"truncated\": \"boolean\",\n}\n```\n- See [`CommitDiffHunkSegment`](#commitdiffhunksegment) Definition\n\n---\n## [**CommitDiffHunk**]()\n```json\n{\n    \"type\": \"string\",\n    \"lines\": \"CommitDiffLine[]\",\n    \"truncated\": \"boolean\",\n}\n```\n- See [`CommitDiffLine`](#commitdiffline) Definition\n\n## [**CommitDiffLine**]()\n```json\n{\n    \"destination\": \"number\",\n    \"source\": \"number\",\n    \"line\": \"string\",\n    \"truncated\": \"boolean\",\n}\n```\n\n---\n## [**CommitDiffOutput**]()\n```json\n{\n    \"diffs\": \"CommitDiff[]\",\n}\n```\n- See [`CommitDiff`](#commitdiff) Definition\n\n---\n## [**CreateUserInput**]()\n```json\n{\n    \"name\": \"string\",\n    \"password\": \"string\",\n    \"displayName\": \"string\",\n    \"emailAddress\": \"string\",\n    \"addToDefaultGroup\": \"boolean\",\n    \"notify\": \"string\",\n}\n```\n---\n## [**FilePath**]()\n```json\n{\n    \"components\": \"string[]\",\n    \"parent\": \"string\",\n    \"name\": \"string\",\n    \"extension\": \"string\",\n    \"toString\": \"string\",\n}\n```\n---\n## [**ForkRepoInput**]()\n```json\n{\n    \"slug?\": \"string\",\n    \"name?\": \"string\",\n    \"project?\": {\n        \"key\": \"string\",\n    },\n}\n```\n---\n## [**HookDetails**]()\n```json\n{\n    \"key\": \"string\",\n    \"name\": \"string\",\n    \"type\": \"'PRE_RECEIVE' | 'POST_RECEIVE'\",\n    \"description\": \"string\",\n    \"version\": \"string\",\n    \"configFormKey?\": \"string\",\n}\n```\n---\n## [**HookInput**]()\n```json\n{\n    \"details\": \"HookDetails\",\n    \"enabled\": \"boolean\",\n    \"configured\": \"boolean\",\n}\n```\n- See [`HookDetails`](#hookdetails) Definition\n\n---\n## [**HookOutput**]()\n```json\n{\n    \"details\": \"HookDetails\",\n    \"enabled\": \"boolean\",\n    \"configured\": \"boolean\",\n}\n```\n- See [`HookDetails`](#hookdetails) Definition\n\n---\n## [**Group**]()\n```json\n{\n    \"name\": \"string\",\n    \"deletable\": \"boolean\",\n}\n```\n---\n## [**Instance**]()\n```json\n{\n    \"alias\": \"string\",\n    \"host\": \"string\",\n    \"token\": \"string\",\n}\n```\n---\n## [**License**]()\n```json\n{\n    \"creationDate\": \"number\",\n    \"purchaseDate\": \"number\",\n    \"expiryDate\": \"number\",\n    \"numberOfDaysBeforeExpiry\": \"number\",\n    \"maintenanceExpiryDate\": \"number\",\n    \"numberOfDaysBeforeMaintenanceExpiry\": \"number\",\n    \"gracePeriodEndDate\": \"number\",\n    \"numberOfDaysBeforeGracePeriodExpiry\": \"number\",\n    \"maximumNumberOfUsers\": \"number\",\n    \"unlimitedNumberOfUsers\": \"boolean\",\n    \"serverId\": \"string\",\n    \"supportEntitlementNumber\": \"string\",\n    \"license\": \"string\",\n    \"status\": \"LicenseStatus\",\n}\n```\n- See [`LicenseStatus`](#licensestatus) Definition\n\n---\n## [**LicenseStatus**]()\n```json\n{\n    \"serverId\": \"string\",\n    \"currentNumberOfUsers\": \"number\",\n}\n```\n---\n## [**Line**]()\n```json\n{\n    \"text\": \"string\",\n}\n```\n---\n## [**Link**]()\n```json\n{\n    \"url\": \"string\",\n    \"rel\": \"string\",\n}\n```\n---\n## [**LinkRef**]()\n```json\n{\n    \"href\": \"string\",\n}\n```\n---\n## [**Logger**]()\n```json\n{\n    \"logLevel\": \"'TRACE' | 'DEBUG' | 'INFO' | 'WARN ' | 'ERROR'\",\n}\n```\n---\n## [**MailHostConfiguration**]()\n```json\n{\n    \"hostname\": \"string\",\n    \"port\": \"number\",\n    \"protocol\": \"string\",\n    \"use-start-tls\": \"boolean\",\n    \"require-start-tls\": \"boolean\",\n    \"username\": \"string\",\n    \"sender-address\": \"string\",\n}\n```\n---\n## [**Participant**]()\n```json\n{\n    \"user\": \"User\",\n    \"role\": \"'AUTHOR' | 'REVIEWER' | 'PARTICIPANT'\",\n    \"approved\": \"boolean\",\n}\n```\n- See [`User`](#user) Definition\n\n---\n## [**ParticipantInput**]()\n```json\n{\n    \"user\": {\n      \"name\": \"string\",\n    },\n    \"role\": \"'AUTHOR' | 'REVIEWER' | 'PARTICIPANT'\"\n}\n```\n---\n## [**PermittedOutput**]()\n```json\n{\n    \"permitted\": \"boolean\",\n}\n```\n---\n## [**PermissionGroups**]()\n```json\n{\n    \"group\": \"User\",\n    \"permission\": \"'LICENSED_USER' | 'PROJECT_CREATE' | 'ADMIN' | 'SYS_ADMIN' | 'PROJECT_READ' | 'PROJECT_WRITE' | 'REPO_READ' | 'REPO_WRITE' | 'REPO_ADMIN'\",\n}\n```\n- See [`Group`](#group) Definition\n\n---\n## [**PermissionUsersOutput**]()\n```json\n{\n    \"user\": \"User\",\n    \"permission\": \"'LICENSED_USER' | 'PROJECT_CREATE' | 'ADMIN' | 'SYS_ADMIN' | 'PROJECT_READ' | 'PROJECT_WRITE' | 'REPO_READ' | 'REPO_WRITE' | 'REPO_ADMIN'\",\n}\n```\n## [**PermissionUserOutput**]()\n```json\n{\n    \"user\": \"User\",\n    \"deletable\": \"boolean\",\n}\n```\n- See [`User`](#user) Definition\n\n---\n## [**Project**]()\n```json\n{\n    \"key\": \"string\",\n    \"id\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"public\": \"boolean\",\n    \"type\": \"string\",\n    \"link\": \"Link\",\n    \"links\": \"{ [key: string]: LinkRef[] }\",\n}\n```\n- See [`Link`](#link) Definition.\n- See [`LinkRef`](#linkref) Definition\n\n---\n## [**ProjectInput**]()\n```json\n{\n    \"key\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"avatarFile\": \"string\",\n}\n```\n---\n## [**PullRequest**]()\n```json\n{\n    \"id\": \"number\",\n    \"version\": \"number\",\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"state\": \"'ALL' | 'OPEN' | 'DECLINED' | 'MERGED'\",\n    \"open\": \"boolean\",\n    \"closed\": \"boolean\",\n    \"canMerge\": \"boolean\",\n    \"conflicted\": \"boolean\",\n    \"vetoes\": \"PullRequestVeto[]\",\n    \"createdDate\": \"number\",\n    \"updatedDate\": \"number\",\n    \"fromRef\": \"PullRequestRef\",\n    \"toRef\": \"PullRequestRef\",\n    \"locked\": \"boolean\",\n    \"author\": \"Participant\",\n    \"reviewers\": \"Participant[]\",\n    \"participants\": \"Participant[]\",\n}\n```\n- See [`PullRequestVeto`](#pullrequestveto) Definition.\n- See [`PullRequestRef`](#pullrequestref) Definition.\n- See [`Participant`](#participant) Definition.\n\n---\n## [**PullRequestActivity**]()\n```json\n{\n    \"id\": \"number\",\n    \"createdDate\": \"number\",\n    \"user\": \"User\",\n    \"action\": \"string\",\n    \"commentAction?\": \"string\",\n    \"comment?\": \"Comment\",\n    \"commentAnchor?\": \"CommentAnchor\",\n    \"fromHash?\": \"string\",\n    \"previousFromHash?\": \"string\",\n    \"previousToHash?\": \"string\",\n    \"toHash?\": \"string\",\n    \"added?\": \"PullRequestActivityChanges\",\n    \"removed?\": \"PullRequestActivityChanges\",\n}\n```\n- See [`User`](#user) Definition.\n- See [`Comment`](#comment) Definition.\n- See [`CommentAnchor`](#commentanchor) Definition.\n- See [`PullRequestActivityChanges`](#pullrequestactivitychanges) Definition.\n\n---\n## [**PullRequestActivityChanges**]()\n```json\n{\n    \"changesets?\": \"Commit[]\",\n    \"commits?\": \"Commi[]\",\n    \"total\": \"number\",\n}\n```\n- See [`Commit`](#commit) Definition.\n\n---\n## [**PullRequestInput**]()\n```json\n{\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"state\": \"'ALL' | 'OPEN' | 'DECLINED' | 'MERGED'\",\n    \"open?\": \"boolean\",\n    \"closed?\": \"boolean\",\n    \"fromRef\": \"PullRequestInputRef\",\n    \"toRef\": \"PullRequestInputRef\",\n    \"locked?\": \"boolean\",\n    \"reviewers?\": \"ParticipantInput[]\",\n}\n```\n- See [`PullRequestInputRef`](#pullrequestrefinput) Definition.\n- See [`ParticipantInput`](#participantinput) Definition.\n\n---\n## [**PullRequestRef**]()\n```json\n{\n    \"id\": \"string\",\n    \"repository\": \"Repository\",\n}\n```\n- See [`Repository`](#repository) Definition.\n\n---\n## [**PullRequestRefInput**]()\n```json\n{\n    \"id\": \"string\",\n    \"repository\": {\n      \"slug\": \"string\",\n      \"project\": {\n          \"key\": \"string\",\n      }\n    },\n}\n```\n---\n## [**PullRequestVeto**]()\n```json\n{\n    \"summaryMessage\": \"string\",\n    \"detailedMessage\": \"string\",\n}\n```\n---\n## [**PullRequestUpdateInput**]()\n```json\n{\n    \"title?\": \"string\",\n    \"description?\": \"string\",\n    \"toRef?\": \"PullRequestInputRef\",\n    \"reviewers?\": \"ParticipantInput[]\",\n}\n```\n- See [`PullRequestInputRef`](#pullrequestrefinput) Definition.\n- See [`ParticipantInput`](#participantinput) Definition.\n\n---\n## [**Repository**]()\n```json\n{\n    \"slug\": \"string\",\n    \"id\": \"string\",\n    \"name\": \"string\",\n    \"origin?\": \"Repository\",\n    \"scmId\": \"string\",\n    \"state\": \"string\",\n    \"statusMessage\": \"string\",\n    \"forkable\": \"boolean\",\n    \"project\": \"Project\",\n    \"public\": \"boolean\",\n    \"cloneUr\": \"string\",\n    \"link\": \"Link\",\n    \"links\": \"{ [key: string]: LinkRef[] }\",\n}\n```\n- See [`Project`](#projects) Definition\n- See [`Link`](#link) Definition.\n- See [`LinkRef`](#linkref) Definition\n\n---\n## [**RepoChangesOutput**]()\n```json\n{\n    \"contentId\": \"string\",\n    \"fromContentId\": \"string\",\n    \"path\": \"FilePath\",\n    \"executable\": \"boolean\",\n    \"percentUnchanged\":\" number\",\n    \"type\": \"string\",\n    \"nodeType\": \"string\",\n    \"srcPath\": \"FilePath\",\n    \"srcExecutable\": \"boolean\",\n    \"link\": \"Link\",\n    \"links\": \"{ [key: string]: LinkRef[] }\",\n}\n```\n- See [`FilePath`](#filepath) Definition\n- See [`Link`](#link) Definition.\n- See [`LinkRef`](#linkref) Definition\n\n---\n## [**UpdateRepoInput**]()\n```json\n{\n    \"slug?\": \"string\",\n    \"name?\": \"string\",\n    \"scmId?\": \"string\",\n    \"forkable?\": \"boolean\",\n    \"project?\": {\n        \"key\": \"string\",\n    },\n    \"public?\": \"boolean\",\n}\n```\n---\n## [**TagOutput**]()\n```json\n{\n    \"id\": \"string\",\n    \"displayId\": \"string\",\n    \"latestChangeset\": \"string\",\n    \"latestCommit\": \"string\",\n    \"hash\": \"string\",\n}\n```\n---\n## [**Task**]()\n```json\n{\n    \"id\": \"number\",\n    \"properties\": \"{ [key: string]: string }\",\n    \"anchor\": \"Comment\",\n    \"author\": \"User\",\n    \"createdDate\": \"number\",\n    \"permittedOperations\": {\n        \"deletable\": \"boolean\",\n        \"editable\": \"boolean\",\n        \"transitionable\": \"boolean\",\n    },\n    \"text\": \"string\",\n    \"state\": \"'OPEN' | 'RESOLVED'\",\n}\n```\n- See [`Comment`](#comment) Definition\n- See [`User`](#user) Definition\n\n## [**TaskInput**]()\n```json\n{\n    \"anchor\": {\n        \"id\": \"string\",\n        \"type\": \"string\"\n    },\n    \"text\": \"string\",\n    \"state\": \"'OPEN' | 'RESOLVED'\",\n}\n```\n---\n## [**TaskCountOutput**]()\n```json\n{\n    \"open\": \"number\",\n    \"resolved\": \"number\",\n}\n```\n---\n## [**User**]()\n```json\n{\n    \"name\": \"string\",\n    \"emailAddress\": \"string\",\n    \"id\": \"number\",\n    \"displayName\": \"string\",\n    \"active\": \"boolean\",\n    \"slug\": \"string\",\n    \"type\": \"string\",\n    \"directoryName?\": \"string\",\n    \"deletable?\": \"boolean\",\n    \"lastAuthenticationTimestamp?\": \"number\",\n    \"mutableDetails?\": \"boolean\",\n    \"mutableGroups?\": \"boolean\",\n}\n```\n---\n## [**UserInput**]()\n```json\n{\n    \"name?\": \"string\",\n    \"emailAddress?\": \"string\",\n    \"displayName?\": \"string\",\n    \"type?\": \"string\",\n    \"directoryName?\": \"string\",\n    \"deletable?\": \"boolean\",\n    \"lastAuthenticationTimestamp?\": \"number\",\n    \"mutableDetails?\": \"boolean\",\n    \"mutableGroups?\": \"boolean\",\n}\n```\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjlongoria%2Fstash-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjlongoria%2Fstash-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjlongoria%2Fstash-cli/lists"}