Skip to content

Commit d0c272f

Browse files
authored
fix(integration/linear): Add oAuth refresh token (botpress#14943)
1 parent 5275b0c commit d0c272f

20 files changed

Lines changed: 142 additions & 81 deletions

integrations/linear/definitions/states.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ export const states = {
66
type: 'integration',
77
schema: z.object({
88
accessToken: z.string().title('Access Token').describe('The access token for Linear'),
9+
refreshToken: z
10+
.string()
11+
.title('Refresh Token')
12+
.describe('The refresh token needed when the access token expires'),
913
expiresAt: z.string().title('Expires At').describe('The time when the access token expires'),
1014
}),
1115
},

integrations/linear/integration.definition.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import listable from './bp_modules/listable'
77
import { actions, channels, events, configuration, configurations, user, states, entities } from './definitions'
88

99
export const INTEGRATION_NAME = 'linear'
10-
export const INTEGRATION_VERSION = '1.3.0'
10+
export const INTEGRATION_VERSION = '2.0.0'
1111

1212
export default new IntegrationDefinition({
1313
name: INTEGRATION_NAME,

integrations/linear/src/actions/create-issue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const createIssue: bp.IntegrationProps['actions']['createIssue'] = async
1010
input: { title, description, priority, teamName, labels, project },
1111
} = args
1212

13-
const linearClient = await getLinearClient(args, ctx.integrationId)
13+
const linearClient = await getLinearClient(args)
1414

1515
const team = await getTeam(linearClient, undefined, teamName)
1616

integrations/linear/src/actions/delete-issue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import * as bp from '.botpress'
44

55
export const deleteIssue: bp.IntegrationProps['actions']['deleteIssue'] = async (args) => {
66
const {
7-
ctx,
87
input: { id: issueId },
98
} = args
10-
const linearClient = await getLinearClient(args, ctx.integrationId)
9+
10+
const linearClient = await getLinearClient(args)
1111

1212
const existingIssue = await linearClient.issue(issueId).catch((thrown) => {
1313
if (thrown instanceof LinearError && thrown.type === LinearErrorType.InvalidInput) {

integrations/linear/src/actions/find-target.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ const findIssues = async (issues: IssueConnection, targets: Target[]) => {
2323
export const findTarget: bp.IntegrationProps['actions']['findTarget'] = async (args) => {
2424
const targets: Target[] = []
2525

26-
const { input, ctx } = args
27-
const linearClient = await getLinearClient(args, ctx.integrationId)
26+
const { input } = args
27+
28+
const linearClient = await getLinearClient(args)
2829
const issues = await linearClient.issues({
2930
filter: {
3031
or: [

integrations/linear/src/actions/get-issue.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@ export const getIssueFields = (issue: Issue): z.infer<typeof issueSchema> => ({
2020

2121
export const getIssue: bp.IntegrationProps['actions']['getIssue'] = async (args) => {
2222
const {
23-
ctx,
2423
input: { issueId },
2524
} = args
26-
const linearClient = await getLinearClient(args, ctx.integrationId)
25+
const linearClient = await getLinearClient(args)
2726
const issue = await linearClient.issue(issueId)
2827

2928
return getIssueFields(issue)

integrations/linear/src/actions/get-user.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ import * as bp from '.botpress'
66

77
export const getUser: bp.IntegrationProps['actions']['getUser'] = async (args) => {
88
const {
9-
ctx,
109
input: { linearUserId },
1110
} = args
12-
const linearClient = await getLinearClient(args, ctx.integrationId)
11+
const linearClient = await getLinearClient(args)
1312
const user = linearUserId ? await linearClient.user(linearUserId) : await linearClient.viewer
1413

1514
return userProfileSchema.parse({

integrations/linear/src/actions/list-issues.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ import * as bp from '.botpress'
66

77
export const listIssues: bp.IntegrationProps['actions']['listIssues'] = async (args) => {
88
const {
9-
ctx,
109
input: { count, startCursor, startDate, teamId },
1110
} = args
12-
const linearClient = await getLinearClient(args, ctx.integrationId)
11+
const linearClient = await getLinearClient(args)
1312

1413
const query = await linearClient.issues({
1514
orderBy: LinearDocument.PaginationOrderBy.UpdatedAt,

integrations/linear/src/actions/list-states.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import * as bp from '.botpress'
44

55
export const listStates: bp.IntegrationProps['actions']['listStates'] = async (args) => {
66
const {
7-
ctx,
87
input: { count, startCursor },
98
} = args
109

11-
const linearClient = await getLinearClient(args, ctx.integrationId)
10+
const linearClient = await getLinearClient(args)
1211

1312
try {
1413
const states = await linearClient.workflowStates({ after: startCursor, first: count })

integrations/linear/src/actions/list-teams.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import * as bp from '.botpress'
33

44
export const listTeams: bp.IntegrationProps['actions']['listTeams'] = async (args) => {
55
const {
6-
ctx,
76
input: {},
87
} = args
9-
const linearClient = await getLinearClient(args, ctx.integrationId)
8+
const linearClient = await getLinearClient(args)
109
const teams = await linearClient.teams()
1110

1211
return {

0 commit comments

Comments
 (0)