@activepieces/piece-github 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,14 +1,18 @@
1
1
  {
2
2
  "name": "@activepieces/piece-github",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "dependencies": {
5
5
  "@sinclair/typebox": "^0.26.3",
6
- "axios": "1.2.4",
6
+ "axios": "1.4.0",
7
+ "dayjs": "^1.11.8",
8
+ "is-base64": "^1.1.0",
7
9
  "nanoid": "^3.3.4",
8
- "@activepieces/pieces-common": "0.1.0",
9
- "@activepieces/pieces-framework": "0.4.0",
10
- "@activepieces/shared": "0.4.0",
11
- "tslib": "1.14.1"
10
+ "object-sizeof": "^2.6.3",
11
+ "semver": "7.5.4",
12
+ "@activepieces/pieces-common": "0.2.2",
13
+ "@activepieces/pieces-framework": "0.6.12",
14
+ "@activepieces/shared": "0.7.2",
15
+ "tslib": "2.6.1"
12
16
  },
13
17
  "main": "./src/index.js",
14
18
  "types": "./src/index.d.ts"
package/src/index.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.github = exports.githubAuth = void 0;
4
4
  const pieces_framework_1 = require("@activepieces/pieces-framework");
5
5
  const trigger_1 = require("./lib/trigger");
6
+ const create_issue_1 = require("./lib/actions/create-issue");
6
7
  exports.githubAuth = pieces_framework_1.PieceAuth.OAuth2({
7
- displayName: "Authentication",
8
8
  required: true,
9
9
  authUrl: 'https://github.com/login/oauth/authorize',
10
10
  tokenUrl: 'https://github.com/login/oauth/access_token',
@@ -15,7 +15,7 @@ exports.github = (0, pieces_framework_1.createPiece)({
15
15
  minimumSupportedRelease: '0.5.0',
16
16
  logoUrl: 'https://cdn.activepieces.com/pieces/github.png',
17
17
  auth: exports.githubAuth,
18
- actions: [],
18
+ actions: [create_issue_1.githubCreateIssueAction],
19
19
  authors: ['kanarelo'],
20
20
  triggers: trigger_1.githubTriggers,
21
21
  });
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pieces/github/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,2CAA+C;AAElC,QAAA,UAAU,GAAG,4BAAS,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,0CAA0C;IACnD,QAAQ,EAAE,6CAA6C;IACvD,KAAK,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,MAAM,CAAC;CAClD,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,8BAAW,EAAC;IAChC,WAAW,EAAE,QAAQ;IACjB,uBAAuB,EAAE,OAAO;IAClC,OAAO,EAAE,gDAAgD;IAC3D,IAAI,EAAE,kBAAU;IAChB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,QAAQ,EAAE,wBAAc;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pieces/github/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,2CAA+C;AAC/C,6DAAqE;AAExD,QAAA,UAAU,GAAG,4BAAS,CAAC,MAAM,CAAC;IAEvC,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,0CAA0C;IACnD,QAAQ,EAAE,6CAA6C;IACvD,KAAK,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,MAAM,CAAC;CAClD,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,8BAAW,EAAC;IAChC,WAAW,EAAE,QAAQ;IACjB,uBAAuB,EAAE,OAAO;IAClC,OAAO,EAAE,gDAAgD;IAC3D,IAAI,EAAE,kBAAU;IAChB,OAAO,EAAE,CAAC,sCAAuB,CAAC;IAClC,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,QAAQ,EAAE,wBAAc;CACzB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const githubCreateIssueAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<true, import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ repository: import("@activepieces/pieces-framework").DropdownProperty<{
3
+ repo: string;
4
+ owner: string;
5
+ }, false> | import("@activepieces/pieces-framework").DropdownProperty<{
6
+ repo: string;
7
+ owner: string;
8
+ }, true>;
9
+ title: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
+ description: import("@activepieces/pieces-framework").LongTextProperty<false>;
11
+ labels: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false> | import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, true>;
12
+ assignees: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false> | import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, true>;
13
+ }>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.githubCreateIssueAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const __1 = require("../../");
8
+ const common_1 = require("../common");
9
+ exports.githubCreateIssueAction = (0, pieces_framework_1.createAction)({
10
+ auth: __1.githubAuth,
11
+ name: 'github_create_issue',
12
+ displayName: 'Create Issue',
13
+ description: 'Create Issue in Github Repository',
14
+ props: {
15
+ repository: common_1.githubCommon.repositoryDropdown,
16
+ title: pieces_framework_1.Property.ShortText({
17
+ displayName: 'Title',
18
+ description: 'The title of the issue',
19
+ required: true,
20
+ }),
21
+ description: pieces_framework_1.Property.LongText({
22
+ displayName: 'Description',
23
+ description: 'The discription of the issue',
24
+ required: false,
25
+ }),
26
+ labels: common_1.githubCommon.labelDropDown(),
27
+ assignees: common_1.githubCommon.assigneeDropDown(),
28
+ },
29
+ run(configValue) {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ const { title, assignees, labels, description } = configValue.propsValue;
32
+ const { owner, repo } = configValue.propsValue['repository'];
33
+ const requestBody = {
34
+ title: title,
35
+ body: description,
36
+ labels: labels,
37
+ assignees: assignees,
38
+ };
39
+ const request = {
40
+ method: pieces_common_1.HttpMethod.POST,
41
+ url: `${common_1.githubCommon.baseUrl}/repos/${owner}/${repo}/issues`,
42
+ body: requestBody,
43
+ authentication: {
44
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
45
+ token: configValue.auth.access_token,
46
+ },
47
+ queryParams: {},
48
+ };
49
+ return yield pieces_common_1.httpClient.sendRequest(request);
50
+ });
51
+ },
52
+ });
53
+ //# sourceMappingURL=create-issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-issue.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/github/src/lib/actions/create-issue.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAKqC;AACrC,8BAAoC;AACpC,sCAAyC;AAE5B,QAAA,uBAAuB,GAAG,IAAA,+BAAY,EAAC;IAClD,IAAI,EAAE,cAAU;IAChB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,mCAAmC;IAChD,KAAK,EAAE;QACL,UAAU,EAAE,qBAAY,CAAC,kBAAkB;QAC3C,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC7B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,qBAAY,CAAC,aAAa,EAAE;QACpC,SAAS,EAAE,qBAAY,CAAC,gBAAgB,EAAE;KAC3C;IACK,GAAG,CAAC,WAAW;;YACnB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC;YACzE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAE,CAAC;YAE9D,MAAM,WAAW,GAA2B;gBAC1C,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,SAAS;aACrB,CAAC;YAEF,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,GAAG,qBAAY,CAAC,OAAO,UAAU,KAAK,IAAI,IAAI,SAAS;gBAC5D,IAAI,EAAE,WAAW;gBACjB,cAAc,EAAE;oBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;oBACrC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY;iBACrC;gBACD,WAAW,EAAE,EAAE;aAChB,CAAC;YACF,OAAO,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -7,6 +7,8 @@ export declare const githubCommon: {
7
7
  repo: string;
