Я работаю над слабым ботом, который отправляет прямое сообщение пользователям из проекта Jira с назначенными им задачами, которые еще предстоит выполнить. Я использую Jira- Ruby gem для извлечения всех данных из Jira.
В соответствии с документами gem я настроил соединение Jira:
def project_board(project_key)
client = JIRA::Client.new(options)
client.Project.find(project_key)
end
И я создал метод для получения только назначенных билетов, которые не имеют done
статуса
def fetch_data
project = project_board
project.issues.map do |issue|
next unless issue.fields.dig('status', 'name') != 'Done' && !issue.fields.dig('assignee', 'name').nil?
{
key: issue.key,
name: issue.fields.dig('assignee', 'name'),
status: issue.fields.dig('status', 'name')
}
end.compact
end
, который дал мне массив хэшей:
=> [{:key=>"48", :name=>"john.john1", :status=>"Waiting for DevOps"},
{:key=>"46", :name=>"john.john3", :status=>"In Progress"},
{:key=>"45", :name=>"eric.forman", :status=>"Waiting for DevOps"},
{:key=>"42", :name=>"john.john3", :status=>"Waiting for DevOps"},
{:key=>"40", :name=>"john.john3", :status=>"Waiting for DevOps"},
{:key=>"39", :name=>"eric.forman", :status=>"Waiting for DevOps"}]
Как передать эти данные к слабому сообщению, чтобы оно выглядело как ниже?
message to john.john1
"Hi john.john1, here is the list of your today tasks:
-------------------------------------------
48 - With status: Waiting for DevOps
link https://company_name.atlassian.net/48
"
message to eric.forman:
"Hi eric.forman, here is the list of your today tasks:
-------------------------------------------
id: 45
status: Waiting for DevOps
link: https://company_name.atlassian.net/45
-------
id: 39
status: Waiting for DevOps
link: https://company_name.atlassian.net/45
"
et c.