@devrev/git-sdk 0.11.0 → 0.12.0

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.
Files changed (50) hide show
  1. package/dist/adapter/adapter.d.ts +2 -2
  2. package/dist/config/create-config.d.ts +7 -0
  3. package/dist/config/create-config.js +2 -0
  4. package/dist/config/create-config.js.map +1 -1
  5. package/dist/devrev/client.js +1 -1
  6. package/dist/devrev/client.js.map +1 -1
  7. package/dist/devrev/managers/code_change_manager.js +9 -15
  8. package/dist/devrev/managers/code_change_manager.js.map +1 -1
  9. package/dist/devrev/managers/code_change_schema.js +42 -29
  10. package/dist/devrev/managers/code_change_schema.js.map +1 -1
  11. package/dist/devrev/managers/tenant_fragment_manager.d.ts +18 -1
  12. package/dist/devrev/managers/tenant_fragment_manager.js +93 -4
  13. package/dist/devrev/managers/tenant_fragment_manager.js.map +1 -1
  14. package/dist/devrev/types.d.ts +4 -0
  15. package/dist/devrev/types.js.map +1 -1
  16. package/dist/handlers/commit_push_handler.js +6 -3
  17. package/dist/handlers/commit_push_handler.js.map +1 -1
  18. package/dist/handlers/helpers.d.ts +22 -0
  19. package/dist/handlers/helpers.js +36 -2
  20. package/dist/handlers/helpers.js.map +1 -1
  21. package/dist/handlers/index.d.ts +4 -1
  22. package/dist/handlers/index.js +11 -1
  23. package/dist/handlers/index.js.map +1 -1
  24. package/dist/handlers/pr_edit_handler.d.ts +35 -0
  25. package/dist/handlers/pr_edit_handler.js +259 -0
  26. package/dist/handlers/pr_edit_handler.js.map +1 -0
  27. package/dist/handlers/pr_lifecycle_handler.d.ts +19 -0
  28. package/dist/handlers/pr_lifecycle_handler.js +58 -0
  29. package/dist/handlers/pr_lifecycle_handler.js.map +1 -0
  30. package/dist/handlers/pr_merge_handler.js +10 -3
  31. package/dist/handlers/pr_merge_handler.js.map +1 -1
  32. package/dist/handlers/pr_review_handler.d.ts +4 -1
  33. package/dist/handlers/pr_review_handler.js +14 -8
  34. package/dist/handlers/pr_review_handler.js.map +1 -1
  35. package/dist/handlers/registry.d.ts +0 -2
  36. package/dist/handlers/registry.js +4 -2
  37. package/dist/handlers/registry.js.map +1 -1
  38. package/dist/handlers/types.d.ts +6 -0
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.js +8 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/orchestrator/event_orchestrator.d.ts +1 -0
  43. package/dist/orchestrator/event_orchestrator.js +3 -0
  44. package/dist/orchestrator/event_orchestrator.js.map +1 -1
  45. package/dist/types/config.d.ts +8 -0
  46. package/dist/types/events.d.ts +13 -2
  47. package/dist/types/events.js +1 -0
  48. package/dist/types/events.js.map +1 -1
  49. package/dist/types/types.d.ts +1 -0
  50. package/package.json +1 -1
@@ -14,18 +14,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TenantFragmentManager = void 0;
16
16
  const beta_devrev_sdk_1 = require("@devrev/typescript-sdk/dist/auto-generated/beta/beta-devrev-sdk");
17
+ const http_1 = require("../http");
17
18
  const types_1 = require("../types");
18
19
  const code_change_schema_1 = require("./code_change_schema");
20
+ const ALL_USERS_GROUP_IDENTIFIER = 'group-default9';
19
21
  /**
20
22
  * Manager for tenant fragment (custom schema) operations.
21
23
  */