8
8
  owner: string;
9
9
  }, true>;
10
+ assigneeDropDown: (required?: boolean) => import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false> | import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, true>;
11
+ labelDropDown: (required?: boolean) => import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false> | import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, true>;
10
12
  };
11
13
  export interface GithubRepository {
12
14
  name: string;
@@ -14,3 +16,14 @@ export interface GithubRepository {
14
16
  login: string;
15
17
  };
16
18
  }
19
+ export interface GithubAssignee {
20
+ login: string;
21
+ }
22
+ export interface GithubIssueLabel {
23
+ id: string;
24
+ name: string;
25
+ }
26
+ export interface RepositoryProp {
27
+ repo: string;
28
+ owner: string;
29
+ }
@@ -5,9 +5,9 @@ const tslib_1 = require("tslib");
5
5
  const pieces_framework_1 = require("@activepieces/pieces-framework");
6
6
  const pieces_common_1 = require("@activepieces/pieces-common");
7
7
  exports.githubCommon = {
8
- baseUrl: "https://api.github.com",
8
+ baseUrl: 'https://api.github.com',
9
9
  repositoryDropdown: pieces_framework_1.Property.Dropdown({
10
- displayName: "Repository",
10
+ displayName: 'Repository',
11
11
  refreshers: [],
12
12
  required: true,
13
13
  options: ({ auth }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
@@ -15,25 +15,79 @@ exports.githubCommon = {
15
15
  return {
16
16
  disabled: true,
17
17
  options: [],
18
- placeholder: "please authenticate first"
18
+ placeholder: 'please authenticate first',
19
19
  };
20
20
  }
21
21
  const authProp = auth;
22
22
  const repositories = yield getUserRepo(authProp);
23
23
  return {
24
24
  disabled: false,
25
- options: repositories.map(repo => {
25
+ options: repositories.map((repo) => {
26
26
  return {
27
- label: repo.owner.login + "/" + repo.name,
27
+ label: repo.owner.login + '/' + repo.name,
28
28
  value: {
29
29
  owner: repo.owner.login,
30
- repo: repo.name
31
- }
30
+ repo: repo.name,
31
+ },
32
32
  };
33
- })
33
+ }),
34
34
  };
35
- })
36
- })
35
+ }),
36
+ }),
37
+ assigneeDropDown: (required = false) => pieces_framework_1.Property.MultiSelectDropdown({
38
+ displayName: 'Assignees',
39
+ description: 'Assignees for the Issue',
40
+ refreshers: ['repository'],
41
+ required,
42
+ options: ({ auth, repository }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
43
+ if (!auth || !repository) {
44
+ return {
45
+ disabled: true,
46
+ options: [],
47
+ placeholder: 'please authenticate first and select repo',
48
+ };
49
+ }
50
+ const authProp = auth;
51
+ const { owner, repo } = repository;
52
+ const assignees = yield getAssignee(authProp, owner, repo);
53
+ return {
54
+ disabled: false,
55
+ options: assignees.map((assignee) => {
56
+ return {
57
+ label: assignee.login,
58
+ value: assignee.login,
59
+ };
60
+ }),
61
+ };
62
+ }),
63
+ }),
64
+ labelDropDown: (required = false) => pieces_framework_1.Property.MultiSelectDropdown({
65
+ displayName: 'Labels',
66
+ description: 'Labels for the Issue',
67
+ refreshers: ['repository'],
68
+ required,
69
+ options: ({ auth, repository }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
70
+ if (!auth || !repository) {
71
+ return {
72
+ disabled: true,
73
+ options: [],
74
+ placeholder: 'please authenticate first and select repo',
75
+ };
76
+ }
77
+ const authProp = auth;
78
+ const { owner, repo } = repository;
79
+ const labels = yield listIssueLabels(authProp, owner, repo);
80
+ return {
81
+ disabled: false,
82
+ options: labels.map((label) => {
83
+ return {
84
+ label: label.name,
85
+ value: label.name,
86
+ };
87
+ }),
88
+ };
89
+ }),
90
+ }),
37
91
  };
