{"id":26775758,"url":"https://github.com/jjlongoria/stash-connector","last_synced_at":"2026-05-02T05:40:23.395Z","repository":{"id":58735577,"uuid":"531275373","full_name":"JJLongoria/stash-connector","owner":"JJLongoria","description":"Module to handle and work with Atlassian Stash projects and repositories throug REST API. Admin your repositories and projects in Stash easy. This project is not an Atlassian official project but use the Atlassian Stash REST API","archived":false,"fork":false,"pushed_at":"2022-09-21T14:57:49.000Z","size":245,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T22:37:35.847Z","etag":null,"topics":["atlassian","atlassian-rest-api","atlassian-stash","git","nodej","rest-api","stash","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":"CHANGELOG.md","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-08-31T22:11:11.000Z","updated_at":"2022-08-31T22:13:38.000Z","dependencies_parsed_at":"2023-01-18T16:20:51.956Z","dependency_job_id":null,"html_url":"https://github.com/JJLongoria/stash-connector","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJLongoria%2Fstash-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JJLongoria","download_url":"https://codeload.github.com/JJLongoria/stash-connector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246135248,"owners_count":20729033,"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-rest-api","atlassian-stash","git","nodej","rest-api","stash","typescript"],"created_at":"2025-03-29T03:28:46.045Z","updated_at":"2026-05-02T05:40:23.367Z","avatar_url":"https://github.com/JJLongoria.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [**Atlassian Stash Connector - BETA -**]()\n\n[![Version](https://img.shields.io/npm/v/stash-connector?logo=npm)](https://www.npmjs.com/package/stash-connector)\n[![Total Downloads](https://img.shields.io/npm/dt/stash-connector?logo=npm)](https://www.npmjs.com/package/stash-connector/core)\n[![Downloads/Month](https://img.shields.io/npm/dm/stash-connector?logo=npm)](https://www.npmjs.com/package/stash-connector)\n[![Issues](https://img.shields.io/github/issues/jjlongoria/stash-connector)](https://github.com/JJLongoria/stash-connector/issues)\n[![Known Vulnerabilities](https://snyk.io/test/github/JJLongoria/stash-connector/badge.svg)](https://snyk.io/test/github/JJLongoria/stash-connector)\n[![Code Size](https://img.shields.io/github/languages/code-size/jjlongoria/stash-connector)](https://github.com/JJLongoria/stash-connector)\n[![License](https://img.shields.io/github/license/jjlongoria/stash-connector?logo=github)](https://github.com/JJLongoria/stash-connector/blob/master/LICENSE)\n\n**Atlassian Stash Connector** is a library to work, handle and manage all features and options from any Atlassian Stash project or repository. Developed in TypeScipts to make it more robuts and easy to use. \n\nThe library is designed to make this use really easy. All endpoints and operations are grouped and named to make it more semantic and easy to understand.\n\nTo learn and get more information about the [**Stash Connector**]() library, all its features and how to use any operation, go to the [**Official Stash Connector Documentation**](https://github.com/JJLongoria/stash-connector/wiki).\n\n**Atlassian Stash Connector** implement all REST API Endpoints to has a full controls of the *Stash Projects*, including peronal projects. To see all Atlassian Stash endpoints and operations, visit the [**Oficial Stash REST API Documentation**](https://docs.atlassian.com/DAC/rest/stash/3.11.3/stash-rest.html)\n\nThis is **not an Official Atlassian Project** but *use and work* with the **Atlassian Official REST API** developed for Stash.\n\nNow Stil in BETA Version because is not fully tested.\n\n# [**Usage**]()\n\n```js\n// Import Stash Connector package\nimport { StashConnector } from 'stash-connector';\n\n// Instance the connector with the Stash URL and User credentials\nconst connector = new StashConnector({\n    user: '\u003cStashUserName\u003e',\n    password: '\u003cStashPassword\u003e',\n    host: '\u003cStashURLHost\u003e',\n});\n\n// Use the connector...\nconnector.admin...\nconnector.projects...\nconnector.groups...\nconnector.users...\nconnector.markup...\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\nexport class Page\u003cT\u003e {\n    size: number = 0;               // The page size\n    limit: number = 0;              // The page limit\n    isLastPage: boolean = true;     // True if is the last page, false in otherwise\n    values: T[] = [];               // Returned values collection.\n    start: number = 0;              // First page record\n    filter?: any;                   // Page filter\n    nextPageStart?: number = 0;     // 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\nAll operations that support pagination, has a `PageOptions` object as input to set the page options to the method execution and get the desired results. (In many cases, the `PageOptions` is a property of another input data object with more data).\n\n```ts\nexport interface PageOptions {\n    limit?: number;     // Indicates how many results to return per page \n    start?: number;     // Indicates which item should be used as the first item in the page of results\n}\n```\n\n# [**Endpoints and Features**]()\n\nBelow you can see the main endpoints and operations that have the Stash REST API with a description of the feature or group. To get more information about all operations from **Stash Connector**, go to the [**Official Stash Connector Documentation**](https://github.com/JJLongoria/stash-connector/wiki).\n\nAll endpoints are grouped based on resource root, for example, all routes from `/rest/api/1.0/admin/` are grouped on [**Administration**](#administration) section or the routes from `/rest/api/1.0/projects` are grouped on [**Projects**](#projects) Section.\n\n## [**Administration**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/admin/*`. \n\nThis group contains 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## [**Application Properties**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/application-properties/*`. \n\nGroup with operations to get the **Application Properties**\n\n## [**Groups**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/groups/*`. \n\nGorup with operations to **search groups** on Stash. To create or manage groups use the [**Admin groups operations**](#administration).\n\n## [**Hooks**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/hooks/*`. \n\nGroup to work with **Hook's avatars**. o work with Hooks (list, update...) use the [**Project Repo settings operations**](#project)\n\n## [**Logs**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/logs/*`. \n\nThis group contains all operations related with **Stash Logs** like **get** or **change** *log leves* from any logger, including root logger.\n\n## [**Markup**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/markup/*`. \n\nGroup with operations to **preview Markdown** content as HTML. \n\n## [**Profile**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/profile/*`. \n\nIn this group can found operations to get the **recently viewed repositories**\n\n## [**Projects**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/projects/*`.\n\nThe **bigger group** of Stash Connector because contains all operations 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. Also can work with **personal repositories**\n\n## [**Repos**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/repos/*`.\n\nGroup with operations to **search stash repositories**. To work with repositories, use [**Project Repository operations**](#projects).\n\n## [**Tasks**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/tasks/*`.\n\nThe group with the operations to work with **Tasks** like *create*, *update*, *list* or *delete* any task.\n\n## [**Users**]()\n\nSection with all endpoints and operation from `/rest/api/1.0/users/*`.\n\nGroup with all operations related to **the users** (and the **logged user**). List or search users or update information about the logged user like details or avatar.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjlongoria%2Fstash-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjlongoria%2Fstash-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjlongoria%2Fstash-connector/lists"}