22
24
  class TenantFragmentManager {
23
- constructor(betaApi) {
25
+ constructor(betaApi, endpoint, token) {
24
26
  this.betaApi = betaApi;
27
+ this.endpoint = endpoint;
28
+ this.token = token;
25
29
  }
26
30
  /**
27
31
  * Gets or creates the tenant fragment for code_change custom object.
28
32
  * This ensures the schema exists before any code_change objects are created.
33
+ * When a new fragment is created, grants All Users access to code_change objects.
29
34
  *
30
35
  * @returns Success status and fragment ID
31
36
  */
@@ -33,7 +38,6 @@ class TenantFragmentManager {
33
38
  var _a, _b, _c, _d;
34
39
  return __awaiter(this, void 0, void 0, function* () {
35
40
  try {
36
- // Step 1: Check if tenant fragment already exists
37
41
  const listRequest = {
38
42
  deprecated: false,
39
43
  is_custom_leaf_type: true,
@@ -43,10 +47,8 @@ class TenantFragmentManager {
43
47
  const listResponse = yield this.betaApi.customSchemaFragmentsListPost(listRequest);
44
48
  const fragmentId = (_c = (_b = (_a = listResponse.data) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.id;
45
49
  if (fragmentId) {
46
- // Fragment already exists
47
50
  return { success: true, fragmentId };
48
51
  }
49
- // Step 2: Fragment doesn't exist - create it with schema
50
52
  const setRequest = (0, code_change_schema_1.getCodeChangeSchemaSetRequest)();
51
53
  const setResponse = yield this.betaApi.customSchemaFragmentsSet(setRequest);
52
54
  const createdFragmentId = (_d = setResponse.data) === null || _d === void 0 ? void 0 : _d.id;
@@ -56,6 +58,10 @@ class TenantFragmentManager {
56
58
  error: 'Failed to create tenant fragment: ID not returned from API',
57
59
  };
58
60
  }
61
+ const accessGranted = yield this.grantAllUsersAccessToCodeChange();
62
+ if (!accessGranted) {
63
+ console.log('Warning: Failed to grant All Users access to code_change objects');
64
+ }
59
65
  return { success: true, fragmentId: createdFragmentId };
60
66
  }
61
67
  catch (error) {
@@ -63,6 +69,89 @@ class TenantFragmentManager {
63
69
  }
64
70
  });
65
71
  }
72
+ /**
73
+ * Gets the role set ID for the All Users group by listing access control entries.
74
+ */
75
+ getAllUsersRoleSet() {
76
+ var _a, _b;
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const endpoint = `${this.endpoint}/internal/access-control-entries.list`;
79
+ const payload = {
80
+ principal: [ALL_USERS_GROUP_IDENTIFIER],
81
+ principal_type: ['group'],
82
+ role_type: ['role_set'],
83
+ };
84
+ try {
85
+ const response = yield (0, http_1.postCall)(endpoint, this.token, payload);
86
+ if (!response.success) {
87
+ console.log(`Error fetching role set for All Users group: ${response.message}`);
88
+ return null;
89
+ }
90
+ const aces = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.access_control_entries) || [];
91
+ if (aces.length === 0) {
92
+ console.log(`No role set found for All Users group (${ALL_USERS_GROUP_IDENTIFIER})`);
93
+ return null;
94
+ }
95
+ return (_b = aces[0].role) === null || _b === void 0 ? void 0 : _b.id;
96
+ }
97
+ catch (error) {
98
+ console.log(`Error fetching role set for All Users group: ${(0, types_1.getErrorMessage)(error)}`);
99
+ return null;
100
+ }
101
+ });
102
+ }
103
+ /**
104
+ * Grants the All Users group access to code_change custom objects.
105
+ * Called after creating a new tenant fragment to ensure all users can
106
+ * view and interact with code_change objects.
107
+ *
108
+ * Uses a single role-sets.update call with create_roles to:
109
+ * 1. Create an OBJECT_ACCESS role with read+update privileges
110
+ * 2. Create a FIELD_ACCESS role with full field read/write access
111
+ */
112
+ grantAllUsersAccessToCodeChange() {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ try {
115
+ const roleSetId = yield this.getAllUsersRoleSet();
116
+ if (!roleSetId) {
117
+ return false;
118
+ }
119
+ const endpoint = `${this.endpoint}/internal/role-sets.update`;
120
+ const payload = {
121
+ create_roles: [
122
+ {
123
+ caveats: [],
124
+ custom_object_target: types_1.CODE_CHANGE_LEAF_TYPE,
125
+ include_all_subtypes: false,
126
+ privileges: ['read', 'update'],
127
+ target: 'custom_object',
128
+ },
129
+ {
130
+ custom_object_target: types_1.CODE_CHANGE_LEAF_TYPE,
131
+ field_privileges: {
132
+ read: { all: true },
133
+ write: { all: true },
134
+ },
135
+ include_all_subtypes: true,
136
+ target: 'custom_object',
137
+ },
138
+ ],
139
+ id: roleSetId,
140
+ roles: { remove: [] },
141
+ };
142
+ const response = yield (0, http_1.postCall)(endpoint, this.token, payload);
143
+ if (!response.success) {
144
+ console.log(`Error updating role set with code_change roles: ${response.message}`);
145
+ return false;
146
+ }
147
+ return true;
148
+ }
149
+ catch (error) {
150
+ console.log(`Error granting All Users access: ${(0, types_1.getErrorMessage)(error)}`);
151
+ return false;
152
+ }
153
+ });
154
+ }
66
155
  }