38
92
  function getUserRepo(authProp) {
39
93
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -41,11 +95,45 @@ function getUserRepo(authProp) {
41
95
  method: pieces_common_1.HttpMethod.GET,
42
96
  url: `${exports.githubCommon.baseUrl}/user/repos`,
43
97
  queryParams: {
44
- per_page: '200'
98
+ per_page: '200',
99
+ },
100
+ authentication: {
101
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
102
+ token: authProp.access_token,
103
+ },
104
+ };
105
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
106
+ return response.body;
107
+ });
108
+ }
109
+ function getAssignee(authProp, owner, repo) {
110
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
111
+ const request = {
112
+ method: pieces_common_1.HttpMethod.GET,
113
+ url: `${exports.githubCommon.baseUrl}/repos/${owner}/${repo}/assignees`,
114
+ queryParams: {
115
+ per_page: '30',
116
+ },
117
+ authentication: {
118
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
119
+ token: authProp.access_token,
120
+ },
121
+ };
122
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
123
+ return response.body;
124
+ });
125
+ }
126
+ function listIssueLabels(authProp, owner, repo) {
127
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
128
+ const request = {
129
+ method: pieces_common_1.HttpMethod.GET,
130
+ url: `${exports.githubCommon.baseUrl}/repos/${owner}/${repo}/labels`,
131
+ queryParams: {
132
+ per_page: '30',
45
133
  },
46
134
  authentication: {
47
135
  type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
48
- token: authProp.access_token
136
+ token: authProp.access_token,
49
137
  },
50
138
  };
51
139
  const response = yield pieces_common_1.httpClient.sendRequest(request);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/github/src/lib/common/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA+E;AAC/E,+DAAsG;AAEzF,QAAA,YAAY,GAAG;IACxB,OAAO,EAAE,wBAAwB;IACjC,kBAAkB,EAAE,2BAAQ,CAAC,QAAQ,CAAkC;QACnE,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;oBACH,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,2BAA2B;iBAC3C,CAAA;aACJ;YACD,MAAM,QAAQ,GAAwB,IAA2B,CAAC;YAClE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO;gBACH,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC7B,OAAO;wBACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI;wBACzC,KAAK,EAAE;4BACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;4BACvB,IAAI,EAAE,IAAI,CAAC,IAAI;yBAClB;qBACJ,CAAA;gBACL,CAAC,CAAC;aACL,CAAC;QACN,CAAC,CAAA;KACJ,CAAC;CACL,CAAA;AAED,SAAe,WAAW,CAAC,QAA6B;;QACpD,MAAM,OAAO,GAAgB;YACzB,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,GAAG,EAAE,GAAG,oBAAY,CAAC,OAAO,aAAa;YACzC,WAAW,EAAE;gBACT,QAAQ,EAAE,KAAK;aAClB;YACD,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,QAAQ,CAAC,YAAY;aAC/B;SACJ,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAqB,OAAO,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/github/src/lib/common/index.ts"],"names":[],"mappings":"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"}