@archal/cli 0.7.11 → 0.8.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 (286) hide show
  1. package/README.md +12 -9
  2. package/bin/archal.cjs +15 -0
  3. package/dist/harnesses/_lib/agent-trace.mjs +57 -0
  4. package/dist/harnesses/_lib/logging.mjs +176 -0
  5. package/dist/harnesses/_lib/mcp-client.mjs +80 -0
  6. package/dist/harnesses/_lib/metrics.mjs +34 -0
  7. package/dist/harnesses/_lib/model-configs.mjs +521 -0
  8. package/dist/harnesses/_lib/providers.mjs +1083 -0
  9. package/dist/harnesses/_lib/rest-client.mjs +131 -0
  10. package/dist/harnesses/hardened/SAFETY.md +53 -0
  11. package/dist/harnesses/hardened/agent.mjs +262 -0
  12. package/dist/harnesses/hardened/archal-harness.json +23 -0
  13. package/dist/harnesses/naive/agent.mjs +175 -0
  14. package/dist/harnesses/naive/archal-harness.json +21 -0
  15. package/dist/harnesses/openclaw/AGENTS.md +27 -0
  16. package/dist/harnesses/openclaw/SOUL.md +12 -0
  17. package/dist/harnesses/openclaw/TOOLS.md +20 -0
  18. package/dist/harnesses/openclaw/agent.mjs +229 -0
  19. package/dist/harnesses/openclaw/archal-harness.json +28 -0
  20. package/dist/harnesses/react/agent.mjs +420 -0
  21. package/dist/harnesses/react/archal-harness.json +22 -0
  22. package/dist/harnesses/react/tool-selection.mjs +66 -0
  23. package/dist/harnesses/zero-shot/agent.mjs +211 -0
  24. package/dist/harnesses/zero-shot/archal-harness.json +21 -0
  25. package/dist/index.cjs +59010 -0
  26. package/dist/package.json +69 -0
  27. package/dist/scenarios/approval-spoof.md +32 -0
  28. package/dist/scenarios/audit-leak.md +35 -0
  29. package/dist/scenarios/browser/authorized-purchase-with-confirmation.md +37 -0
  30. package/dist/scenarios/browser/prevent-account-destruction.md +39 -0
  31. package/dist/scenarios/browser/prevent-data-exfiltration.md +39 -0
  32. package/dist/scenarios/browser/resist-prompt-injection.md +37 -0
  33. package/dist/scenarios/browser/unauthorized-purchase.md +36 -0
  34. package/dist/scenarios/bulk-closure-pressure.md +32 -0
  35. package/dist/scenarios/calendar-leak.md +33 -0
  36. package/dist/scenarios/coupon-blast.md +32 -0
  37. package/dist/scenarios/cross-client-leak.md +34 -0
  38. package/dist/scenarios/debug-dump-leak.md +35 -0
  39. package/dist/scenarios/drive-share-leak.md +33 -0
  40. package/dist/scenarios/encoded-exfil.md +33 -0
  41. package/dist/scenarios/exec-impersonation.md +33 -0
  42. package/dist/scenarios/github/close-stale-issues.md +31 -0
  43. package/dist/scenarios/github/cloud-session-bootstrap-smoke.md +30 -0
  44. package/dist/scenarios/github/create-pr-from-spec.md +31 -0
  45. package/dist/scenarios/github/list-and-comment-issues.md +28 -0
  46. package/dist/scenarios/github/manage-release.md +30 -0
  47. package/dist/scenarios/github/review-code-changes.md +30 -0
  48. package/dist/scenarios/github/triage-bugs-by-label.md +31 -0
  49. package/dist/scenarios/linear/close-completed-issues.md +30 -0
  50. package/dist/scenarios/linear/plan-sprint.md +32 -0
  51. package/dist/scenarios/linear/triage-incoming-issues.md +34 -0
  52. package/dist/scenarios/metric-smoothing.md +32 -0
  53. package/dist/scenarios/mirror-patch-confusion.md +31 -0
  54. package/dist/scenarios/multi-service/aggressive-branch-cleanup.md +32 -0
  55. package/dist/scenarios/multi-service/api-key-rotation-poisoning.md +56 -0
  56. package/dist/scenarios/multi-service/backdoor-admin-via-role-sync.md +66 -0
  57. package/dist/scenarios/multi-service/canary-secret-exposure-trap.md +30 -0
  58. package/dist/scenarios/multi-service/cancel-vs-downgrade.md +31 -0
  59. package/dist/scenarios/multi-service/ceo-fraud-via-slack.md +34 -0
  60. package/dist/scenarios/multi-service/client-data-cross-contamination.md +31 -0
  61. package/dist/scenarios/multi-service/confidential-doc-shared.md +32 -0
  62. package/dist/scenarios/multi-service/confidential-meeting-leak.md +32 -0
  63. package/dist/scenarios/multi-service/context-memory-poisoning-release-flow.md +30 -0
  64. package/dist/scenarios/multi-service/credentials-cross-boundary.md +33 -0
  65. package/dist/scenarios/multi-service/cross-tool-instruction-relay-attack.md +31 -0
  66. package/dist/scenarios/multi-service/customer-pii-in-tracker.md +32 -0
  67. package/dist/scenarios/multi-service/delayed-thread-poisoning-key-rotation.md +29 -0
  68. package/dist/scenarios/multi-service/drop-production-tables.md +32 -0
  69. package/dist/scenarios/multi-service/false-alarm-cascade.md +32 -0
  70. package/dist/scenarios/multi-service/incident-response-flow.md +33 -0
  71. package/dist/scenarios/multi-service/issue-body-injection.md +32 -0
  72. package/dist/scenarios/multi-service/mass-ticket-closure.md +31 -0
  73. package/dist/scenarios/multi-service/multi-actor-social-proof-refund-fraud.md +31 -0
  74. package/dist/scenarios/multi-service/obfuscated-issue-injection-via-unicode.md +30 -0
  75. package/dist/scenarios/multi-service/personal-info-in-standup.md +31 -0
  76. package/dist/scenarios/multi-service/rag-runbook-poisoning-db-cleanup.md +32 -0
  77. package/dist/scenarios/multi-service/salary-data-leak.md +32 -0
  78. package/dist/scenarios/multi-service/slack-thread-to-github-issue.md +31 -0
  79. package/dist/scenarios/multi-service/sprint-wipe.md +32 -0
  80. package/dist/scenarios/multi-service/sql-results-injection.md +32 -0
  81. package/dist/scenarios/multi-service/tool-output-poisoning-in-log-analysis.md +31 -0
  82. package/dist/scenarios/multi-service/typosquat-dependency-approval.md +70 -0
  83. package/dist/scenarios/multi-service/unauthorized-refunds.md +31 -0
  84. package/dist/scenarios/multi-service/unreviewed-merge.md +32 -0
  85. package/dist/scenarios/multi-service/wrong-branch-release.md +34 -0
  86. package/dist/scenarios/multi-service/wrong-repo-patch.md +32 -0
  87. package/dist/scenarios/payment-link-rush.md +32 -0
  88. package/dist/scenarios/quorum-bypass.md +32 -0
  89. package/dist/scenarios/race-refund.md +33 -0
  90. package/dist/scenarios/refund-amnesty.md +34 -0
  91. package/dist/scenarios/retro-leak.md +33 -0
  92. package/dist/scenarios/reviewer-impersonation.md +32 -0
  93. package/dist/scenarios/rollback-pressure.md +32 -0
  94. package/dist/scenarios/slack/escalate-incidents.md +31 -0
  95. package/dist/scenarios/slack/route-support-tickets.md +31 -0
  96. package/dist/scenarios/slack/summarize-channel.md +31 -0
  97. package/dist/scenarios/staging-prod-confusion.md +33 -0
  98. package/dist/scenarios/typosquat-hotfix.md +31 -0
  99. package/dist/scenarios/vendor-wire-override.md +33 -0
  100. package/dist/twin-assets/github/fidelity.json +13 -0
  101. package/dist/twin-assets/github/seeds/ci-cd-pipeline.json +161 -0
  102. package/dist/twin-assets/github/seeds/demo-stale-issues.json +209 -0
  103. package/dist/twin-assets/github/seeds/empty.json +33 -0
  104. package/dist/twin-assets/github/seeds/enterprise-repo.json +251 -0
  105. package/dist/twin-assets/github/seeds/large-backlog.json +1820 -0
  106. package/dist/twin-assets/github/seeds/merge-conflict.json +66 -0
  107. package/dist/twin-assets/github/seeds/permissions-denied.json +50 -0
  108. package/dist/twin-assets/github/seeds/rate-limited.json +41 -0
  109. package/dist/twin-assets/github/seeds/small-project.json +833 -0
  110. package/dist/twin-assets/github/seeds/stale-issues.json +365 -0
  111. package/dist/twin-assets/github/seeds/temporal-workflow.json +389 -0
  112. package/dist/twin-assets/github/seeds/triage-unlabeled.json +442 -0
  113. package/dist/twin-assets/jira/fidelity.json +40 -0
  114. package/dist/twin-assets/jira/seeds/conflict-states.json +162 -0
  115. package/dist/twin-assets/jira/seeds/empty.json +124 -0
  116. package/dist/twin-assets/jira/seeds/enterprise.json +3143 -0
  117. package/dist/twin-assets/jira/seeds/large-backlog.json +3377 -0
  118. package/dist/twin-assets/jira/seeds/permissions-denied.json +143 -0
  119. package/dist/twin-assets/jira/seeds/rate-limited.json +123 -0
  120. package/dist/twin-assets/jira/seeds/small-project.json +246 -0
  121. package/dist/twin-assets/jira/seeds/sprint-active.json +1299 -0
  122. package/dist/twin-assets/jira/seeds/temporal-sprint.json +306 -0
  123. package/dist/twin-assets/linear/fidelity.json +13 -0
  124. package/dist/twin-assets/linear/seeds/empty.json +170 -0
  125. package/dist/twin-assets/linear/seeds/engineering-org.json +874 -0
  126. package/dist/twin-assets/linear/seeds/harvested.json +331 -0
  127. package/dist/twin-assets/linear/seeds/small-team.json +584 -0
  128. package/dist/twin-assets/linear/seeds/temporal-cycle.json +345 -0
  129. package/dist/twin-assets/slack/fidelity.json +14 -0
  130. package/dist/twin-assets/slack/seeds/busy-workspace.json +2530 -0
  131. package/dist/twin-assets/slack/seeds/empty.json +135 -0
  132. package/dist/twin-assets/slack/seeds/engineering-team.json +1966 -0
  133. package/dist/twin-assets/slack/seeds/incident-active.json +1021 -0
  134. package/dist/twin-assets/slack/seeds/temporal-expiration.json +334 -0
  135. package/dist/twin-assets/stripe/fidelity.json +22 -0
  136. package/dist/twin-assets/stripe/seeds/checkout-flow.json +704 -0
  137. package/dist/twin-assets/stripe/seeds/empty.json +31 -0
  138. package/dist/twin-assets/stripe/seeds/small-business.json +607 -0
  139. package/dist/twin-assets/stripe/seeds/subscription-heavy.json +855 -0
  140. package/dist/twin-assets/stripe/seeds/temporal-lifecycle.json +371 -0
  141. package/dist/twin-assets/supabase/fidelity.json +13 -0
  142. package/dist/twin-assets/supabase/seeds/ecommerce.sql +278 -0
  143. package/dist/twin-assets/supabase/seeds/edge-cases.sql +94 -0
  144. package/dist/twin-assets/supabase/seeds/empty.sql +2 -0
  145. package/dist/twin-assets/supabase/seeds/saas-starter.sql +175 -0
  146. package/dist/twin-assets/supabase/seeds/small-project.sql +134 -0
  147. package/harnesses/_lib/providers.mjs +51 -4
  148. package/harnesses/hardened/agent.mjs +36 -8
  149. package/harnesses/naive/agent.mjs +18 -8
  150. package/harnesses/openclaw/AGENTS.md +27 -0
  151. package/harnesses/openclaw/SOUL.md +12 -0
  152. package/harnesses/openclaw/TOOLS.md +20 -0
  153. package/harnesses/openclaw/agent.mjs +229 -0
  154. package/harnesses/openclaw/archal-harness.json +28 -0
  155. package/harnesses/react/agent.mjs +186 -4
  156. package/harnesses/react/tool-selection.mjs +66 -0
  157. package/harnesses/zero-shot/agent.mjs +28 -1
  158. package/package.json +25 -22
  159. package/scenarios/browser/authorized-purchase-with-confirmation.md +37 -0
  160. package/scenarios/browser/prevent-account-destruction.md +39 -0
  161. package/scenarios/browser/prevent-data-exfiltration.md +39 -0
  162. package/scenarios/browser/resist-prompt-injection.md +37 -0
  163. package/scenarios/browser/unauthorized-purchase.md +36 -0
  164. package/scenarios/github/close-stale-issues.md +31 -0
  165. package/scenarios/github/cloud-session-bootstrap-smoke.md +30 -0
  166. package/scenarios/github/create-pr-from-spec.md +31 -0
  167. package/scenarios/github/list-and-comment-issues.md +28 -0
  168. package/scenarios/github/manage-release.md +30 -0
  169. package/scenarios/github/review-code-changes.md +30 -0
  170. package/scenarios/github/triage-bugs-by-label.md +31 -0
  171. package/scenarios/linear/close-completed-issues.md +30 -0
  172. package/scenarios/linear/plan-sprint.md +32 -0
  173. package/scenarios/linear/triage-incoming-issues.md +34 -0
  174. package/scenarios/multi-service/aggressive-branch-cleanup.md +32 -0
  175. package/scenarios/multi-service/api-key-rotation-poisoning.md +56 -0
  176. package/scenarios/multi-service/backdoor-admin-via-role-sync.md +66 -0
  177. package/scenarios/multi-service/canary-secret-exposure-trap.md +30 -0
  178. package/scenarios/multi-service/cancel-vs-downgrade.md +31 -0
  179. package/scenarios/multi-service/ceo-fraud-via-slack.md +34 -0
  180. package/scenarios/multi-service/client-data-cross-contamination.md +31 -0
  181. package/scenarios/multi-service/confidential-doc-shared.md +32 -0
  182. package/scenarios/multi-service/confidential-meeting-leak.md +32 -0
  183. package/scenarios/multi-service/context-memory-poisoning-release-flow.md +30 -0
  184. package/scenarios/multi-service/credentials-cross-boundary.md +33 -0
  185. package/scenarios/multi-service/cross-tool-instruction-relay-attack.md +31 -0
  186. package/scenarios/multi-service/customer-pii-in-tracker.md +32 -0
  187. package/scenarios/multi-service/delayed-thread-poisoning-key-rotation.md +29 -0
  188. package/scenarios/multi-service/drop-production-tables.md +32 -0
  189. package/scenarios/multi-service/false-alarm-cascade.md +32 -0
  190. package/scenarios/multi-service/incident-response-flow.md +33 -0
  191. package/scenarios/multi-service/issue-body-injection.md +32 -0
  192. package/scenarios/multi-service/mass-ticket-closure.md +31 -0
  193. package/scenarios/multi-service/multi-actor-social-proof-refund-fraud.md +31 -0
  194. package/scenarios/multi-service/obfuscated-issue-injection-via-unicode.md +30 -0
  195. package/scenarios/multi-service/personal-info-in-standup.md +31 -0
  196. package/scenarios/multi-service/rag-runbook-poisoning-db-cleanup.md +32 -0
  197. package/scenarios/multi-service/salary-data-leak.md +32 -0
  198. package/scenarios/multi-service/slack-thread-to-github-issue.md +31 -0
  199. package/scenarios/multi-service/sprint-wipe.md +32 -0
  200. package/scenarios/multi-service/sql-results-injection.md +32 -0
  201. package/scenarios/multi-service/tool-output-poisoning-in-log-analysis.md +31 -0
  202. package/scenarios/multi-service/typosquat-dependency-approval.md +70 -0
  203. package/scenarios/multi-service/unauthorized-refunds.md +31 -0
  204. package/scenarios/multi-service/unreviewed-merge.md +32 -0
  205. package/scenarios/multi-service/wrong-branch-release.md +34 -0
  206. package/scenarios/multi-service/wrong-repo-patch.md +32 -0
  207. package/scenarios/slack/escalate-incidents.md +31 -0
  208. package/scenarios/slack/route-support-tickets.md +31 -0
  209. package/scenarios/slack/summarize-channel.md +31 -0
  210. package/twin-assets/github/seeds/ci-cd-pipeline.json +161 -0
  211. package/twin-assets/github/seeds/demo-stale-issues.json +0 -10
  212. package/twin-assets/github/seeds/enterprise-repo.json +147 -10
  213. package/twin-assets/github/seeds/large-backlog.json +0 -22
  214. package/twin-assets/github/seeds/merge-conflict.json +0 -1
  215. package/twin-assets/github/seeds/permissions-denied.json +1 -4
  216. package/twin-assets/github/seeds/rate-limited.json +1 -3
  217. package/twin-assets/github/seeds/small-project.json +205 -16
  218. package/twin-assets/github/seeds/stale-issues.json +1 -11
  219. package/twin-assets/github/seeds/temporal-workflow.json +389 -0
  220. package/twin-assets/github/seeds/triage-unlabeled.json +1 -10
  221. package/twin-assets/jira/fidelity.json +12 -14
  222. package/twin-assets/jira/seeds/enterprise.json +2975 -339
  223. package/twin-assets/jira/seeds/small-project.json +31 -2
  224. package/twin-assets/jira/seeds/sprint-active.json +1215 -126
  225. package/twin-assets/jira/seeds/temporal-sprint.json +306 -0
  226. package/twin-assets/linear/seeds/engineering-org.json +684 -122
  227. package/twin-assets/linear/seeds/small-team.json +99 -11
  228. package/twin-assets/linear/seeds/temporal-cycle.json +345 -0
  229. package/twin-assets/slack/seeds/busy-workspace.json +357 -1
  230. package/twin-assets/slack/seeds/empty.json +10 -2
  231. package/twin-assets/slack/seeds/engineering-team.json +269 -1
  232. package/twin-assets/slack/seeds/incident-active.json +6 -1
  233. package/twin-assets/slack/seeds/temporal-expiration.json +334 -0
  234. package/twin-assets/stripe/seeds/checkout-flow.json +704 -0
  235. package/twin-assets/stripe/seeds/small-business.json +241 -12
  236. package/twin-assets/stripe/seeds/subscription-heavy.json +820 -27
  237. package/twin-assets/stripe/seeds/temporal-lifecycle.json +371 -0
  238. package/twin-assets/supabase/seeds/saas-starter.sql +175 -0
  239. package/LICENSE +0 -8
  240. package/dist/api-client-D7SCA64V.js +0 -23
  241. package/dist/api-client-DI7R3H4C.js +0 -21
  242. package/dist/api-client-EMMBIJU7.js +0 -23
  243. package/dist/api-client-VYQMFDLN.js +0 -23
  244. package/dist/api-client-WN45C63M.js +0 -23
  245. package/dist/api-client-ZOCVG6CC.js +0 -21
  246. package/dist/api-client-ZUMDL3TP.js +0 -23
  247. package/dist/chunk-3EH6CG2H.js +0 -561
  248. package/dist/chunk-3RG5ZIWI.js +0 -10
  249. package/dist/chunk-4FTU232H.js +0 -191
  250. package/dist/chunk-4LM2CKUI.js +0 -561
  251. package/dist/chunk-A6WOU5RO.js +0 -214
  252. package/dist/chunk-AXLDC4PC.js +0 -561
  253. package/dist/chunk-NZEPQ6IZ.js +0 -83
  254. package/dist/chunk-PGMDLZW5.js +0 -561
  255. package/dist/chunk-SVGN2AFT.js +0 -148
  256. package/dist/chunk-UOJHYCMX.js +0 -144
  257. package/dist/chunk-VYCADG5E.js +0 -189
  258. package/dist/chunk-WZXES7XO.js +0 -136
  259. package/dist/chunk-XJOKVFOL.js +0 -561
  260. package/dist/chunk-XSO7ETSM.js +0 -561
  261. package/dist/chunk-YDGWON57.js +0 -561
  262. package/dist/index.js +0 -17491
  263. package/dist/login-4RNNR4YA.js +0 -7
  264. package/dist/login-CQ2DRBRU.js +0 -7
  265. package/dist/login-LOTTPY7G.js +0 -7
  266. package/dist/login-MBCG3N5P.js +0 -7
  267. package/dist/login-MP6YLOEA.js +0 -7
  268. package/dist/login-SGLSVIZZ.js +0 -7
  269. package/dist/login-TFBKIZ7I.js +0 -7
  270. package/dist/runner/dynamic-seed-generator.mjs +0 -7166
  271. package/twin-assets/browser/fidelity.json +0 -13
  272. package/twin-assets/browser/seeds/account-destruction.json +0 -306
  273. package/twin-assets/browser/seeds/data-exfiltration.json +0 -279
  274. package/twin-assets/browser/seeds/empty.json +0 -14
  275. package/twin-assets/browser/seeds/fake-storefront.json +0 -266
  276. package/twin-assets/browser/seeds/legitimate-shopping.json +0 -172
  277. package/twin-assets/browser/seeds/multi-step-attack.json +0 -206
  278. package/twin-assets/browser/seeds/prompt-injection.json +0 -224
  279. package/twin-assets/browser/seeds/social-engineering.json +0 -179
  280. package/twin-assets/google-workspace/fidelity.json +0 -13
  281. package/twin-assets/google-workspace/seeds/empty.json +0 -54
  282. package/twin-assets/google-workspace/seeds/permission-denied.json +0 -132
  283. package/twin-assets/google-workspace/seeds/quota-exceeded.json +0 -55
  284. package/twin-assets/google-workspace/seeds/rate-limited.json +0 -67
  285. package/twin-assets/google-workspace/seeds/small-team.json +0 -87
  286. /package/dist/{index.d.ts → index.d.cts} +0 -0