67
156
  exports.TenantFragmentManager = TenantFragmentManager;
68
157
  //# sourceMappingURL=tenant_fragment_manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant_fragment_manager.js","sourceRoot":"","sources":["../../../src/devrev/managers/tenant_fragment_manager.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAEH,qGAGyE;AAEzE,oCAAkE;AAClE,6DAAqE;AAarE;;GAEG;AACH,MAAa,qBAAqB;IAGhC,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACG,6BAA6B;;;YACjC,IAAI;gBACF,kDAAkD;gBAClD,MAAM,WAAW,GAAqC;oBACpD,UAAU,EAAE,KAAK;oBACjB,mBAAmB,EAAE,IAAI;oBACzB,SAAS,EAAE,CAAC,6BAAqB,CAAC;oBAClC,KAAK,EAAE,CAAC,0CAAwB,CAAC,cAAc,CAAC;iBACjD,CAAC;gBAEF,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,MAAA,MAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,MAAM,0CAAG,CAAC,CAAC,0CAAE,EAAE,CAAC;gBAEtD,IAAI,UAAU,EAAE;oBACd,0BAA0B;oBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;iBACtC;gBAED,yDAAyD;gBACzD,MAAM,UAAU,GAAG,IAAA,kDAA6B,GAAE,CAAC;gBAEnD,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;gBAC1D,MAAM,iBAAiB,GAAG,MAAA,WAAW,CAAC,IAAI,0CAAE,EAAE,CAAC;gBAE/C,IAAI,CAAC,iBAAiB,EAAE;oBACtB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,4DAA4D;qBACpE,CAAC;iBACH;gBAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;aACzD;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;aAC1D;;KACF;CACF;AAnDD,sDAmDC"}
