Отправить почту пользователю, если количество открытых вопросов превышает определенный лимит - PullRequest
0 голосов
/ 27 мая 2019

как я могу создать рабочий процесс, который при каждом изменении текущего пользователя выпуска проверяет общее количество открытых проблем для этого пользователя, и если сумма больше, скажем, 5 пользователь получает сообщение с небольшим предупреждением?

Полагаю, это близко к моей теме, но только близко: https://youtrack -support.jetbrains.com / Нс / EN-US / сообщество / сообщения / 206582955-Как-на-кол-пользователь s-issues-

У всех наших пользователей есть почта в вашем треке, однако рабочий процесс должен работать только для одной группы пользователей / проекта.

Спасибо и всего наилучшего

1 Ответ

2 голосов
/ 31 мая 2019

Как считать проблемы пользователя? иллюстрирует подход, который действителен для старого рабочего процесса.Для нового рабочего процесса JavaScript я предлагаю вам использовать метод search для получения всех открытых вопросов, назначенных нужному пользователю.Затем вы можете использовать метод user.notify , чтобы отправить электронное письмо этому пользователю.Общую информацию о рабочем процессе JavaScript можно найти в статье Краткое руководство по рабочему процессу JavaScript *1008*.Надеюсь, это поможет.Вот пример, который иллюстрирует, как отправить пользователю сообщение с назначенным счетчиком проблем:

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var search = require('@jetbrains/youtrack-scripting-api/search');

exports.rule = entities.Issue.onChange({
  title: 'Assignee count',
  guard: function(ctx) {
    return ctx.issue.isChanged(ctx.Assignee) && ctx.issue.fields.Assignee;
  },
  action: function(ctx) {
    var issue = ctx.issue;

    var user = issue.fields.Assignee;
    var query = 'for: ' + user.login + ' #Unresolved';
    var assignedToUser = search.search(issue.project, query, ctx.currentUser);

    var count = assignedToUser.size;
    var subj = 'Attention!';
    var body = 'You have ' + count + ' assigned issues';
    user.notify(subj, body);
  },
  requirements: {
    Assignee: {
      type: entities.User.fieldType
    }
  }
});
...