wrsp

Workspace - CLI to improve DX when working with gitlab + jira

Usage no npm install needed!

<script type="module">
  import wrsp from 'https://cdn.skypack.dev/wrsp';
</script>

README

Workspace

Пакет для взаимодействия с экосистемой gitlab + jira посредством консоли.

Использование утилиты

$ wrsp -j WS-3 -m -c

Утилита найдет в jire задачу с ключем WS-3 (-j WS-3), создаст в гитлабе MR с описанием по задаче [подробнее] (-m) и создаст коммент со ссылкой на MR в задаче jira (-c). Подробнее про данный и другой функционал в разделе опции и команды.

Установка

С помощью NPM:

$ npm install wrsp -g

Конфигурация утилиты

$ wrsp c

После ввода команды в консоли нужно будет поочередно указать:

  1. Jira email - email от jira (необходимо для взаимодействия с jira api)
  2. Jira workspace name - ключ от jira (напр. для https://workspace.atlassian.net/ - workspace)
  3. Jira token - token от jira api [офиц. инструкция]
  4. Private gitlab token - token от gitlab с доступами: api и read_api [офиц. инструкция]
  5. Затем вы можете добавлять/редактировать и удалять gitlab проекты, с которыми планируете взаимодействовать посредством утилиты
    1. Если проекты уже есть, то вы можете выбрать из вариантов: continue, update, remove
    2. Add project (N) - (y/N) Если проекты еще не добавлены или нужно добавить еще один проект то вы можете добавить проект или завершить конфигурацию. Добавление проекта:
      • Gitlab project full name - полное имя проекта для утилиты (напр. workspace)
      • Gitlab project short name - короткое имя проекта (напр. w)
      • Gitlab project id - id проекта
      • Gitlab project main branch - основная ветка проекта, будет использоваться по умолчанию в качестве target branch
  6. defaultProject - проект, который будет использоваться по умолчанию (без специальной опции).

Также конфигурационный файл можно хранить отдельно в папке, из которой вы вызываете утилиту. Файл должен называться workspace.config.json.

Пример конфигурационного файла:

{
    "jira": {
        "email": "example@email.com",
        "name": "vordgi",
        "token": "your_jira_token"
    },
    "gitlab": {
        "token": "your_gitlab_token"
    },
    "gitlabProjects": [
        {
            "shortName": "pfn",
            "fullName": "project-full-name",
            "id": 11111111,
            "mainBranch": "master"
        },
        {
            "shortName": "ws",
            "fullName": "workspace",
            "id": 99999999,
            "mainBranch": "main"
        }
    ],
    "defaultProject": "workspace"
}

Опции и команды

В утилиту добавлены несколько команд, для каждой команды свои опции

wrsp -h
'--help', '-h' {Boolean} - help - view commands and args
'configure', 'c' {Boolean} - configure workspace
'save' {Boolean} - save base configuration (workspace.base.json) globally
'work' {Boolean} - work with tasks in jira and git
'report' {Boolean} - get reports

wrsp work

Команда используется по умолчания, указывать не обязательно.

wrsp work -h
'--jira-task', '-j' {String} - name of current task into jira (for ex NT-2020)
'--source-branch', '-s' {String} - source branch (by default equal with --jira-task oprion)
'--target-branch', '-t' {String} - target branch (default - "master")
'--project', '-p' {String} - full or short name of giltab project (make sure, that you add them into config)
'--merge', '-m' {Boolean} - use if you want create merge for task in gitlab
'--comment', '-c' {Boolean} - use if you want create comment with link to current mr (only with -m flag)
'--help', '-h' {Boolean} - help

Комментарии к MR

Для комментария в задаче должны быть указаны следующие поля:

creator.displayName - автор задачи

assignee.displayName - исполнитель задачи

issuetype.name - тип задачи

Сгенерированный комментарий выглядит следующим образом:

WS-3

creator: Savelyev Alexander

assignee: Savelyev Alexander

issue type: Task

Если у вас есть вопросы и пожелания относительно комментариев - пожалуйста, оставьте обратную связь в задаче.

Примеры использования:

wrsp -j WS-1

Утилита выведет в консоль ссылку на задачу и на merge request-ы.

wrsp -j WS-1 -m -t WS-1 -s WS-1_fix -c

Утилита создаст MR (-m) из ветки с ключем WS-1_fix (-s WS-1_fix) в ветку WS-1 (-t WS-1), описание к MR-у построится на основе задачи из jira с ключем WS-1 (-j WS-1). В задачу в jira добавится комментарий со ссылкой на merge (-c).

wrsp -j WS-1 -m -t main

Утилита создаст MR (-m) из ветки с ключем WS-1 (-j WS-1) в ветку main (-t main), описание к MR-у построится на основе задачи из jira с ключем WS-1 (-j WS-1).

wrsp -j NG-1 -p ng

Утилита выведет в консоль ссылку на задачу в jira и список merge request-ов у которых в качестве source branch указана ветка WS-1 (-j NG-1, опция --source-brance по умолчанию равна опции -j) для проекта, у которого в качестве краткого имени указано ng (-p ng, см. [конфигурация]).

wrsp report

Команда для получения отчетов.

wrsp report -h
'--variant', '-v' {String} - list | points
'--write', '-w' {Boolean} - write file in current folder instead logging.
'--start-date', '-s' {String} - start date (f.e. 2021-11-21, by default - exactly a month ago)
'--end-date', '-e' {String} - end date (f.e. 2021-12-21, by default - today date)
'--field', '-f' {String[]} - field key (f.e. ['summary', 'reporter.displayName'], by default - ['summary'])
'--help', '-h' {Boolean} - help

Доступные варианты: list - список выполненных задач (со статусом resolved) за последний месяц points - Количество стори поинтов в определенный период времени. (Вариант в разработке)

По умолчанию список задач логится в консиоль. При использовании опции -w - в папке, из которой вызвана утилита будет создан файл report.txt

Примеры использования:

wrsp report -v list

Утилита выведет в консоль список задач, которые были выполнены вами в последний месяц (перешли в статус resolved)

wrsp report -v list -s 2021-01-01 -e 2021-03-31 -w

Утилита создаст файл (-w) в папке, из которой были вызвана команда со списком всех задач, выполненных вами в первый квартал 2021 года (-s 2021-01-01 -e 2021-03-31).

wrsp report -v list -s 2021-01-01 -w

Утилита создаст файл (-w) в папке, из которой были вызвана команда со списком всех задач, выполненных вами в этом году (-s 2021-01-01).

wrsp report -v list -f summary -f reporter.displayName

Утилита выведет в консоль список выполненных вами задач в последний месяц с описанием (-f summary) и автором (-f reporter.displayName)

WRSP-43 Add start and end dates / Savelyev Alexander
WRSP-44 Add fields option / Savelyev Alexander
...
WRSP-80 Something / Collaborator Name

Дополнительно

Утилита находится в стадии активной разработки. Если у вас есть пожелания или возникли трудности - пожалуйста, создавайте задачи и оставляйте комментарии в задачах проекта.

Лицензия

Workspace предоставляется в соответствии с условиями лицензии MIT.