mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-04 21:02:35 +08:00
When an agent pastes a Linear issue URL into a private note on a
conversation, Chatwoot now links the issue to the conversation
automatically — no need to click "Link to Linear issue" first. The
standard activity message ("X linked Linear issue ABC-123") is posted
just like a manual link.
Fixes
[CW-7032](https://linear.app/chatwoot/issue/CW-7032/if-someone-post-a-linear-url-in-the-private-notes-automatically-link)
---------
Co-authored-by: Muhsin <12408980+muhsin-k@users.noreply.github.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
106 lines
1.8 KiB
Ruby
106 lines
1.8 KiB
Ruby
module Linear::Queries
|
|
TEAMS_QUERY = <<~GRAPHQL.freeze
|
|
query {
|
|
teams {
|
|
nodes {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
GRAPHQL
|
|
|
|
def self.team_entities_query(team_id)
|
|
<<~GRAPHQL
|
|
query {
|
|
users {
|
|
nodes {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
projects {
|
|
nodes {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
workflowStates(
|
|
filter: { team: { id: { eq: "#{team_id}" } } }
|
|
) {
|
|
nodes {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
issueLabels(
|
|
filter: { team: { id: { eq: "#{team_id}" } } }
|
|
) {
|
|
nodes {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
GRAPHQL
|
|
end
|
|
|
|
def self.search_issue(term)
|
|
<<~GRAPHQL
|
|
query {
|
|
searchIssues(term: #{Linear::Mutations.graphql_value(term)}) {
|
|
nodes {
|
|
id
|
|
title
|
|
description
|
|
identifier
|
|
url
|
|
state {
|
|
name
|
|
color
|
|
}
|
|
}
|
|
}
|
|
}
|
|
GRAPHQL
|
|
end
|
|
|
|
def self.linked_issues(url)
|
|
<<~GRAPHQL
|
|
query {
|
|
attachmentsForURL(url: "#{url}") {
|
|
nodes {
|
|
id
|
|
title
|
|
issue {
|
|
id
|
|
identifier
|
|
title
|
|
description
|
|
priority
|
|
createdAt
|
|
url
|
|
assignee {
|
|
name
|
|
avatarUrl
|
|
}
|
|
state {
|
|
name
|
|
color
|
|
}
|
|
labels {
|
|
nodes{
|
|
id
|
|
name
|
|
color
|
|
description
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
GRAPHQL
|
|
end
|
|
end
|