@sentry/junior-github 0.135.0 → 0.136.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.
@@ -70,6 +70,8 @@ var GITHUB_PULL_REQUEST_EVENTS = [
70
70
  "pull_request.checks.failed",
71
71
  "pull_request.checks.recovered",
72
72
  "pull_request.comment.created",
73
+ "pull_request.opened",
74
+ "pull_request.ready_for_review",
73
75
  "pull_request.review.approved",
74
76
  "pull_request.review.changes_requested",
75
77
  "pull_request.review.commented",
@@ -80,6 +82,7 @@ var GITHUB_PULL_REQUEST_EVENTS = [
80
82
  var GITHUB_PULL_REQUEST_SUGGESTED_EVENTS = [
81
83
  "pull_request.checks.failed",
82
84
  "pull_request.comment.created",
85
+ "pull_request.ready_for_review",
83
86
  "pull_request.review.changes_requested",
84
87
  "pull_request.review.commented",
85
88
  "pull_request.review_comment.created",
@@ -139,6 +142,7 @@ function gitHubRepositorySubscribable(input) {
139
142
  ...gitHubRepositoryResource(input),
140
143
  suggestedEvents: [
141
144
  "issue.opened",
145
+ "pull_request.opened",
142
146
  ...GITHUB_ISSUE_SUGGESTED_EVENTS,
143
147
  ...GITHUB_PULL_REQUEST_SUGGESTED_EVENTS
144
148
  ],
@@ -499,10 +503,15 @@ function normalizePullRequestReviewEvent(deliveryId, body) {
499
503
  var pullRequestWebhookSchema = z.object({
500
504
  action: z.string(),
501
505
  pull_request: z.object({
506
+ body: z.string().optional().nullable(),
502
507
  closed_at: z.string().optional().nullable(),
508
+ created_at: z.string().optional(),
509
+ draft: z.boolean().optional(),
503
510
  merged: z.boolean().optional(),
504
511
  merged_at: z.string().optional().nullable(),
505
- number: z.number()
512
+ number: z.number(),
513
+ title: z.string().optional(),
514
+ updated_at: z.string().optional()
506
515
  }),
507
516
  repository: repositorySchema
508
517
  });
@@ -511,28 +520,86 @@ function providerTime(value) {
511
520
  const parsed = Date.parse(value);
512
521
  return Number.isFinite(parsed) ? parsed : void 0;
513
522
  }
523
+ function pullRequestEventText(pullRequest) {
524
+ const parts = [
525
+ pullRequest.title ? `Title: ${pullRequest.title}` : void 0,
526
+ pullRequest.body?.trim() || void 0
527
+ ].filter((part) => part !== void 0);
528
+ return parts.length > 0 ? parts.join("\n\n") : void 0;
529
+ }
530
+ function pullRequestLifecycleEvents(input) {
531
+ return pullRequestTargets(
532
+ {
533
+ eventKey: gitHubEventKey(input.deliveryId, input.eventType),
534
+ eventType: input.eventType,
535
+ occurredAtMs: input.occurredAtMs,
536
+ identifier: input.resource.identifier,
537
+ ...input.terminal ? { terminal: true } : {},
538
+ trustedSummary: input.trustedSummary,
539
+ ...input.untrustedText ? { untrustedText: input.untrustedText } : {}
540
+ },
541
+ input.repo
542
+ );
543
+ }
514
544
  function normalizePullRequestEvent(deliveryId, body) {
515
545
  const parsed = pullRequestWebhookSchema.safeParse(body);
516
- if (!parsed.success || parsed.data.action !== "closed") return [];
517
- const eventType = parsed.data.pull_request.merged ? "pull_request.merged" : "pull_request.closed_unmerged";
546
+ if (!parsed.success) return [];
518
547
  const repo = parsed.data.repository.full_name;
519
548
  const resource = gitHubPullRequestResource({
520
549
  number: parsed.data.pull_request.number,
521
550
  repo
522
551
  });
523
- return pullRequestTargets(
524
- {
525
- eventKey: gitHubEventKey(deliveryId, eventType),
526
- eventType,
527
- occurredAtMs: providerTime(
528
- parsed.data.pull_request.merged ? parsed.data.pull_request.merged_at : parsed.data.pull_request.closed_at
529
- ) ?? Date.now(),
530
- identifier: resource.identifier,
531
- terminal: true,
532
- trustedSummary: eventType === "pull_request.merged" ? `${resource.label} was merged.` : `${resource.label} was closed without being merged.`
533
- },
534
- repo
535
- );
552
+ const untrustedText = pullRequestEventText(parsed.data.pull_request);
553
+ if (parsed.data.action === "opened") {
554
+ const openedAtMs = providerTime(parsed.data.pull_request.created_at) ?? Date.now();
555
+ const events = pullRequestLifecycleEvents({
556
+ deliveryId,
557
+ eventType: "pull_request.opened",
558
+ occurredAtMs: openedAtMs,
559
+ repo,
560
+ resource,
561
+ trustedSummary: `${resource.label} was opened.`,
562
+ untrustedText
563
+ });
564
+ if (parsed.data.pull_request.draft !== true) {
565
+ events.push(
566
+ ...pullRequestLifecycleEvents({
567
+ deliveryId,
568
+ eventType: "pull_request.ready_for_review",
569
+ occurredAtMs: openedAtMs,
570
+ repo,
571
+ resource,
572
+ trustedSummary: `${resource.label} is ready for review.`,
573
+ untrustedText
574
+ })
575
+ );
576
+ }
577
+ return events;
578
+ }
579
+ if (parsed.data.action === "ready_for_review") {
580
+ return pullRequestLifecycleEvents({
581
+ deliveryId,
582
+ eventType: "pull_request.ready_for_review",
583
+ occurredAtMs: providerTime(parsed.data.pull_request.updated_at) ?? Date.now(),
584
+ repo,
585
+ resource,
586
+ trustedSummary: `${resource.label} is ready for review.`,
587
+ untrustedText
588
+ });
589
+ }
590
+ if (parsed.data.action !== "closed") return [];
591
+ const eventType = parsed.data.pull_request.merged ? "pull_request.merged" : "pull_request.closed_unmerged";
592
+ return pullRequestLifecycleEvents({
593
+ deliveryId,
594
+ eventType,
595
+ occurredAtMs: providerTime(
596
+ parsed.data.pull_request.merged ? parsed.data.pull_request.merged_at : parsed.data.pull_request.closed_at
597
+ ) ?? Date.now(),
598
+ repo,
599
+ resource,
600
+ terminal: true,
601
+ trustedSummary: eventType === "pull_request.merged" ? `${resource.label} was merged.` : `${resource.label} was closed without being merged.`
602
+ });
536
603
  }
537
604
  var releaseWebhookSchema = z.object({
538
605
  action: z.string(),
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  gitHubReleaseSourceSubscribable,
14
14
  gitHubRepositorySubscribable,
15
15
  normalizeGitHubResourceEvents
16
- } from "./chunk-6XR7J3LQ.js";
16
+ } from "./chunk-AI2A6UER.js";
17
17
 
18
18
  // src/plugin.ts
19
19
  import {
@@ -4518,6 +4518,7 @@ function githubPlugin(options = {}) {
4518
4518
  ],
4519
4519
  suggestedEvents: [
4520
4520
  "issue.opened",
4521
+ "pull_request.opened",
4521
4522
  ...GITHUB_ISSUE_SUGGESTED_EVENTS,
4522
4523
  ...GITHUB_PULL_REQUEST_SUGGESTED_EVENTS
4523
4524
  ]
package/dist/testing.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeGitHubResourceEvents
3
- } from "./chunk-6XR7J3LQ.js";
3
+ } from "./chunk-AI2A6UER.js";
4
4
  export {
5
5
  normalizeGitHubResourceEvents
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior-github",
3
- "version": "0.135.0",
3
+ "version": "0.136.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -31,7 +31,7 @@
31
31
  "@sinclair/typebox": "^0.34.49",
32
32
  "drizzle-orm": "^0.45.2",
33
33
  "zod": "^4.4.3",
34
- "@sentry/junior-plugin-api": "0.135.0"
34
+ "@sentry/junior-plugin-api": "0.136.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^25.9.1",