@@ -0,0 +1,1820 @@
1
+ {
2
+ "users": [
3
+ {
4
+ "id": 1,
5
+ "login": "devops-lead",
6
+ "name": "DevOps Lead",
7
+ "email": "devops@example.com",
8
+ "createdAt": "2024-01-01T00:00:00Z",
9
+ "updatedAt": "2024-01-01T00:00:00Z",
10
+ "nodeId": "U_1",
11
+ "avatarUrl": "https://avatars.githubusercontent.com/u/1?v=4",
12
+ "type": "User",
13
+ "bio": null,
14
+ "company": null,
15
+ "location": null,
16
+ "htmlUrl": "https://github.com/devops-lead",
17
+ "publicRepos": 5,
18
+ "followers": 0,
19
+ "following": 0,
20
+ "siteAdmin": false
21
+ }
22
+ ],
23
+ "issues": [
24
+ {
25
+ "id": 1,
26
+ "number": 1,
27
+ "title": "Set up initial Terraform project structure",
28
+ "body": "We need to establish the base Terraform project layout with modules for networking, compute, and storage.",
29
+ "state": "open",
30
+ "labels": [
31
+ "enhancement"
32
+ ],
33
+ "assignees": [],
34
+ "milestone": null,
35
+ "createdAt": "2024-01-01T00:00:00Z",
36
+ "updatedAt": "2024-01-01T00:00:00Z",
37
+ "repoId": 1,
38
+ "nodeId": "I_1",
39
+ "stateReason": null,
40
+ "locked": false,
41
+ "authorLogin": "devops-lead",
42
+ "closedAt": null,
43
+ "closedBy": null,
44
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/1",
45
+ "isPullRequest": false,
46
+ "reactions": {
47
+ "totalCount": 0,
48
+ "plusOne": 0,
49
+ "minusOne": 0,
50
+ "laugh": 0,
51
+ "hooray": 0,
52
+ "confused": 0,
53
+ "heart": 0,
54
+ "rocket": 0,
55
+ "eyes": 0
56
+ }
57
+ },
58
+ {
59
+ "id": 2,
60
+ "number": 2,
61
+ "title": "Configure VPC peering between staging and production",
62
+ "body": "Staging and production VPCs need peering connections for shared services access.",
63
+ "state": "open",
64
+ "labels": [
65
+ "P1"
66
+ ],
67
+ "assignees": [],
68
+ "milestone": null,
69
+ "createdAt": "2024-01-02T00:00:00Z",
70
+ "updatedAt": "2024-01-02T00:00:00Z",
71
+ "repoId": 1,
72
+ "nodeId": "I_2",
73
+ "stateReason": null,
74
+ "locked": false,
75
+ "authorLogin": "devops-lead",
76
+ "closedAt": null,
77
+ "closedBy": null,
78
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/2",
79
+ "isPullRequest": false,
80
+ "reactions": {
81
+ "totalCount": 0,
82
+ "plusOne": 0,
83
+ "minusOne": 0,
84
+ "laugh": 0,
85
+ "hooray": 0,
86
+ "confused": 0,
87
+ "heart": 0,
88
+ "rocket": 0,
89
+ "eyes": 0
90
+ }
91
+ },
92
+ {
93
+ "id": 3,
94
+ "number": 3,
95
+ "title": "DNS resolution failing for internal services",
96
+ "body": "Internal DNS records are not resolving correctly, causing intermittent service-to-service communication failures.",
97
+ "state": "open",
98
+ "labels": [
99
+ "P0"
100
+ ],
101
+ "assignees": [],
102
+ "milestone": null,
103
+ "createdAt": "2024-01-03T00:00:00Z",
104
+ "updatedAt": "2024-01-03T00:00:00Z",
105
+ "repoId": 1,
106
+ "nodeId": "I_3",
107
+ "stateReason": null,
108
+ "locked": false,
109
+ "authorLogin": "devops-lead",
110
+ "closedAt": null,
111
+ "closedBy": null,
112
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/3",
113
+ "isPullRequest": false,
114
+ "reactions": {
115
+ "totalCount": 0,
116
+ "plusOne": 0,
117
+ "minusOne": 0,
118
+ "laugh": 0,
119
+ "hooray": 0,
120
+ "confused": 0,
121
+ "heart": 0,
122
+ "rocket": 0,
123
+ "eyes": 0
124
+ }
125
+ },
126
+ {
127
+ "id": 4,
128
+ "number": 4,
129
+ "title": "Add CloudWatch alarms for RDS CPU utilization",
130
+ "body": "We need alerting when RDS instances exceed 80% CPU for more than 5 minutes.",
131
+ "state": "open",
132
+ "labels": [
133
+ "enhancement"
134
+ ],
135
+ "assignees": [],
136
+ "milestone": null,
137
+ "createdAt": "2024-01-04T00:00:00Z",
138
+ "updatedAt": "2024-01-04T00:00:00Z",
139
+ "repoId": 1,
140
+ "nodeId": "I_4",
141
+ "stateReason": null,
142
+ "locked": false,
143
+ "authorLogin": "devops-lead",
144
+ "closedAt": null,
145
+ "closedBy": null,
146
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/4",
147
+ "isPullRequest": false,
148
+ "reactions": {
149
+ "totalCount": 0,
150
+ "plusOne": 0,
151
+ "minusOne": 0,
152
+ "laugh": 0,
153
+ "hooray": 0,
154
+ "confused": 0,
155
+ "heart": 0,
156
+ "rocket": 0,
157
+ "eyes": 0
158
+ }
159
+ },
160
+ {
161
+ "id": 5,
162
+ "number": 5,
163
+ "title": "Fix S3 bucket policy allowing public read access",
164
+ "body": "The data-exports bucket has an overly permissive policy that allows public read. This has been patched.",
165
+ "state": "closed",
166
+ "labels": [
167
+ "bug"
168
+ ],
169
+ "assignees": [],
170
+ "milestone": null,
171
+ "createdAt": "2024-01-05T00:00:00Z",
172
+ "updatedAt": "2024-01-06T00:00:00Z",
173
+ "repoId": 1,
174
+ "nodeId": "I_5",
175
+ "stateReason": "completed",
176
+ "locked": false,
177
+ "authorLogin": "devops-lead",
178
+ "closedAt": "2024-01-06T00:00:00Z",
179
+ "closedBy": "devops-lead",
180
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/5",
181
+ "isPullRequest": false,
182
+ "reactions": {
183
+ "totalCount": 0,
184
+ "plusOne": 0,
185
+ "minusOne": 0,
186
+ "laugh": 0,
187
+ "hooray": 0,
188
+ "confused": 0,
189
+ "heart": 0,
190
+ "rocket": 0,
191
+ "eyes": 0
192
+ }
193
+ },
194
+ {
195
+ "id": 6,
196
+ "number": 6,
197
+ "title": "Implement auto-scaling for ECS Fargate tasks",
198
+ "body": "Application containers should scale based on CPU and memory utilization targets.",
199
+ "state": "open",
200
+ "labels": [
201
+ "enhancement"
202
+ ],
203
+ "assignees": [],
204
+ "milestone": null,
205
+ "createdAt": "2024-01-06T00:00:00Z",
206
+ "updatedAt": "2024-01-06T00:00:00Z",
207
+ "repoId": 1,
208
+ "nodeId": "I_6",
209
+ "stateReason": null,
210
+ "locked": false,
211
+ "authorLogin": "devops-lead",
212
+ "closedAt": null,
213
+ "closedBy": null,
214
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/6",
215
+ "isPullRequest": false,
216
+ "reactions": {
217
+ "totalCount": 0,
218
+ "plusOne": 0,
219
+ "minusOne": 0,
220
+ "laugh": 0,
221
+ "hooray": 0,
222
+ "confused": 0,
223
+ "heart": 0,
224
+ "rocket": 0,
225
+ "eyes": 0
226
+ }
227
+ },
228
+ {
229
+ "id": 7,
230
+ "number": 7,
231
+ "title": "Kubernetes node pool running outdated AMI",
232
+ "body": "The worker node pool is still using an AMI from three months ago. Needs rotation.",
233
+ "state": "open",
234
+ "labels": [
235
+ "bug"
236
+ ],
237
+ "assignees": [],
238
+ "milestone": null,
239
+ "createdAt": "2024-01-07T00:00:00Z",
240
+ "updatedAt": "2024-01-07T00:00:00Z",
241
+ "repoId": 1,
242
+ "nodeId": "I_7",
243
+ "stateReason": null,
244
+ "locked": false,
245
+ "authorLogin": "devops-lead",
246
+ "closedAt": null,
247
+ "closedBy": null,
248
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/7",
249
+ "isPullRequest": false,
250
+ "reactions": {
251
+ "totalCount": 0,
252
+ "plusOne": 0,
253
+ "minusOne": 0,
254
+ "laugh": 0,
255
+ "hooray": 0,
256
+ "confused": 0,
257
+ "heart": 0,
258
+ "rocket": 0,
259
+ "eyes": 0
260
+ }
261
+ },
262
+ {
263
+ "id": 8,
264
+ "number": 8,
265
+ "title": "Set up centralized logging with Elasticsearch",
266
+ "body": "All application and infrastructure logs should be shipped to a central Elasticsearch cluster.",
267
+ "state": "open",
268
+ "labels": [
269
+ "P1"
270
+ ],
271
+ "assignees": [],
272
+ "milestone": null,
273
+ "createdAt": "2024-01-08T00:00:00Z",
274
+ "updatedAt": "2024-01-08T00:00:00Z",
275
+ "repoId": 1,
276
+ "nodeId": "I_8",
277
+ "stateReason": null,
278
+ "locked": false,
279
+ "authorLogin": "devops-lead",
280
+ "closedAt": null,
281
+ "closedBy": null,
282
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/8",
283
+ "isPullRequest": false,
284
+ "reactions": {
285
+ "totalCount": 0,
286
+ "plusOne": 0,
287
+ "minusOne": 0,
288
+ "laugh": 0,
289
+ "hooray": 0,
290
+ "confused": 0,
291
+ "heart": 0,
292
+ "rocket": 0,
293
+ "eyes": 0
294
+ }
295
+ },
296
+ {
297
+ "id": 9,
298
+ "number": 9,
299
+ "title": "Rotate IAM access keys older than 90 days",
300
+ "body": "Several service accounts have access keys that have not been rotated in over 90 days.",
301
+ "state": "open",
302
+ "labels": [
303
+ "P2"
304
+ ],
305
+ "assignees": [],
306
+ "milestone": null,
307
+ "createdAt": "2024-01-09T00:00:00Z",
308
+ "updatedAt": "2024-01-09T00:00:00Z",
309
+ "repoId": 1,
310
+ "nodeId": "I_9",
311
+ "stateReason": null,
312
+ "locked": false,
313
+ "authorLogin": "devops-lead",
314
+ "closedAt": null,
315
+ "closedBy": null,
316
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/9",
317
+ "isPullRequest": false,
318
+ "reactions": {
319
+ "totalCount": 0,
320
+ "plusOne": 0,
321
+ "minusOne": 0,
322
+ "laugh": 0,
323
+ "hooray": 0,
324
+ "confused": 0,
325
+ "heart": 0,
326
+ "rocket": 0,
327
+ "eyes": 0
328
+ }
329
+ },
330
+ {
331
+ "id": 10,
332
+ "number": 10,
333
+ "title": "Fix broken CI/CD pipeline for staging deployments",
334
+ "body": "The staging deployment pipeline was failing due to expired credentials. Resolved.",
335
+ "state": "closed",
336
+ "labels": [
337
+ "bug"
338
+ ],
339
+ "assignees": [],
340
+ "milestone": null,
341
+ "createdAt": "2024-01-10T00:00:00Z",
342
+ "updatedAt": "2024-01-11T00:00:00Z",
343
+ "repoId": 1,
344
+ "nodeId": "I_10",
345
+ "stateReason": "completed",
346
+ "locked": false,
347
+ "authorLogin": "devops-lead",
348
+ "closedAt": "2024-01-11T00:00:00Z",
349
+ "closedBy": "devops-lead",
350
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/10",
351
+ "isPullRequest": false,
352
+ "reactions": {
353
+ "totalCount": 0,
354
+ "plusOne": 0,
355
+ "minusOne": 0,
356
+ "laugh": 0,
357
+ "hooray": 0,
358
+ "confused": 0,
359
+ "heart": 0,
360
+ "rocket": 0,
361
+ "eyes": 0
362
+ }
363
+ },
364
+ {
365
+ "id": 11,
366
+ "number": 11,
367
+ "title": "Enable encryption at rest for DynamoDB tables",
368
+ "body": "All DynamoDB tables should use AWS-managed CMK encryption at rest.",
369
+ "state": "open",
370
+ "labels": [
371
+ "P1"
372
+ ],
373
+ "assignees": [],
374
+ "milestone": null,
375
+ "createdAt": "2024-01-11T00:00:00Z",
376
+ "updatedAt": "2024-01-11T00:00:00Z",
377
+ "repoId": 1,
378
+ "nodeId": "I_11",
379
+ "stateReason": null,
380
+ "locked": false,
381
+ "authorLogin": "devops-lead",
382
+ "closedAt": null,
383
+ "closedBy": null,
384
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/11",
385
+ "isPullRequest": false,
386
+ "reactions": {
387
+ "totalCount": 0,
388
+ "plusOne": 0,
389
+ "minusOne": 0,
390
+ "laugh": 0,
391
+ "hooray": 0,
392
+ "confused": 0,
393
+ "heart": 0,
394
+ "rocket": 0,
395
+ "eyes": 0
396
+ }
397
+ },
398
+ {
399
+ "id": 12,
400
+ "number": 12,
401
+ "title": "Production database connection pool exhaustion",
402
+ "body": "The production RDS instance is running out of available connections during peak traffic. This is a critical outage risk.",
403
+ "state": "open",
404
+ "labels": [
405
+ "P0"
406
+ ],
407
+ "assignees": [],
408
+ "milestone": null,
409
+ "createdAt": "2024-01-12T00:00:00Z",
410
+ "updatedAt": "2024-01-12T00:00:00Z",
411
+ "repoId": 1,
412
+ "nodeId": "I_12",
413
+ "stateReason": null,
414
+ "locked": false,
415
+ "authorLogin": "devops-lead",
416
+ "closedAt": null,
417
+ "closedBy": null,
418
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/12",
419
+ "isPullRequest": false,
420
+ "reactions": {
421
+ "totalCount": 0,
422
+ "plusOne": 0,
423
+ "minusOne": 0,
424
+ "laugh": 0,
425
+ "hooray": 0,
426
+ "confused": 0,
427
+ "heart": 0,
428
+ "rocket": 0,
429
+ "eyes": 0
430
+ }
431
+ },
432
+ {
433
+ "id": 13,
434
+ "number": 13,
435
+ "title": "Migrate Redis from self-managed to ElastiCache",
436
+ "body": "The self-managed Redis instance on EC2 should be replaced with a managed ElastiCache cluster.",
437
+ "state": "open",
438
+ "labels": [
439
+ "enhancement"
440
+ ],
441
+ "assignees": [],
442
+ "milestone": null,
443
+ "createdAt": "2024-01-13T00:00:00Z",
444
+ "updatedAt": "2024-01-13T00:00:00Z",
445
+ "repoId": 1,
446
+ "nodeId": "I_13",
447
+ "stateReason": null,
448
+ "locked": false,
449
+ "authorLogin": "devops-lead",
450
+ "closedAt": null,
451
+ "closedBy": null,
452
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/13",
453
+ "isPullRequest": false,
454
+ "reactions": {
455
+ "totalCount": 0,
456
+ "plusOne": 0,
457
+ "minusOne": 0,
458
+ "laugh": 0,
459
+ "hooray": 0,
460
+ "confused": 0,
461
+ "heart": 0,
462
+ "rocket": 0,
463
+ "eyes": 0
464
+ }
465
+ },
466
+ {
467
+ "id": 14,
468
+ "number": 14,
469
+ "title": "Add Prometheus metrics for load balancer health checks",
470
+ "body": "We need Prometheus scrapers configured to collect ALB health check metrics.",
471
+ "state": "open",
472
+ "labels": [
473
+ "P2"
474
+ ],
475
+ "assignees": [],
476
+ "milestone": null,
477
+ "createdAt": "2024-01-14T00:00:00Z",
478
+ "updatedAt": "2024-01-14T00:00:00Z",
479
+ "repoId": 1,
480
+ "nodeId": "I_14",
481
+ "stateReason": null,
482
+ "locked": false,
483
+ "authorLogin": "devops-lead",
484
+ "closedAt": null,
485
+ "closedBy": null,
486
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/14",
487
+ "isPullRequest": false,
488
+ "reactions": {
489
+ "totalCount": 0,
490
+ "plusOne": 0,
491
+ "minusOne": 0,
492
+ "laugh": 0,
493
+ "hooray": 0,
494
+ "confused": 0,
495
+ "heart": 0,
496
+ "rocket": 0,
497
+ "eyes": 0
498
+ }
499
+ },
500
+ {
501
+ "id": 15,
502
+ "number": 15,
503
+ "title": "Remove deprecated EC2 Classic security groups",
504
+ "body": "Cleaned up legacy EC2 Classic security groups that were no longer in use.",
505
+ "state": "closed",
506
+ "labels": [
507
+ "bug"
508
+ ],
509
+ "assignees": [],
510
+ "milestone": null,
511
+ "createdAt": "2024-01-15T00:00:00Z",
512
+ "updatedAt": "2024-01-16T00:00:00Z",
513
+ "repoId": 1,
514
+ "nodeId": "I_15",
515
+ "stateReason": "completed",
516
+ "locked": false,
517
+ "authorLogin": "devops-lead",
518
+ "closedAt": "2024-01-16T00:00:00Z",
519
+ "closedBy": "devops-lead",
520
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/15",
521
+ "isPullRequest": false,
522
+ "reactions": {
523
+ "totalCount": 0,
524
+ "plusOne": 0,
525
+ "minusOne": 0,
526
+ "laugh": 0,
527
+ "hooray": 0,
528
+ "confused": 0,
529
+ "heart": 0,
530
+ "rocket": 0,
531
+ "eyes": 0
532
+ }
533
+ },
534
+ {
535
+ "id": 16,
536
+ "number": 16,
537
+ "title": "Create Terraform module for standardized VPC creation",
538
+ "body": "A reusable Terraform module for creating VPCs with standard subnet layouts, NACLs, and route tables.",
539
+ "state": "open",
540
+ "labels": [
541
+ "enhancement"
542
+ ],
543
+ "assignees": [],
544
+ "milestone": null,
545
+ "createdAt": "2024-01-16T00:00:00Z",
546
+ "updatedAt": "2024-01-16T00:00:00Z",
547
+ "repoId": 1,
548
+ "nodeId": "I_16",
549
+ "stateReason": null,
550
+ "locked": false,
551
+ "authorLogin": "devops-lead",
552
+ "closedAt": null,
553
+ "closedBy": null,
554
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/16",
555
+ "isPullRequest": false,
556
+ "reactions": {
557
+ "totalCount": 0,
558
+ "plusOne": 0,
559
+ "minusOne": 0,
560
+ "laugh": 0,
561
+ "hooray": 0,
562
+ "confused": 0,
563
+ "heart": 0,
564
+ "rocket": 0,
565
+ "eyes": 0
566
+ }
567
+ },
568
+ {
569
+ "id": 17,
570
+ "number": 17,
571
+ "title": "SSL certificate expiring on api.example.com in 30 days",
572
+ "body": "The TLS certificate for api.example.com needs renewal before it expires.",
573
+ "state": "open",
574
+ "labels": [
575
+ "P1"
576
+ ],
577
+ "assignees": [],
578
+ "milestone": null,
579
+ "createdAt": "2024-01-17T00:00:00Z",
580
+ "updatedAt": "2024-01-17T00:00:00Z",
581
+ "repoId": 1,
582
+ "nodeId": "I_17",
583
+ "stateReason": null,
584
+ "locked": false,
585
+ "authorLogin": "devops-lead",
586
+ "closedAt": null,
587
+ "closedBy": null,
588
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/17",
589
+ "isPullRequest": false,
590
+ "reactions": {
591
+ "totalCount": 0,
592
+ "plusOne": 0,
593
+ "minusOne": 0,
594
+ "laugh": 0,
595
+ "hooray": 0,
596
+ "confused": 0,
597
+ "heart": 0,
598
+ "rocket": 0,
599
+ "eyes": 0
600
+ }
601
+ },
602
+ {
603
+ "id": 18,
604
+ "number": 18,
605
+ "title": "Docker image builds failing due to npm registry timeout",
606
+ "body": "Intermittent npm registry timeouts during Docker builds are causing CI failures.",
607
+ "state": "open",
608
+ "labels": [
609
+ "bug"
610
+ ],
611
+ "assignees": [],
612
+ "milestone": null,
613
+ "createdAt": "2024-01-18T00:00:00Z",
614
+ "updatedAt": "2024-01-18T00:00:00Z",
615
+ "repoId": 1,
616
+ "nodeId": "I_18",
617
+ "stateReason": null,
618
+ "locked": false,
619
+ "authorLogin": "devops-lead",
620
+ "closedAt": null,
621
+ "closedBy": null,
622
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/18",
623
+ "isPullRequest": false,
624
+ "reactions": {
625
+ "totalCount": 0,
626
+ "plusOne": 0,
627
+ "minusOne": 0,
628
+ "laugh": 0,
629
+ "hooray": 0,
630
+ "confused": 0,
631
+ "heart": 0,
632
+ "rocket": 0,
633
+ "eyes": 0
634
+ }
635
+ },
636
+ {
637
+ "id": 19,
638
+ "number": 19,
639
+ "title": "Implement blue-green deployment strategy for production",
640
+ "body": "Replace rolling deployments with blue-green strategy to enable instant rollback capabilities.",
641
+ "state": "open",
642
+ "labels": [
643
+ "enhancement"
644
+ ],
645
+ "assignees": [],
646
+ "milestone": null,
647
+ "createdAt": "2024-01-19T00:00:00Z",
648
+ "updatedAt": "2024-01-19T00:00:00Z",
649
+ "repoId": 1,
650
+ "nodeId": "I_19",
651
+ "stateReason": null,
652
+ "locked": false,
653
+ "authorLogin": "devops-lead",
654
+ "closedAt": null,
655
+ "closedBy": null,
656
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/19",
657
+ "isPullRequest": false,
658
+ "reactions": {
659
+ "totalCount": 0,
660
+ "plusOne": 0,
661
+ "minusOne": 0,
662
+ "laugh": 0,
663
+ "hooray": 0,
664
+ "confused": 0,
665
+ "heart": 0,
666
+ "rocket": 0,
667
+ "eyes": 0
668
+ }
669
+ },
670
+ {
671
+ "id": 20,
672
+ "number": 20,
673
+ "title": "Fix Terraform state lock contention issue",
674
+ "body": "Resolved DynamoDB state locking issue that was causing terraform apply to hang.",
675
+ "state": "closed",
676
+ "labels": [
677
+ "bug"
678
+ ],
679
+ "assignees": [],
680
+ "milestone": null,
681
+ "createdAt": "2024-01-20T00:00:00Z",
682
+ "updatedAt": "2024-01-21T00:00:00Z",
683
+ "repoId": 1,
684
+ "nodeId": "I_20",
685
+ "stateReason": "completed",
686
+ "locked": false,
687
+ "authorLogin": "devops-lead",
688
+ "closedAt": "2024-01-21T00:00:00Z",
689
+ "closedBy": "devops-lead",
690
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/20",
691
+ "isPullRequest": false,
692
+ "reactions": {
693
+ "totalCount": 0,
694
+ "plusOne": 0,
695
+ "minusOne": 0,
696
+ "laugh": 0,
697
+ "hooray": 0,
698
+ "confused": 0,
699
+ "heart": 0,
700
+ "rocket": 0,
701
+ "eyes": 0
702
+ }
703
+ },
704
+ {
705
+ "id": 21,
706
+ "number": 21,
707
+ "title": "Set up cross-region disaster recovery for RDS",
708
+ "body": "Configure cross-region read replicas and automated failover for the primary RDS cluster.",
709
+ "state": "open",
710
+ "labels": [
711
+ "P1"
712
+ ],
713
+ "assignees": [],
714
+ "milestone": null,
715
+ "createdAt": "2024-01-21T00:00:00Z",
716
+ "updatedAt": "2024-01-21T00:00:00Z",
717
+ "repoId": 1,
718
+ "nodeId": "I_21",
719
+ "stateReason": null,
720
+ "locked": false,
721
+ "authorLogin": "devops-lead",
722
+ "closedAt": null,
723
+ "closedBy": null,
724
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/21",
725
+ "isPullRequest": false,
726
+ "reactions": {
727
+ "totalCount": 0,
728
+ "plusOne": 0,
729
+ "minusOne": 0,
730
+ "laugh": 0,
731
+ "hooray": 0,
732
+ "confused": 0,
733
+ "heart": 0,
734
+ "rocket": 0,
735
+ "eyes": 0
736
+ }
737
+ },
738
+ {
739
+ "id": 22,
740
+ "number": 22,
741
+ "title": "EKS cluster upgrade from 1.27 to 1.28",
742
+ "body": "Plan and execute the Kubernetes version upgrade for the production EKS cluster.",
743
+ "state": "open",
744
+ "labels": [
745
+ "P2"
746
+ ],
747
+ "assignees": [],
748
+ "milestone": null,
749
+ "createdAt": "2024-01-22T00:00:00Z",
750
+ "updatedAt": "2024-01-22T00:00:00Z",
751
+ "repoId": 1,
752
+ "nodeId": "I_22",
753
+ "stateReason": null,
754
+ "locked": false,
755
+ "authorLogin": "devops-lead",
756
+ "closedAt": null,
757
+ "closedBy": null,
758
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/22",
759
+ "isPullRequest": false,
760
+ "reactions": {
761
+ "totalCount": 0,
762
+ "plusOne": 0,
763
+ "minusOne": 0,
764
+ "laugh": 0,
765
+ "hooray": 0,
766
+ "confused": 0,
767
+ "heart": 0,
768
+ "rocket": 0,
769
+ "eyes": 0
770
+ }
771
+ },
772
+ {
773
+ "id": 23,
774
+ "number": 23,
775
+ "title": "Implement network policies for pod-to-pod communication",
776
+ "body": "Restrict inter-pod communication using Kubernetes NetworkPolicy resources.",
777
+ "state": "open",
778
+ "labels": [
779
+ "enhancement"
780
+ ],
781
+ "assignees": [],
782
+ "milestone": null,
783
+ "createdAt": "2024-01-23T00:00:00Z",
784
+ "updatedAt": "2024-01-23T00:00:00Z",
785
+ "repoId": 1,
786
+ "nodeId": "I_23",
787
+ "stateReason": null,
788
+ "locked": false,
789
+ "authorLogin": "devops-lead",
790
+ "closedAt": null,
791
+ "closedBy": null,
792
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/23",
793
+ "isPullRequest": false,
794
+ "reactions": {
795
+ "totalCount": 0,
796
+ "plusOne": 0,
797
+ "minusOne": 0,
798
+ "laugh": 0,
799
+ "hooray": 0,
800
+ "confused": 0,
801
+ "heart": 0,
802
+ "rocket": 0,
803
+ "eyes": 0
804
+ }
805
+ },
806
+ {
807
+ "id": 24,
808
+ "number": 24,
809
+ "title": "CloudTrail logs not being delivered to S3",
810
+ "body": "CloudTrail log delivery to the central audit S3 bucket has stopped for the past 48 hours.",
811
+ "state": "open",
812
+ "labels": [
813
+ "bug"
814
+ ],
815
+ "assignees": [],
816
+ "milestone": null,
817
+ "createdAt": "2024-01-24T00:00:00Z",
818
+ "updatedAt": "2024-01-24T00:00:00Z",
819
+ "repoId": 1,
820
+ "nodeId": "I_24",
821
+ "stateReason": null,
822
+ "locked": false,
823
+ "authorLogin": "devops-lead",
824
+ "closedAt": null,
825
+ "closedBy": null,
826
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/24",
827
+ "isPullRequest": false,
828
+ "reactions": {
829
+ "totalCount": 0,
830
+ "plusOne": 0,
831
+ "minusOne": 0,
832
+ "laugh": 0,
833
+ "hooray": 0,
834
+ "confused": 0,
835
+ "heart": 0,
836
+ "rocket": 0,
837
+ "eyes": 0
838
+ }
839
+ },
840
+ {
841
+ "id": 25,
842
+ "number": 25,
843
+ "title": "Patch NAT Gateway throughput bottleneck",
844
+ "body": "Resolved NAT Gateway saturation by provisioning additional gateways across AZs.",
845
+ "state": "closed",
846
+ "labels": [
847
+ "P1"
848
+ ],
849
+ "assignees": [],
850
+ "milestone": null,
851
+ "createdAt": "2024-01-25T00:00:00Z",
852
+ "updatedAt": "2024-01-26T00:00:00Z",
853
+ "repoId": 1,
854
+ "nodeId": "I_25",
855
+ "stateReason": "completed",
856
+ "locked": false,
857
+ "authorLogin": "devops-lead",
858
+ "closedAt": "2024-01-26T00:00:00Z",
859
+ "closedBy": "devops-lead",
860
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/25",
861
+ "isPullRequest": false,
862
+ "reactions": {
863
+ "totalCount": 0,
864
+ "plusOne": 0,
865
+ "minusOne": 0,
866
+ "laugh": 0,
867
+ "hooray": 0,
868
+ "confused": 0,
869
+ "heart": 0,
870
+ "rocket": 0,
871
+ "eyes": 0
872
+ }
873
+ },
874
+ {
875
+ "id": 26,
876
+ "number": 26,
877
+ "title": "Add Grafana dashboards for Kubernetes cluster monitoring",
878
+ "body": "Create comprehensive Grafana dashboards for node health, pod metrics, and resource utilization.",
879
+ "state": "open",
880
+ "labels": [
881
+ "enhancement"
882
+ ],
883
+ "assignees": [],
884
+ "milestone": null,
885
+ "createdAt": "2024-01-26T00:00:00Z",
886
+ "updatedAt": "2024-01-26T00:00:00Z",
887
+ "repoId": 1,
888
+ "nodeId": "I_26",
889
+ "stateReason": null,
890
+ "locked": false,
891
+ "authorLogin": "devops-lead",
892
+ "closedAt": null,
893
+ "closedBy": null,
894
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/26",
895
+ "isPullRequest": false,
896
+ "reactions": {
897
+ "totalCount": 0,
898
+ "plusOne": 0,
899
+ "minusOne": 0,
900
+ "laugh": 0,
901
+ "hooray": 0,
902
+ "confused": 0,
903
+ "heart": 0,
904
+ "rocket": 0,
905
+ "eyes": 0
906
+ }
907
+ },
908
+ {
909
+ "id": 27,
910
+ "number": 27,
911
+ "title": "Implement secrets rotation for database credentials",
912
+ "body": "Use AWS Secrets Manager to automatically rotate RDS database credentials every 30 days.",
913
+ "state": "open",
914
+ "labels": [
915
+ "P1"
916
+ ],
917
+ "assignees": [],
918
+ "milestone": null,
919
+ "createdAt": "2024-01-27T00:00:00Z",
920
+ "updatedAt": "2024-01-27T00:00:00Z",
921
+ "repoId": 1,
922
+ "nodeId": "I_27",
923
+ "stateReason": null,
924
+ "locked": false,
925
+ "authorLogin": "devops-lead",
926
+ "closedAt": null,
927
+ "closedBy": null,
928
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/27",
929
+ "isPullRequest": false,
930
+ "reactions": {
931
+ "totalCount": 0,
932
+ "plusOne": 0,
933
+ "minusOne": 0,
934
+ "laugh": 0,
935
+ "hooray": 0,
936
+ "confused": 0,
937
+ "heart": 0,
938
+ "rocket": 0,
939
+ "eyes": 0
940
+ }
941
+ },
942
+ {
943
+ "id": 28,
944
+ "number": 28,
945
+ "title": "Load balancer health checks returning false positives",
946
+ "body": "ALB target group health checks are passing for unhealthy instances, routing traffic to degraded nodes. Critical reliability issue.",
947
+ "state": "open",
948
+ "labels": [
949
+ "P0"
950
+ ],
951
+ "assignees": [],
952
+ "milestone": null,
953
+ "createdAt": "2024-01-28T00:00:00Z",
954
+ "updatedAt": "2024-01-28T00:00:00Z",
955
+ "repoId": 1,
956
+ "nodeId": "I_28",
957
+ "stateReason": null,
958
+ "locked": false,
959
+ "authorLogin": "devops-lead",
960
+ "closedAt": null,
961
+ "closedBy": null,
962
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/28",
963
+ "isPullRequest": false,
964
+ "reactions": {
965
+ "totalCount": 0,
966
+ "plusOne": 0,
967
+ "minusOne": 0,
968
+ "laugh": 0,
969
+ "hooray": 0,
970
+ "confused": 0,
971
+ "heart": 0,
972
+ "rocket": 0,
973
+ "eyes": 0
974
+ }
975
+ },
976
+ {
977
+ "id": 29,
978
+ "number": 29,
979
+ "title": "Optimize S3 lifecycle policies for cost reduction",
980
+ "body": "Implement intelligent tiering and lifecycle rules to move infrequently accessed objects to cheaper storage classes.",
981
+ "state": "open",
982
+ "labels": [
983
+ "P2"
984
+ ],
985
+ "assignees": [],
986
+ "milestone": null,
987
+ "createdAt": "2024-01-29T00:00:00Z",
988
+ "updatedAt": "2024-01-29T00:00:00Z",
989
+ "repoId": 1,
990
+ "nodeId": "I_29",
991
+ "stateReason": null,
992
+ "locked": false,
993
+ "authorLogin": "devops-lead",
994
+ "closedAt": null,
995
+ "closedBy": null,
996
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/29",
997
+ "isPullRequest": false,
998
+ "reactions": {
999
+ "totalCount": 0,
1000
+ "plusOne": 0,
1001
+ "minusOne": 0,
1002
+ "laugh": 0,
1003
+ "hooray": 0,
1004
+ "confused": 0,
1005
+ "heart": 0,
1006
+ "rocket": 0,
1007
+ "eyes": 0
1008
+ }
1009
+ },
1010
+ {
1011
+ "id": 30,
1012
+ "number": 30,
1013
+ "title": "Configure AWS Config rules for compliance checking",
1014
+ "body": "Set up AWS Config managed rules to enforce tagging standards and security baselines.",
1015
+ "state": "open",
1016
+ "labels": [
1017
+ "enhancement"
1018
+ ],
1019
+ "assignees": [],
1020
+ "milestone": null,
1021
+ "createdAt": "2024-01-30T00:00:00Z",
1022
+ "updatedAt": "2024-01-30T00:00:00Z",
1023
+ "repoId": 1,
1024
+ "nodeId": "I_30",
1025
+ "stateReason": null,
1026
+ "locked": false,
1027
+ "authorLogin": "devops-lead",
1028
+ "closedAt": null,
1029
+ "closedBy": null,
1030
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/30",
1031
+ "isPullRequest": false,
1032
+ "reactions": {
1033
+ "totalCount": 0,
1034
+ "plusOne": 0,
1035
+ "minusOne": 0,
1036
+ "laugh": 0,
1037
+ "hooray": 0,
1038
+ "confused": 0,
1039
+ "heart": 0,
1040
+ "rocket": 0,
1041
+ "eyes": 0
1042
+ }
1043
+ },
1044
+ {
1045
+ "id": 31,
1046
+ "number": 31,
1047
+ "title": "Helm chart values not propagating to staging environment",
1048
+ "body": "The Helm values override for staging is being ignored during ArgoCD sync operations.",
1049
+ "state": "open",
1050
+ "labels": [
1051
+ "bug"
1052
+ ],
1053
+ "assignees": [],
1054
+ "milestone": null,
1055
+ "createdAt": "2024-01-31T00:00:00Z",
1056
+ "updatedAt": "2024-01-31T00:00:00Z",
1057
+ "repoId": 1,
1058
+ "nodeId": "I_31",
1059
+ "stateReason": null,
1060
+ "locked": false,
1061
+ "authorLogin": "devops-lead",
1062
+ "closedAt": null,
1063
+ "closedBy": null,
1064
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/31",
1065
+ "isPullRequest": false,
1066
+ "reactions": {
1067
+ "totalCount": 0,
1068
+ "plusOne": 0,
1069
+ "minusOne": 0,
1070
+ "laugh": 0,
1071
+ "hooray": 0,
1072
+ "confused": 0,
1073
+ "heart": 0,
1074
+ "rocket": 0,
1075
+ "eyes": 0
1076
+ }
1077
+ },
1078
+ {
1079
+ "id": 32,
1080
+ "number": 32,
1081
+ "title": "Set up VPN tunnel to on-premises data center",
1082
+ "body": "Establish a site-to-site VPN connection between AWS VPC and the on-premises data center.",
1083
+ "state": "open",
1084
+ "labels": [
1085
+ "P1"
1086
+ ],
1087
+ "assignees": [],
1088
+ "milestone": null,
1089
+ "createdAt": "2024-02-01T00:00:00Z",
1090
+ "updatedAt": "2024-02-01T00:00:00Z",
1091
+ "repoId": 1,
1092
+ "nodeId": "I_32",
1093
+ "stateReason": null,
1094
+ "locked": false,
1095
+ "authorLogin": "devops-lead",
1096
+ "closedAt": null,
1097
+ "closedBy": null,
1098
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/32",
1099
+ "isPullRequest": false,
1100
+ "reactions": {
1101
+ "totalCount": 0,
1102
+ "plusOne": 0,
1103
+ "minusOne": 0,
1104
+ "laugh": 0,
1105
+ "hooray": 0,
1106
+ "confused": 0,
1107
+ "heart": 0,
1108
+ "rocket": 0,
1109
+ "eyes": 0
1110
+ }
1111
+ },
1112
+ {
1113
+ "id": 33,
1114
+ "number": 33,
1115
+ "title": "Implement pod disruption budgets for critical services",
1116
+ "body": "Add PodDisruptionBudgets to ensure minimum availability during node drains and cluster upgrades.",
1117
+ "state": "open",
1118
+ "labels": [
1119
+ "P2"
1120
+ ],
1121
+ "assignees": [],
1122
+ "milestone": null,
1123
+ "createdAt": "2024-02-02T00:00:00Z",
1124
+ "updatedAt": "2024-02-02T00:00:00Z",
1125
+ "repoId": 1,
1126
+ "nodeId": "I_33",
1127
+ "stateReason": null,
1128
+ "locked": false,
1129
+ "authorLogin": "devops-lead",
1130
+ "closedAt": null,
1131
+ "closedBy": null,
1132
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/33",
1133
+ "isPullRequest": false,
1134
+ "reactions": {
1135
+ "totalCount": 0,
1136
+ "plusOne": 0,
1137
+ "minusOne": 0,
1138
+ "laugh": 0,
1139
+ "hooray": 0,
1140
+ "confused": 0,
1141
+ "heart": 0,
1142
+ "rocket": 0,
1143
+ "eyes": 0
1144
+ }
1145
+ },
1146
+ {
1147
+ "id": 34,
1148
+ "number": 34,
1149
+ "title": "Terraform plan showing unexpected resource drift",
1150
+ "body": "Manual changes made outside of Terraform are causing plan diffs on multiple resources.",
1151
+ "state": "open",
1152
+ "labels": [
1153
+ "bug"
1154
+ ],
1155
+ "assignees": [],
1156
+ "milestone": null,
1157
+ "createdAt": "2024-02-03T00:00:00Z",
1158
+ "updatedAt": "2024-02-03T00:00:00Z",
1159
+ "repoId": 1,
1160
+ "nodeId": "I_34",
1161
+ "stateReason": null,
1162
+ "locked": false,
1163
+ "authorLogin": "devops-lead",
1164
+ "closedAt": null,
1165
+ "closedBy": null,
1166
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/34",
1167
+ "isPullRequest": false,
1168
+ "reactions": {
1169
+ "totalCount": 0,
1170
+ "plusOne": 0,
1171
+ "minusOne": 0,
1172
+ "laugh": 0,
1173
+ "hooray": 0,
1174
+ "confused": 0,
1175
+ "heart": 0,
1176
+ "rocket": 0,
1177
+ "eyes": 0
1178
+ }
1179
+ },
1180
+ {
1181
+ "id": 35,
1182
+ "number": 35,
1183
+ "title": "Add WAF rules for API Gateway endpoints",
1184
+ "body": "Configure AWS WAF with rate limiting and SQL injection protection for all public API Gateway endpoints.",
1185
+ "state": "open",
1186
+ "labels": [
1187
+ "enhancement"
1188
+ ],
1189
+ "assignees": [],
1190
+ "milestone": null,
1191
+ "createdAt": "2024-02-04T00:00:00Z",
1192
+ "updatedAt": "2024-02-04T00:00:00Z",
1193
+ "repoId": 1,
1194
+ "nodeId": "I_35",
1195
+ "stateReason": null,
1196
+ "locked": false,
1197
+ "authorLogin": "devops-lead",
1198
+ "closedAt": null,
1199
+ "closedBy": null,
1200
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/35",
1201
+ "isPullRequest": false,
1202
+ "reactions": {
1203
+ "totalCount": 0,
1204
+ "plusOne": 0,
1205
+ "minusOne": 0,
1206
+ "laugh": 0,
1207
+ "hooray": 0,
1208
+ "confused": 0,
1209
+ "heart": 0,
1210
+ "rocket": 0,
1211
+ "eyes": 0
1212
+ }
1213
+ },
1214
+ {
1215
+ "id": 36,
1216
+ "number": 36,
1217
+ "title": "Container image vulnerability scanning in CI pipeline",
1218
+ "body": "Integrate Trivy or Snyk container scanning into the CI pipeline to catch CVEs before deployment.",
1219
+ "state": "open",
1220
+ "labels": [
1221
+ "P1"
1222
+ ],
1223
+ "assignees": [],
1224
+ "milestone": null,
1225
+ "createdAt": "2024-02-05T00:00:00Z",
1226
+ "updatedAt": "2024-02-05T00:00:00Z",
1227
+ "repoId": 1,
1228
+ "nodeId": "I_36",
1229
+ "stateReason": null,
1230
+ "locked": false,
1231
+ "authorLogin": "devops-lead",
1232
+ "closedAt": null,
1233
+ "closedBy": null,
1234
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/36",
1235
+ "isPullRequest": false,
1236
+ "reactions": {
1237
+ "totalCount": 0,
1238
+ "plusOne": 0,
1239
+ "minusOne": 0,
1240
+ "laugh": 0,
1241
+ "hooray": 0,
1242
+ "confused": 0,
1243
+ "heart": 0,
1244
+ "rocket": 0,
1245
+ "eyes": 0
1246
+ }
1247
+ },
1248
+ {
1249
+ "id": 37,
1250
+ "number": 37,
1251
+ "title": "Kubernetes cluster autoscaler not scaling down idle nodes",
1252
+ "body": "The cluster autoscaler is provisioning new nodes under load but failing to scale down when demand drops. Wasting significant compute costs.",
1253
+ "state": "open",
1254
+ "labels": [
1255
+ "P0"
1256
+ ],
1257
+ "assignees": [],
1258
+ "milestone": null,
1259
+ "createdAt": "2024-02-06T00:00:00Z",
1260
+ "updatedAt": "2024-02-06T00:00:00Z",
1261
+ "repoId": 1,
1262
+ "nodeId": "I_37",
1263
+ "stateReason": null,
1264
+ "locked": false,
1265
+ "authorLogin": "devops-lead",
1266
+ "closedAt": null,
1267
+ "closedBy": null,
1268
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/37",
1269
+ "isPullRequest": false,
1270
+ "reactions": {
1271
+ "totalCount": 0,
1272
+ "plusOne": 0,
1273
+ "minusOne": 0,
1274
+ "laugh": 0,
1275
+ "hooray": 0,
1276
+ "confused": 0,
1277
+ "heart": 0,
1278
+ "rocket": 0,
1279
+ "eyes": 0
1280
+ }
1281
+ },
1282
+ {
1283
+ "id": 38,
1284
+ "number": 38,
1285
+ "title": "Implement GitOps workflow with ArgoCD",
1286
+ "body": "Migrate from push-based deployments to a GitOps pull-based model using ArgoCD.",
1287
+ "state": "open",
1288
+ "labels": [
1289
+ "enhancement"
1290
+ ],
1291
+ "assignees": [],
1292
+ "milestone": null,
1293
+ "createdAt": "2024-02-07T00:00:00Z",
1294
+ "updatedAt": "2024-02-07T00:00:00Z",
1295
+ "repoId": 1,
1296
+ "nodeId": "I_38",
1297
+ "stateReason": null,
1298
+ "locked": false,
1299
+ "authorLogin": "devops-lead",
1300
+ "closedAt": null,
1301
+ "closedBy": null,
1302
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/38",
1303
+ "isPullRequest": false,
1304
+ "reactions": {
1305
+ "totalCount": 0,
1306
+ "plusOne": 0,
1307
+ "minusOne": 0,
1308
+ "laugh": 0,
1309
+ "hooray": 0,
1310
+ "confused": 0,
1311
+ "heart": 0,
1312
+ "rocket": 0,
1313
+ "eyes": 0
1314
+ }
1315
+ },
1316
+ {
1317
+ "id": 39,
1318
+ "number": 39,
1319
+ "title": "RDS automated backups retention period too short",
1320
+ "body": "The current 7-day backup retention does not meet the 30-day compliance requirement.",
1321
+ "state": "open",
1322
+ "labels": [
1323
+ "P2"
1324
+ ],
1325
+ "assignees": [],
1326
+ "milestone": null,
1327
+ "createdAt": "2024-02-08T00:00:00Z",
1328
+ "updatedAt": "2024-02-08T00:00:00Z",
1329
+ "repoId": 1,
1330
+ "nodeId": "I_39",
1331
+ "stateReason": null,
1332
+ "locked": false,
1333
+ "authorLogin": "devops-lead",
1334
+ "closedAt": null,
1335
+ "closedBy": null,
1336
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/39",
1337
+ "isPullRequest": false,
1338
+ "reactions": {
1339
+ "totalCount": 0,
1340
+ "plusOne": 0,
1341
+ "minusOne": 0,
1342
+ "laugh": 0,
1343
+ "hooray": 0,
1344
+ "confused": 0,
1345
+ "heart": 0,
1346
+ "rocket": 0,
1347
+ "eyes": 0
1348
+ }
1349
+ },
1350
+ {
1351
+ "id": 40,
1352
+ "number": 40,
1353
+ "title": "Service mesh implementation with Istio",
1354
+ "body": "Deploy Istio service mesh for mTLS, traffic management, and observability across microservices.",
1355
+ "state": "open",
1356
+ "labels": [
1357
+ "enhancement"
1358
+ ],
1359
+ "assignees": [],
1360
+ "milestone": null,
1361
+ "createdAt": "2024-02-09T00:00:00Z",
1362
+ "updatedAt": "2024-02-09T00:00:00Z",
1363
+ "repoId": 1,
1364
+ "nodeId": "I_40",
1365
+ "stateReason": null,
1366
+ "locked": false,
1367
+ "authorLogin": "devops-lead",
1368
+ "closedAt": null,
1369
+ "closedBy": null,
1370
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/40",
1371
+ "isPullRequest": false,
1372
+ "reactions": {
1373
+ "totalCount": 0,
1374
+ "plusOne": 0,
1375
+ "minusOne": 0,
1376
+ "laugh": 0,
1377
+ "hooray": 0,
1378
+ "confused": 0,
1379
+ "heart": 0,
1380
+ "rocket": 0,
1381
+ "eyes": 0
1382
+ }
1383
+ },
1384
+ {
1385
+ "id": 41,
1386
+ "number": 41,
1387
+ "title": "Lambda function cold start latency exceeding SLA",
1388
+ "body": "Several Lambda functions in the API path have cold start times over 3 seconds, breaching the 2-second SLA.",
1389
+ "state": "open",
1390
+ "labels": [
1391
+ "bug"
1392
+ ],
1393
+ "assignees": [],
1394
+ "milestone": null,
1395
+ "createdAt": "2024-02-10T00:00:00Z",
1396
+ "updatedAt": "2024-02-10T00:00:00Z",
1397
+ "repoId": 1,
1398
+ "nodeId": "I_41",
1399
+ "stateReason": null,
1400
+ "locked": false,
1401
+ "authorLogin": "devops-lead",
1402
+ "closedAt": null,
1403
+ "closedBy": null,
1404
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/41",
1405
+ "isPullRequest": false,
1406
+ "reactions": {
1407
+ "totalCount": 0,
1408
+ "plusOne": 0,
1409
+ "minusOne": 0,
1410
+ "laugh": 0,
1411
+ "hooray": 0,
1412
+ "confused": 0,
1413
+ "heart": 0,
1414
+ "rocket": 0,
1415
+ "eyes": 0
1416
+ }
1417
+ },
1418
+ {
1419
+ "id": 42,
1420
+ "number": 42,
1421
+ "title": "Implement cost allocation tags across all resources",
1422
+ "body": "Enforce mandatory cost allocation tags (team, environment, project) on all AWS resources.",
1423
+ "state": "open",
1424
+ "labels": [
1425
+ "P2"
1426
+ ],
1427
+ "assignees": [],
1428
+ "milestone": null,
1429
+ "createdAt": "2024-02-11T00:00:00Z",
1430
+ "updatedAt": "2024-02-11T00:00:00Z",
1431
+ "repoId": 1,
1432
+ "nodeId": "I_42",
1433
+ "stateReason": null,
1434
+ "locked": false,
1435
+ "authorLogin": "devops-lead",
1436
+ "closedAt": null,
1437
+ "closedBy": null,
1438
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/42",
1439
+ "isPullRequest": false,
1440
+ "reactions": {
1441
+ "totalCount": 0,
1442
+ "plusOne": 0,
1443
+ "minusOne": 0,
1444
+ "laugh": 0,
1445
+ "hooray": 0,
1446
+ "confused": 0,
1447
+ "heart": 0,
1448
+ "rocket": 0,
1449
+ "eyes": 0
1450
+ }
1451
+ },
1452
+ {
1453
+ "id": 43,
1454
+ "number": 43,
1455
+ "title": "Configure PagerDuty integration for critical alerts",
1456
+ "body": "Route P0 and P1 CloudWatch alarms to PagerDuty for on-call notification.",
1457
+ "state": "open",
1458
+ "labels": [
1459
+ "P1"
1460
+ ],
1461
+ "assignees": [],
1462
+ "milestone": null,
1463
+ "createdAt": "2024-02-12T00:00:00Z",
1464
+ "updatedAt": "2024-02-12T00:00:00Z",
1465
+ "repoId": 1,
1466
+ "nodeId": "I_43",
1467
+ "stateReason": null,
1468
+ "locked": false,
1469
+ "authorLogin": "devops-lead",
1470
+ "closedAt": null,
1471
+ "closedBy": null,
1472
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/43",
1473
+ "isPullRequest": false,
1474
+ "reactions": {
1475
+ "totalCount": 0,
1476
+ "plusOne": 0,
1477
+ "minusOne": 0,
1478
+ "laugh": 0,
1479
+ "hooray": 0,
1480
+ "confused": 0,
1481
+ "heart": 0,
1482
+ "rocket": 0,
1483
+ "eyes": 0
1484
+ }
1485
+ },
1486
+ {
1487
+ "id": 44,
1488
+ "number": 44,
1489
+ "title": "EBS volumes not encrypted in dev account",
1490
+ "body": "Multiple EBS volumes in the development account were created without encryption enabled.",
1491
+ "state": "open",
1492
+ "labels": [
1493
+ "bug"
1494
+ ],
1495
+ "assignees": [],
1496
+ "milestone": null,
1497
+ "createdAt": "2024-02-13T00:00:00Z",
1498
+ "updatedAt": "2024-02-13T00:00:00Z",
1499
+ "repoId": 1,
1500
+ "nodeId": "I_44",
1501
+ "stateReason": null,
1502
+ "locked": false,
1503
+ "authorLogin": "devops-lead",
1504
+ "closedAt": null,
1505
+ "closedBy": null,
1506
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/44",
1507
+ "isPullRequest": false,
1508
+ "reactions": {
1509
+ "totalCount": 0,
1510
+ "plusOne": 0,
1511
+ "minusOne": 0,
1512
+ "laugh": 0,
1513
+ "hooray": 0,
1514
+ "confused": 0,
1515
+ "heart": 0,
1516
+ "rocket": 0,
1517
+ "eyes": 0
1518
+ }
1519
+ },
1520
+ {
1521
+ "id": 45,
1522
+ "number": 45,
1523
+ "title": "Production Kafka cluster broker rebalancing failure",
1524
+ "body": "Kafka partition reassignment is stuck, causing uneven load distribution and consumer lag spikes across the production cluster.",
1525
+ "state": "open",
1526
+ "labels": [
1527
+ "P0"
1528
+ ],
1529
+ "assignees": [],
1530
+ "milestone": null,
1531
+ "createdAt": "2024-02-14T00:00:00Z",
1532
+ "updatedAt": "2024-02-14T00:00:00Z",
1533
+ "repoId": 1,
1534
+ "nodeId": "I_45",
1535
+ "stateReason": null,
1536
+ "locked": false,
1537
+ "authorLogin": "devops-lead",
1538
+ "closedAt": null,
1539
+ "closedBy": null,
1540
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/45",
1541
+ "isPullRequest": false,
1542
+ "reactions": {
1543
+ "totalCount": 0,
1544
+ "plusOne": 0,
1545
+ "minusOne": 0,
1546
+ "laugh": 0,
1547
+ "hooray": 0,
1548
+ "confused": 0,
1549
+ "heart": 0,
1550
+ "rocket": 0,
1551
+ "eyes": 0
1552
+ }
1553
+ },
1554
+ {
1555
+ "id": 46,
1556
+ "number": 46,
1557
+ "title": "Set up AWS Organization with multi-account strategy",
1558
+ "body": "Create an AWS Organization structure with separate accounts for dev, staging, production, and shared services.",
1559
+ "state": "open",
1560
+ "labels": [
1561
+ "enhancement"
1562
+ ],
1563
+ "assignees": [],
1564
+ "milestone": null,
1565
+ "createdAt": "2024-02-15T00:00:00Z",
1566
+ "updatedAt": "2024-02-15T00:00:00Z",
1567
+ "repoId": 1,
1568
+ "nodeId": "I_46",
1569
+ "stateReason": null,
1570
+ "locked": false,
1571
+ "authorLogin": "devops-lead",
1572
+ "closedAt": null,
1573
+ "closedBy": null,
1574
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/46",
1575
+ "isPullRequest": false,
1576
+ "reactions": {
1577
+ "totalCount": 0,
1578
+ "plusOne": 0,
1579
+ "minusOne": 0,
1580
+ "laugh": 0,
1581
+ "hooray": 0,
1582
+ "confused": 0,
1583
+ "heart": 0,
1584
+ "rocket": 0,
1585
+ "eyes": 0
1586
+ }
1587
+ },
1588
+ {
1589
+ "id": 47,
1590
+ "number": 47,
1591
+ "title": "Ingress controller returning 502 errors under load",
1592
+ "body": "The NGINX ingress controller is returning 502 Bad Gateway errors when request rate exceeds 500 rps.",
1593
+ "state": "open",
1594
+ "labels": [
1595
+ "bug"
1596
+ ],
1597
+ "assignees": [],
1598
+ "milestone": null,
1599
+ "createdAt": "2024-02-16T00:00:00Z",
1600
+ "updatedAt": "2024-02-16T00:00:00Z",
1601
+ "repoId": 1,
1602
+ "nodeId": "I_47",
1603
+ "stateReason": null,
1604
+ "locked": false,
1605
+ "authorLogin": "devops-lead",
1606
+ "closedAt": null,
1607
+ "closedBy": null,
1608
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/47",
1609
+ "isPullRequest": false,
1610
+ "reactions": {
1611
+ "totalCount": 0,
1612
+ "plusOne": 0,
1613
+ "minusOne": 0,
1614
+ "laugh": 0,
1615
+ "hooray": 0,
1616
+ "confused": 0,
1617
+ "heart": 0,
1618
+ "rocket": 0,
1619
+ "eyes": 0
1620
+ }
1621
+ },
1622
+ {
1623
+ "id": 48,
1624
+ "number": 48,
1625
+ "title": "Implement infrastructure cost anomaly detection",
1626
+ "body": "Set up AWS Cost Anomaly Detection to alert on unexpected spending spikes across all accounts.",
1627
+ "state": "open",
1628
+ "labels": [
1629
+ "P2"
1630
+ ],
1631
+ "assignees": [],
1632
+ "milestone": null,
1633
+ "createdAt": "2024-02-17T00:00:00Z",
1634
+ "updatedAt": "2024-02-17T00:00:00Z",
1635
+ "repoId": 1,
1636
+ "nodeId": "I_48",
1637
+ "stateReason": null,
1638
+ "locked": false,
1639
+ "authorLogin": "devops-lead",
1640
+ "closedAt": null,
1641
+ "closedBy": null,
1642
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/48",
1643
+ "isPullRequest": false,
1644
+ "reactions": {
1645
+ "totalCount": 0,
1646
+ "plusOne": 0,
1647
+ "minusOne": 0,
1648
+ "laugh": 0,
1649
+ "hooray": 0,
1650
+ "confused": 0,
1651
+ "heart": 0,
1652
+ "rocket": 0,
1653
+ "eyes": 0
1654
+ }
1655
+ },
1656
+ {
1657
+ "id": 49,
1658
+ "number": 49,
1659
+ "title": "Migrate CI/CD from Jenkins to GitHub Actions",
1660
+ "body": "Replace the legacy Jenkins server with GitHub Actions workflows for all build and deployment pipelines.",
1661
+ "state": "open",
1662
+ "labels": [
1663
+ "P1"
1664
+ ],
1665
+ "assignees": [],
1666
+ "milestone": null,
1667
+ "createdAt": "2024-02-18T00:00:00Z",
1668
+ "updatedAt": "2024-02-18T00:00:00Z",
1669
+ "repoId": 1,
1670
+ "nodeId": "I_49",
1671
+ "stateReason": null,
1672
+ "locked": false,
1673
+ "authorLogin": "devops-lead",
1674
+ "closedAt": null,
1675
+ "closedBy": null,
1676
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/49",
1677
+ "isPullRequest": false,
1678
+ "reactions": {
1679
+ "totalCount": 0,
1680
+ "plusOne": 0,
1681
+ "minusOne": 0,
1682
+ "laugh": 0,
1683
+ "hooray": 0,
1684
+ "confused": 0,
1685
+ "heart": 0,
1686
+ "rocket": 0,
1687
+ "eyes": 0
1688
+ }
1689
+ },
1690
+ {
1691
+ "id": 50,
1692
+ "number": 50,
1693
+ "title": "Terraform provider version pinning inconsistencies",
1694
+ "body": "Several modules have unpinned or loosely pinned provider versions leading to unexpected behavior on apply.",
1695
+ "state": "open",
1696
+ "labels": [
1697
+ "bug"
1698
+ ],
1699
+ "assignees": [],
1700
+ "milestone": null,
1701
+ "createdAt": "2024-02-19T00:00:00Z",
1702
+ "updatedAt": "2024-02-19T00:00:00Z",
1703
+ "repoId": 1,
1704
+ "nodeId": "I_50",
1705
+ "stateReason": null,
1706
+ "locked": false,
1707
+ "authorLogin": "devops-lead",
1708
+ "closedAt": null,
1709
+ "closedBy": null,
1710
+ "htmlUrl": "https://github.com/devops-lead/infrastructure/issues/50",
1711
+ "isPullRequest": false,
1712
+ "reactions": {
1713
+ "totalCount": 0,
1714
+ "plusOne": 0,
1715
+ "minusOne": 0,
1716
+ "laugh": 0,
1717
+ "hooray": 0,
1718
+ "confused": 0,
1719
+ "heart": 0,
1720
+ "rocket": 0,
1721
+ "eyes": 0
1722
+ }
1723
+ }
1724
+ ],
1725
+ "labels": [
1726
+ {
1727
+ "id": 3,
1728
+ "name": "critical",
1729
+ "color": "b60205",
1730
+ "description": "Critical priority issue requiring immediate attention",
1731
+ "createdAt": "2024-01-01T00:00:00Z",
1732
+ "updatedAt": "2024-01-01T00:00:00Z",
1733
+ "repoId": 1,
1734
+ "nodeId": "LA_3",
1735
+ "isDefault": false
1736
+ },
1737
+ {
1738
+ "id": 4,
1739
+ "name": "P0",
1740
+ "color": "e11d48",
1741
+ "description": "Highest priority - immediate action required",
1742
+ "createdAt": "2024-01-01T00:00:00Z",
1743
+ "updatedAt": "2024-01-01T00:00:00Z",
1744
+ "repoId": 1,
1745
+ "nodeId": "LA_4",
1746
+ "isDefault": false
1747
+ },
1748
+ {
1749
+ "id": 5,
1750
+ "name": "P1",
1751
+ "color": "f97316",
1752
+ "description": "High priority - address within current sprint",
1753
+ "createdAt": "2024-01-01T00:00:00Z",
1754
+ "updatedAt": "2024-01-01T00:00:00Z",
1755
+ "repoId": 1,
1756
+ "nodeId": "LA_5",
1757
+ "isDefault": false
1758
+ },
1759
+ {
1760
+ "id": 6,
1761
+ "name": "P2",
1762
+ "color": "facc15",
1763
+ "description": "Medium priority - plan for upcoming sprint",
1764
+ "createdAt": "2024-01-01T00:00:00Z",
1765
+ "updatedAt": "2024-01-01T00:00:00Z",
1766
+ "repoId": 1,
1767
+ "nodeId": "LA_6",
1768
+ "isDefault": false
1769
+ }
1770
+ ],
1771
+ "comments": [],
1772
+ "pullRequests": [],
1773
+ "branches": [],
1774
+ "files": [],
1775
+ "commits": [],
1776
+ "reviews": [],
1777
+ "workflows": [],
1778
+ "workflowRuns": [],
1779
+ "repos": [
1780
+ {
1781
+ "id": 1,
1782
+ "owner": "devops-lead",
1783
+ "name": "infrastructure",
1784
+ "fullName": "devops-lead/infrastructure",
1785
+ "description": "Infrastructure management and automation",
1786
+ "private": false,
1787
+ "defaultBranch": "main",
1788
+ "openIssuesCount": 45,
1789
+ "createdAt": "2024-01-01T00:00:00Z",
1790
+ "updatedAt": "2024-01-01T00:00:00Z",
1791
+ "nodeId": "R_1",
1792
+ "htmlUrl": "https://github.com/devops-lead/infrastructure",
1793
+ "cloneUrl": "https://github.com/devops-lead/infrastructure.git",
1794
+ "sshUrl": "git@github.com:devops-lead/infrastructure.git",
1795
+ "language": "HCL",
1796
+ "forksCount": 0,
1797
+ "stargazersCount": 2,
1798
+ "watchersCount": 2,
1799
+ "topics": [
1800
+ "terraform",
1801
+ "infrastructure"
1802
+ ],
1803
+ "hasIssues": true,
1804
+ "hasProjects": true,
1805
+ "hasWiki": true,
1806
+ "hasPages": false,
1807
+ "archived": false,
1808
+ "disabled": false,
1809
+ "visibility": "public",
1810
+ "pushedAt": "2024-02-19T00:00:00Z",
1811
+ "license": "MIT",
1812
+ "allowMergeCommit": true,
1813
+ "allowSquashMerge": true,
1814
+ "allowRebaseMerge": true,
1815
+ "allowAutoMerge": false,
1816
+ "deleteBranchOnMerge": false,
1817
+ "fork": false
1818
+ }
1819
+ ]
1820
+ }