1
+ {"version":3,"file":"tenant_fragment_manager.js","sourceRoot":"","sources":["../../../src/devrev/managers/tenant_fragment_manager.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,7 @@ export declare const ISSUE_CODE_CHANGE_BACKWARD_NAME = "addresses";
79
79
  */
80
80
  export interface CodeChangeCustomCreateRequest {
81
81
  title: string;
82
+ description?: string;
82
83
  source: CodeChangeSourceType;
83
84
  repo_name: string;
84
85
  source_branch: string;
@@ -89,12 +90,15 @@ export interface CodeChangeCustomCreateRequest {
89
90
  pr_created_at?: string;
90
91
  first_commit_at?: string;
91
92
  last_commit_at?: string;
93
+ source_commits?: string[];
92
94
  }
93
95
  /**
94
96
  * Request type for updating a code_change custom object.
95
97
  */
96
98
  export interface CodeChangeCustomUpdateRequest {
97
99
  id: string;
100
+ title?: string;
101
+ description?: string;
98
102
  status?: CodeChangeStatusType;
99
103
  source_commits?: string[];
100
104
  target_commits?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/devrev/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/devrev/types.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ function updateCodeChangeWithCommits(codeChange, commits, context) {
78
78
  function handlePushEvent(input, context) {
79
79
  return __awaiter(this, void 0, void 0, function* () {
80
80
  const { actor, commits, repository } = input;
81
- const { eventType, adapter } = context;
81
+ const { eventType, adapter, botActors } = context;
82
82
  const repoName = repository.name;
83
83
  // If no commits in the push, nothing to update
84
84
  if (commits.length === 0) {
@@ -90,7 +90,7 @@ function handlePushEvent(input, context) {
90
90
  // Get associated PRs using the adapter
91
91
  // Use the latest commit to find associated PRs
92
92
  const latestCommit = commits[commits.length - 1];
93
- const associatedPRs = adapter.getPullRequestByCommit(latestCommit);
93
+ const associatedPRs = yield adapter.getPullRequestByCommit(latestCommit);
94
94
  // If no associated PRs, nothing to process
95
95
  if (associatedPRs.length === 0) {
96
96
  return {
@@ -101,6 +101,9 @@ function handlePushEvent(input, context) {
101
101
  const results = [];
102
102
  for (const pr of associatedPRs) {
103
103
  try {
104
+ // Resolve the effective actor: if the event actor is a known bot,
105
+ // attribute to the PR author instead.
106
+ const effectiveActor = (0, helpers_1.resolveActorForAttribution)(actor, pr.author, botActors);
104
107
  // Get or create code_change custom object for this PR using shared helper
105
108
  const { codeChange, isNew } = yield (0, helpers_1.getOrCreateCodeChangeForPR)(pr, repoName, context);
106
109
  // Update commit fields on the code_change
@@ -109,7 +112,7 @@ function handlePushEvent(input, context) {
109
112
  // When a code_change is new, we may have already created timeline entries
110
113
  // for all historical commits via adapter.getHistoricCommitsForPullRequest
111
114
  if (!isNew) {
112
- yield (0, helpers_1.createCommitTimelineEntries)(codeChange.id, actor, commits, pr.sourceBranch.name, repoName, eventType, context);
115
+ yield (0, helpers_1.createCommitTimelineEntries)(codeChange.id, effectiveActor, commits, pr.sourceBranch.name, repoName, eventType, context);
113
116
  }
114
117
  results.push({
115
118
  message: isNew
@@ -1 +1 @@
1
- {"version":3,"file":"commit_push_handler.js","sourceRoot":"","sources":["../../src/handlers/commit_push_handler.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;AAIH,2CAIyB;AAIzB,uCAImB;AAGnB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;GAMG;AACH,SAAe,2BAA2B,CACxC,UAAwB,EACxB,OAA2B,EAC3B,OAAuB;;QAEvB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO;SACR;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEjD,wDAAwD;QACxD,MAAM,qBAAqB,GAAG,IAAA,kCAAwB,EAAC,UAAU,EAAE,wBAAgB,CAAC,eAAe,CAAC,CAAC;QAErG,uBAAuB;QACvB,MAAM,aAAa,GAAkC;YACnD,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,cAAc,EAAE,YAAY,CAAC,SAAS;YACtC,cAAc,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;SACnC,CAAC;QAEF,oDAAoD;QACpD,IAAI,CAAC,qBAAqB,EAAE;YAC1B,aAAa,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SACtD;QAED,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;CAAA;AAED,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAsB,eAAe,CACnC,KAA0B,EAC1B,OAAuB;;QAEvB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;QAEjC,+CAA+C;QAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO;gBACL,OAAO,EAAE,qCAAqC;gBAC9C,OAAO,EAAE,IAAI;aACd,CAAC;SACH;QAED,uCAAuC;QACvC,+CAA+C;QAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAEnE,2CAA2C;QAC3C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO;gBACL,OAAO,EAAE,wDAAwD;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;SACH;QAED,MAAM,OAAO,GAA6D,EAAE,CAAC;QAE7E,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;YAC9B,IAAI;gBACF,0EAA0E;gBAC1E,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,oCAA0B,EAC5D,EAAE,EACF,QAAQ,EACR,OAAO,CACR,CAAC;gBAEF,0CAA0C;gBAC1C,MAAM,2BAA2B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEhE,sEAAsE;gBACtE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,IAAA,qCAA2B,EAC/B,UAAU,CAAC,EAAE,EACb,KAAK,EACL,OAAO,EACP,EAAE,CAAC,YAAY,CAAC,IAAI,EACpB,QAAQ,EACR,SAAS,EACT,OAAO,CACR,CAAC;iBACH;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;wBACZ,CAAC,CAAC,qCAAqC,OAAO,CAAC,MAAM,UAAU;wBAC/D,CAAC,CAAC,4BAA4B,OAAO,CAAC,MAAM,UAAU;oBACxD,EAAE,EAAE,EAAE,CAAC,GAAG;oBACV,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,IAAA,uBAAe,EAAC,KAAK,CAAC;oBAC/B,EAAE,EAAE,EAAE,CAAC,GAAG;oBACV,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;aACJ;SACF;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEpD,OAAO;YACL,IAAI,EAAE,EAAE,OAAO,EAAE;YACjB,OAAO,EAAE,YAAY;gBACnB,CAAC,CAAC,sCAAsC,OAAO,CAAC,MAAM,QAAQ;gBAC9D,CAAC,CAAC,YAAY;oBACZ,CAAC,CAAC,gCAAgC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,gBAAgB;oBAC3G,CAAC,CAAC,qCAAqC,OAAO,CAAC,MAAM,QAAQ;YACjE,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC;CAAA;AAvFD,0CAuFC"}
1
+ {"version":3,"file":"commit_push_handler.js","sourceRoot":"","sources":["../../src/handlers/commit_push_handler.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,28 @@
7
7
  import { CustomObject } from '@devrev/typescript-sdk/dist/auto-generated/beta/beta-devrev-sdk';
8
8
  import { NormalizedActor, NormalizedCommit, NormalizedPullRequest } from '../types/types';
9
9
  import { HandlerContext, HandlerResult } from './types';
10
+ /**
11
+ * Checks whether an actor is a known bot based on the configured bot_actors list.
12
+ * Matches against both `username` and `external_id`.
13
+ *
14
+ * @param actor - The actor to check
15
+ * @param botActors - List of bot usernames or external IDs
16
+ * @returns true if the actor matches any entry in botActors
17
+ */
18
+ export declare function isBotActor(actor: NormalizedActor, botActors: string[]): boolean;
19
+ /**
20
+ * Resolves the effective actor for attribution purposes.
21
+ *
22
+ * When the event actor is a known bot (e.g., dependabot, renovate), this
23
+ * function returns the PR author instead so that timeline entries and
24
+ * commit attribution are credited to the human who owns the PR.
25
+ *
26
+ * @param eventActor - The actor from the event payload (may be a bot)
27
+ * @param prAuthor - The PR author to fall back to when the actor is a bot
28
+ * @param botActors - List of bot usernames or external IDs
29
+ * @returns The PR author if the event actor is a bot, otherwise the event actor
30
+ */
31
+ export declare function resolveActorForAttribution(eventActor: NormalizedActor, prAuthor: NormalizedActor, botActors: string[]): NormalizedActor;
10
32
  /**
11
33
  * Normalizes a NormalizedActor to the format required by timeline API calls.
12
34
  * Handles undefined values by converting to empty strings.
@@ -15,8 +15,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
15
15
  });
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.getOrCreateCodeChangeForPR = exports.createCommitTimelineEntries = exports.createPRTimelineEntry = exports.createPRHandlerErrorResult = exports.getCodeChangeCustomField = exports.normalizeActorForTimeline = void 0;
18
+ exports.getOrCreateCodeChangeForPR = exports.createCommitTimelineEntries = exports.createPRTimelineEntry = exports.createPRHandlerErrorResult = exports.getCodeChangeCustomField = exports.normalizeActorForTimeline = exports.resolveActorForAttribution = exports.isBotActor = void 0;
19
19
  const types_1 = require("../devrev/types");
20
+ /**
21
+ * Checks whether an actor is a known bot based on the configured bot_actors list.
22
+ * Matches against both `username` and `external_id`.
23
+ *
24
+ * @param actor - The actor to check
25
+ * @param botActors - List of bot usernames or external IDs
26
+ * @returns true if the actor matches any entry in botActors
27
+ */
28
+ function isBotActor(actor, botActors) {
29
+ if (!botActors || botActors.length === 0) {
30
+ return false;
31
+ }
32
+ return botActors.some((bot) => bot === actor.username || bot === actor.external_id);
33
+ }
34
+ exports.isBotActor = isBotActor;
35
+ /**
36
+ * Resolves the effective actor for attribution purposes.
37
+ *
38
+ * When the event actor is a known bot (e.g., dependabot, renovate), this
39
+ * function returns the PR author instead so that timeline entries and
40
+ * commit attribution are credited to the human who owns the PR.
41
+ *
42
+ * @param eventActor - The actor from the event payload (may be a bot)
43
+ * @param prAuthor - The PR author to fall back to when the actor is a bot
44
+ * @param botActors - List of bot usernames or external IDs
45
+ * @returns The PR author if the event actor is a bot, otherwise the event actor
46
+ */
47
+ function resolveActorForAttribution(eventActor, prAuthor, botActors) {
48
+ if (isBotActor(eventActor, botActors)) {
49
+ return prAuthor;
50
+ }
51
+ return eventActor;
52
+ }
53
+ exports.resolveActorForAttribution = resolveActorForAttribution;
20
54
  /**
21
55
  * Normalizes a NormalizedActor to the format required by timeline API calls.
22
56
  * Handles undefined values by converting to empty strings.
@@ -151,7 +185,7 @@ function getOrCreateCodeChangeForPR(pr, repoName, context) {
151
185
  let lastCommitAt;
152
186
  let allCommits = [];
153
187
  try {
154
- allCommits = adapter.getHistoricCommitsForPullRequest(pr);
188
+ allCommits = yield adapter.getHistoricCommitsForPullRequest(pr);
155
189
  if (allCommits.length > 0) {
156
190
  firstCommitAt = allCommits[0].timestamp;
157
191
  lastCommitAt = allCommits[allCommits.length - 1].timestamp;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/handlers/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/handlers/helpers.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,11 @@
5
5
  * DevRev code_change custom objects.
6
6
  */
7
7
  export { handlePushEvent } from './commit_push_handler';
8
- export { handlePRCreate, handlePRClose, } from './pr_create_handler';
8
+ export { handlePRCreate, handlePRClose } from './pr_create_handler';
9
+ export { handlePREdit } from './pr_edit_handler';
10
+ export { handlePRLifecycleEvent } from './pr_lifecycle_handler';
9
11
  export { handlePRReview } from './pr_review_handler';
10
12
  export { handlePRMerge } from './pr_merge_handler';
11
13
  export { DEFAULT_HANDLER_REGISTRY } from './registry';
14
+ export { isBotActor, resolveActorForAttribution } from './helpers';
12
15
  export type { EventHandler, HandlerContext, HandlerRegistry, HandlerResult, } from './types';
@@ -6,7 +6,7 @@
6
6
  * DevRev code_change custom objects.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DEFAULT_HANDLER_REGISTRY = exports.handlePRMerge = exports.handlePRReview = exports.handlePRClose = exports.handlePRCreate = exports.handlePushEvent = void 0;
9
+ exports.resolveActorForAttribution = exports.isBotActor = exports.DEFAULT_HANDLER_REGISTRY = exports.handlePRMerge = exports.handlePRReview = exports.handlePRLifecycleEvent = exports.handlePREdit = exports.handlePRClose = exports.handlePRCreate = exports.handlePushEvent = void 0;
10
10
  // Push event handler
11
11
  var commit_push_handler_1 = require("./commit_push_handler");
12
12
  Object.defineProperty(exports, "handlePushEvent", { enumerable: true, get: function () { return commit_push_handler_1.handlePushEvent; } });
@@ -14,6 +14,12 @@ Object.defineProperty(exports, "handlePushEvent", { enumerable: true, get: funct
14
14
  var pr_create_handler_1 = require("./pr_create_handler");
15
15
  Object.defineProperty(exports, "handlePRCreate", { enumerable: true, get: function () { return pr_create_handler_1.handlePRCreate; } });
16
16
  Object.defineProperty(exports, "handlePRClose", { enumerable: true, get: function () { return pr_create_handler_1.handlePRClose; } });
17
+ // PR edit handler
18
+ var pr_edit_handler_1 = require("./pr_edit_handler");
19
+ Object.defineProperty(exports, "handlePREdit", { enumerable: true, get: function () { return pr_edit_handler_1.handlePREdit; } });
20
+ // PR lifecycle handler (reopen)
21
+ var pr_lifecycle_handler_1 = require("./pr_lifecycle_handler");
22
+ Object.defineProperty(exports, "handlePRLifecycleEvent", { enumerable: true, get: function () { return pr_lifecycle_handler_1.handlePRLifecycleEvent; } });
17
23
  // PR review handler
18
24
  var pr_review_handler_1 = require("./pr_review_handler");
19
25
  Object.defineProperty(exports, "handlePRReview", { enumerable: true, get: function () { return pr_review_handler_1.handlePRReview; } });
@@ -23,4 +29,8 @@ Object.defineProperty(exports, "handlePRMerge", { enumerable: true, get: functio
23
29
  // Handler registry
24
30
  var registry_1 = require("./registry");
25
31
  Object.defineProperty(exports, "DEFAULT_HANDLER_REGISTRY", { enumerable: true, get: function () { return registry_1.DEFAULT_HANDLER_REGISTRY; } });
32
+ // Bot actor utilities
33
+ var helpers_1 = require("./helpers");
34
+ Object.defineProperty(exports, "isBotActor", { enumerable: true, get: function () { return helpers_1.isBotActor; } });
35
+ Object.defineProperty(exports, "resolveActorForAttribution", { enumerable: true, get: function () { return helpers_1.resolveActorForAttribution; } });
26
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qBAAqB;AACrB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AAExB,cAAc;AACd,yDAG6B;AAF3B,mHAAA,cAAc,OAAA;AACd,kHAAA,aAAa,OAAA;AAGf,oBAAoB;AACpB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAEtB,mBAAmB;AACnB,uCAAsD;AAA7C,oHAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qBAAqB;AACrB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AAExB,cAAc;AACd,yDAAoE;AAA3D,mHAAA,cAAc,OAAA;AAAE,kHAAA,aAAa,OAAA;AAEtC,kBAAkB;AAClB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAErB,gCAAgC;AAChC,+DAAgE;AAAvD,8HAAA,sBAAsB,OAAA;AAE/B,oBAAoB;AACpB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAEtB,mBAAmB;AACnB,uCAAsD;AAA7C,oHAAA,wBAAwB,OAAA;AAEjC,sBAAsB;AACtB,qCAAmE;AAA1D,qGAAA,UAAU,OAAA;AAAE,qHAAA,0BAA0B,OAAA"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Handler for pull request edit events.
3
+ *
4
+ * This module handles PR metadata changes — title, description, branch,
5
+ * draft status, and reviewer assignments. It updates the code_change
6
+ * custom object and re-diffs issue links based on the updated PR content.
7
+ *
8
+ * Reviewer updates are handled via three possible inputs:
9
+ * - addRequestedReviewer / removeRequestedReviewer: a single actor to add or remove.
10
+ * - pullRequest.requestedReviewers: the complete set of currently requested reviewers.
11
+ * - A combination of both: the final set is computed by applying the single
12
+ * add/remove to the full list, then diffing against the existing code_change.
13
+ */
14
+ import { NormalizedPullRequestEditEvent } from '../types/events';
15
+ import { HandlerContext, HandlerResult } from './types';
16
+ /**
17
+ * Process a pull request edit event.
18
+ *
19
+ * If the code_change is newly created (isNew=true), no further updates are
20
+ * needed since getOrCreateCodeChangeForPR already sets all initial data and
21
+ * creates issue links.
22
+ *
23
+ * For existing code_changes, the handler will:
24
+ * 1. Update title/description if they differ
25
+ * 2. Handle draft status: draft→ready (WAITING_FOR_REVIEW) or ready→draft (DRAFT)
26
+ * 3. Resolve requested reviewers per the combined logic:
27
+ * - requestedReviewers + add/remove: compute final list, diff vs existing
28
+ * - Only add/remove: use add_requested_reviewer / remove_requested_reviewer
29
+ * - Only requestedReviewers: diff vs existing (add new, remove stale)
30
+ * 4. Re-diff issue links
31
+ *
32
+ * No separate timeline entry is created — attribute changes generate timeline
33
+ * entries via DevRev's change tracking.
34
+ */
35
+ export declare function handlePREdit(input: NormalizedPullRequestEditEvent, context: HandlerContext): Promise<HandlerResult>;