Skip to content

Wishez/AgroMerger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TODO

  1. Сделать настройку апи через application.conf
  2. Переделать проект на тайпскрипт

Авторизация:

gitlab: Токены для гитлаба из переменных окружения {GITLAB_AGROMARKET_ACCESS_TOKEN}, {GITLAB_DOCS_ACCESS_TOKEN}, {GITLAB_EMAILS_ACCESS_TOKEN}

jira: Из переменных окружения, строка {OLD/NEW_JIRA_USER}:{OLD/NEW_JIRA_PASSWORD} превращёная через base64 в хэш и переданный в заголовок Authentication: Basic {token}

Подготовка к запросам

В каждый запрос:

  1. В апи гитлаба подставлять хэдер с токеном: PRIVATE-TOKEN: {ACCESS_TOKEN}
  2. В апи jira подставлять токен бэсик авторизации Authentication: Basic {base64('${OLD/NEW_JIRA_USER}:${OLD/NEW_JIRA_PASSWORD}')}
  3. В апи бота телеги подставлять хедер Content-Type: application/json

Псевдо реализация

  1. Получить версии тикетов
  1. Получить готовые к мержу задачки
  1. Отфильтровать версии готовых к мержу тикетов (из пункта 4а) по актуальной версии релиза (пункт 3б)

  2. Пройтись по каждой задачке, которую требуется смержить для релиза

}

ЕСЛИ невозможно ребейзнуть {

Отправить нотификацию в телегу разрабу (составить справочник никнеймов телеги по никнеймам в гитлабе)
Дока: https://core.telegram.org/bots/api#sendmessage
Апи: POST https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage


Content-Type: application/json
Query string
  chat_id: developers[gitlabNickname], // string or int, @channelusername or identifier 
  text: `Боту не удалось ребейзнуть задчаку ${ticketName}. ${developerName}, ребейзни, плииз:) ${mergeRequestLink}`,

}

ИНАЧЕ {

1. Дернуть апи на мерж

  Дока: https://docs.gitlab.com/ee/api/merge_requests.html#merge-to-default-merge-ref-path
  
  Апи: PUT https://git.agro-it.team/api/v4//projects/16/merge_requests/:merge_request_iid/merge

2. Закрыть тикет

  Дока: 

    https://docs.atlassian.com/software/jira/docs/api/REST/7.11.0/#api/2/issue-doTransition

    https://community.atlassian.com/t5/Jira-questions/How-to-change-the-issue-status-by-REST-API-in-JIRA/qaq-p/850658

    Просмотр айдишников: https://jira.phoenixit.ru/rest/api/2/issue/AMPDD-638/transitions?expand=transitions.fields

  Апи: POST https://jira.phoenixit.ru/rest/api/2/issue/AMPDD-number/transitions

  BODY: 
  {
    transition: {
      id: "911", // айдишник статуса Закрыт https://jira.phoenixit.ru/rest/api/2/issue/AMPDD-638/transitions?expand=transitions.fields
    },
  }
3. Оповестить о закрытие задачи

  Дока https://core.telegram.org/bots/api#sendmessage

  Апи: POST https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage

  Content-Type: application/json

  Query string
    chat_id: {@Имя чата для оповещения смерженных задач}, // string or int, @channelusername or identifier 
    text: `
      Задача, ${ticketName} входящая в релиз v${currentReleaseVersion}, смержена.
      МР: ${mergeRequestUrl}.
      Тикет: ${ticketUrl}.`,

}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published