@a5c-ai/krate 5.0.1-staging.eaefc7aec → 5.0.1-staging.efbc1959c0a1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/krate-demo.mjs +0 -0
- package/bin/krate-server.mjs +0 -0
- package/dist/krate-controller-ui.json +231 -8
- package/dist/krate-lifecycle.json +1 -1
- package/dist/krate-runtime-snapshot.json +223 -53
- package/dist/krate-summary.json +5 -3
- package/docs/architecture-v2.md +2673 -0
- package/docs/crd-behaviors-and-relationships.md +3787 -0
- package/docs/integration-and-design-decisions.md +1474 -0
- package/docs/requirements-v2.md +187 -0
- package/docs/sdk-api-reference.md +990 -0
- package/docs/system-spec-v2.md +1014 -0
- package/docs/web-console-spec.md +397 -0
- package/package.json +1 -1
- package/scripts/validate-ui.mjs +265 -196
- package/src/agent-dispatch-controller.js +266 -28
- package/src/agent-mux-client.js +226 -5
- package/src/agent-workspace-controller.js +257 -2
- package/src/artifact-registry-controller.js +542 -0
- package/src/assistant-runtime.js +230 -0
- package/src/controller-client.js +112 -50
- package/src/controller-ui.js +79 -12
- package/src/data-plane.js +3 -2
- package/src/gitea-backend.js +36 -0
- package/src/hooks-lifecycle.js +117 -0
- package/src/index.js +3 -0
- package/src/kubernetes-controller-async.js +23 -3
- package/src/kubernetes-controller.js +15 -2
- package/src/resource-model.js +10 -5
- package/tests/agent-dispatch-controller.test.js +227 -48
- package/tests/agent-mux-client.test.js +126 -0
- package/tests/agent-mux-integration.test.js +971 -0
- package/tests/agent-resources.test.js +8 -8
- package/tests/artifact-registry.test.js +511 -0
- package/tests/assistant-runtime.test.js +506 -0
- package/tests/codespace-controller.test.js +318 -0
- package/tests/controller-client.test.js +133 -0
- package/tests/deployment.test.js +33 -20
- package/tests/e2e/lifecycle.test.js +4 -1
- package/tests/event-bus-integration.test.js +190 -0
- package/tests/external-resource-model.test.js +8 -8
- package/tests/hooks-lifecycle.test.js +364 -0
- package/tests/krate.test.js +56 -4
- package/tests/notification-integration.test.js +179 -0
- package/tests/runner-integration.test.js +231 -0
- package/tests/snapshot-performance.test.js +68 -0
package/bin/krate-demo.mjs
CHANGED
|
File without changes
|
package/bin/krate-server.mjs
CHANGED
|
File without changes
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"platformNamespace": "krate-org-default"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
22
|
-
"generatedAt": "2026-05-
|
|
22
|
+
"generatedAt": "2026-05-20T09:53:59.185Z",
|
|
23
23
|
"correlationId": null,
|
|
24
24
|
"controller": {
|
|
25
25
|
"mode": "krate-workspace",
|
|
@@ -293,6 +293,8 @@
|
|
|
293
293
|
"invites": 1,
|
|
294
294
|
"repositories": 1,
|
|
295
295
|
"pullRequests": 0,
|
|
296
|
+
"issues": 0,
|
|
297
|
+
"projects": 0,
|
|
296
298
|
"pipelines": 0,
|
|
297
299
|
"jobs": 0,
|
|
298
300
|
"runnerPools": 1,
|
|
@@ -327,7 +329,9 @@
|
|
|
327
329
|
"area": "api",
|
|
328
330
|
"resources": [
|
|
329
331
|
"Repository",
|
|
332
|
+
"KrateProject",
|
|
330
333
|
"PullRequest",
|
|
334
|
+
"Issue",
|
|
331
335
|
"Pipeline"
|
|
332
336
|
],
|
|
333
337
|
"docs": "src/api-controller.js"
|
|
@@ -579,7 +583,7 @@
|
|
|
579
583
|
"maintainers"
|
|
580
584
|
],
|
|
581
585
|
"invitedBy": "admin",
|
|
582
|
-
"expiresAt": "2026-05-
|
|
586
|
+
"expiresAt": "2026-05-27T09:53:59.182Z"
|
|
583
587
|
},
|
|
584
588
|
"status": {
|
|
585
589
|
"phase": "Pending",
|
|
@@ -591,7 +595,7 @@
|
|
|
591
595
|
"Pending": 1
|
|
592
596
|
},
|
|
593
597
|
"storage": "etcd",
|
|
594
|
-
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n namespace: krate-org-default\n labels:\n role: member\n annotations:\n name: new-user-example-com\n resourceVersion: 1\nspec:\n organizationRef: default\n email: new-user@example.com\n role: member\n teams:\n - maintainers\n invitedBy: admin\n expiresAt: 2026-05-
|
|
598
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n namespace: krate-org-default\n labels:\n role: member\n annotations:\n name: new-user-example-com\n resourceVersion: 1\nspec:\n organizationRef: default\n email: new-user@example.com\n role: member\n teams:\n - maintainers\n invitedBy: admin\n expiresAt: 2026-05-27T09:53:59.182Z\nstatus:\n phase: Pending\n storage: etcd\n",
|
|
595
599
|
"action": {
|
|
596
600
|
"list": "Open Invite records in krate-org-default",
|
|
597
601
|
"watch": "Watch Invite updates in krate-org-default",
|
|
@@ -803,9 +807,43 @@
|
|
|
803
807
|
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
804
808
|
},
|
|
805
809
|
"forgeRecords": {
|
|
806
|
-
"issues": "Gitea /repos/
|
|
810
|
+
"issues": "Gitea /repos/krate/_krate-org-default_/issues",
|
|
807
811
|
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
808
812
|
},
|
|
813
|
+
"issueSync": {
|
|
814
|
+
"backend": "gitea",
|
|
815
|
+
"owner": "krate-org-default",
|
|
816
|
+
"repo": "_krate-org-default_",
|
|
817
|
+
"issue": "<issue>",
|
|
818
|
+
"project": null,
|
|
819
|
+
"repositoryRefs": [
|
|
820
|
+
"krate-demo"
|
|
821
|
+
],
|
|
822
|
+
"metadataKeys": [
|
|
823
|
+
"krate.a5c.ai/project",
|
|
824
|
+
"krate.a5c.ai/repositories"
|
|
825
|
+
],
|
|
826
|
+
"actions": [
|
|
827
|
+
{
|
|
828
|
+
"action": "ensureOrgMemoryRepository",
|
|
829
|
+
"owner": "krate-org-default",
|
|
830
|
+
"repo": "_krate-org-default_"
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
"action": "syncIssue",
|
|
834
|
+
"owner": "krate-org-default",
|
|
835
|
+
"repo": "_krate-org-default_",
|
|
836
|
+
"issue": "<issue>"
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
"action": "writeIssueRepositoryMetadata",
|
|
840
|
+
"issue": "<issue>",
|
|
841
|
+
"repositories": [
|
|
842
|
+
"krate-demo"
|
|
843
|
+
]
|
|
844
|
+
}
|
|
845
|
+
]
|
|
846
|
+
},
|
|
809
847
|
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
810
848
|
"integrationPlan": {
|
|
811
849
|
"backend": "gitea",
|
|
@@ -961,7 +999,7 @@
|
|
|
961
999
|
"Ready": 1
|
|
962
1000
|
},
|
|
963
1001
|
"storage": "etcd",
|
|
964
|
-
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n namespace: krate-org-default\n labels:\n gitBackend: gitea\n annotations:\n name: krate-demo\n resourceVersion: 1\nspec:\n organizationRef: default\n visibility: private\n gitHosting:\n backend: gitea\n owner: krate\n repository: krate-demo\n branch: main\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n deployKeyTitle: krate-argocd\n organization:\n kind: Organization\n name: krate\n delegatedTo: Gitea /api/v1/orgs\n sshKeys:\n kind: SSHKey\n scopes:\n - user\n - deploy\n - argocd\n delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n permissions:\n kind: RepositoryPermission\n defaultCollaborator: write\n adminTeam: maintainers\n delegatedTo: Gitea collaborators and team repository APIs\n forgeRecords:\n issues: Gitea /repos/
|
|
1002
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n namespace: krate-org-default\n labels:\n gitBackend: gitea\n annotations:\n name: krate-demo\n resourceVersion: 1\nspec:\n organizationRef: default\n visibility: private\n gitHosting:\n backend: gitea\n owner: krate\n repository: krate-demo\n branch: main\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n deployKeyTitle: krate-argocd\n organization:\n kind: Organization\n name: krate\n delegatedTo: Gitea /api/v1/orgs\n sshKeys:\n kind: SSHKey\n scopes:\n - user\n - deploy\n - argocd\n delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n permissions:\n kind: RepositoryPermission\n defaultCollaborator: write\n adminTeam: maintainers\n delegatedTo: Gitea collaborators and team repository APIs\n forgeRecords:\n issues: Gitea /repos/krate/_krate-org-default_/issues\n pullRequests: Gitea /repos/{owner}/{repo}/pulls\n issueSync:\n backend: gitea\n owner: krate-org-default\n repo: _krate-org-default_\n issue: <issue>\n project: null\n repositoryRefs:\n - krate-demo\n metadataKeys:\n - krate.a5c.ai/project\n - krate.a5c.ai/repositories\n actions:\n - action: ensureOrgMemoryRepository\n owner: krate-org-default\n repo: _krate-org-default_\n - action: syncIssue\n owner: krate-org-default\n repo: _krate-org-default_\n issue: <issue>\n - action: writeIssueRepositoryMetadata\n issue: <issue>\n repositories:\n - krate-demo\n webhookUrl: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage:\n mode: gitea\n persistentVolumeClaim: krate-gitea-data\n owner: krate\n repository: krate-demo\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n objectStorage:\n lfs: true\n artifacts: true\n search:\n provider: zoekt\n enabled: false\nstatus:\n ready: true\n route:\n repositoryName: krate-demo\n backend: gitea\n owner: krate\n store: gitea-primary\n receivePackReady: true\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n gitHosting:\n backend: gitea\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage: etcd\n",
|
|
965
1003
|
"action": {
|
|
966
1004
|
"list": "Open Repository records in krate-org-default",
|
|
967
1005
|
"watch": "Watch Repository updates in krate-org-default",
|
|
@@ -2162,6 +2200,91 @@
|
|
|
2162
2200
|
"delete": "Delete ExternalBackendSyncPolicy in krate-org-default"
|
|
2163
2201
|
}
|
|
2164
2202
|
},
|
|
2203
|
+
{
|
|
2204
|
+
"kind": "ArtifactRegistry",
|
|
2205
|
+
"plural": "artifactregistries",
|
|
2206
|
+
"apiResource": "artifactregistries.krate.a5c.ai",
|
|
2207
|
+
"count": 0,
|
|
2208
|
+
"names": [],
|
|
2209
|
+
"items": [],
|
|
2210
|
+
"phases": {},
|
|
2211
|
+
"storage": "etcd",
|
|
2212
|
+
"yaml": null,
|
|
2213
|
+
"action": {
|
|
2214
|
+
"list": "Open ArtifactRegistry records in krate-org-default",
|
|
2215
|
+
"watch": "Watch ArtifactRegistry updates in krate-org-default",
|
|
2216
|
+
"apply": "Save resource changes",
|
|
2217
|
+
"delete": "Delete ArtifactRegistry in krate-org-default"
|
|
2218
|
+
}
|
|
2219
|
+
},
|
|
2220
|
+
{
|
|
2221
|
+
"kind": "ArtifactFeed",
|
|
2222
|
+
"plural": "artifactfeeds",
|
|
2223
|
+
"apiResource": "artifactfeeds.krate.a5c.ai",
|
|
2224
|
+
"count": 0,
|
|
2225
|
+
"names": [],
|
|
2226
|
+
"items": [],
|
|
2227
|
+
"phases": {},
|
|
2228
|
+
"storage": "etcd",
|
|
2229
|
+
"yaml": null,
|
|
2230
|
+
"action": {
|
|
2231
|
+
"list": "Open ArtifactFeed records in krate-org-default",
|
|
2232
|
+
"watch": "Watch ArtifactFeed updates in krate-org-default",
|
|
2233
|
+
"apply": "Save resource changes",
|
|
2234
|
+
"delete": "Delete ArtifactFeed in krate-org-default"
|
|
2235
|
+
}
|
|
2236
|
+
},
|
|
2237
|
+
{
|
|
2238
|
+
"kind": "ArtifactAccessPolicy",
|
|
2239
|
+
"plural": "artifactaccesspolicies",
|
|
2240
|
+
"apiResource": "artifactaccesspolicies.krate.a5c.ai",
|
|
2241
|
+
"count": 0,
|
|
2242
|
+
"names": [],
|
|
2243
|
+
"items": [],
|
|
2244
|
+
"phases": {},
|
|
2245
|
+
"storage": "etcd",
|
|
2246
|
+
"yaml": null,
|
|
2247
|
+
"action": {
|
|
2248
|
+
"list": "Open ArtifactAccessPolicy records in krate-org-default",
|
|
2249
|
+
"watch": "Watch ArtifactAccessPolicy updates in krate-org-default",
|
|
2250
|
+
"apply": "Save resource changes",
|
|
2251
|
+
"delete": "Delete ArtifactAccessPolicy in krate-org-default"
|
|
2252
|
+
}
|
|
2253
|
+
},
|
|
2254
|
+
{
|
|
2255
|
+
"kind": "ArtifactVersion",
|
|
2256
|
+
"plural": "artifactversions",
|
|
2257
|
+
"apiResource": "artifactversions.krate.a5c.ai",
|
|
2258
|
+
"count": 0,
|
|
2259
|
+
"names": [],
|
|
2260
|
+
"items": [],
|
|
2261
|
+
"phases": {},
|
|
2262
|
+
"storage": "postgres",
|
|
2263
|
+
"yaml": null,
|
|
2264
|
+
"action": {
|
|
2265
|
+
"list": "Open ArtifactVersion records in krate-org-default",
|
|
2266
|
+
"watch": "Watch ArtifactVersion updates in krate-org-default",
|
|
2267
|
+
"apply": "Save resource changes",
|
|
2268
|
+
"delete": "Delete ArtifactVersion in krate-org-default"
|
|
2269
|
+
}
|
|
2270
|
+
},
|
|
2271
|
+
{
|
|
2272
|
+
"kind": "ArtifactDownload",
|
|
2273
|
+
"plural": "artifactdownloads",
|
|
2274
|
+
"apiResource": "artifactdownloads.krate.a5c.ai",
|
|
2275
|
+
"count": 0,
|
|
2276
|
+
"names": [],
|
|
2277
|
+
"items": [],
|
|
2278
|
+
"phases": {},
|
|
2279
|
+
"storage": "postgres",
|
|
2280
|
+
"yaml": null,
|
|
2281
|
+
"action": {
|
|
2282
|
+
"list": "Open ArtifactDownload records in krate-org-default",
|
|
2283
|
+
"watch": "Watch ArtifactDownload updates in krate-org-default",
|
|
2284
|
+
"apply": "Save resource changes",
|
|
2285
|
+
"delete": "Delete ArtifactDownload in krate-org-default"
|
|
2286
|
+
}
|
|
2287
|
+
},
|
|
2165
2288
|
{
|
|
2166
2289
|
"kind": "Secret",
|
|
2167
2290
|
"plural": "secrets",
|
|
@@ -2438,7 +2561,7 @@
|
|
|
2438
2561
|
"maintainers"
|
|
2439
2562
|
],
|
|
2440
2563
|
"phase": "Pending",
|
|
2441
|
-
"expiresAt": "2026-05-
|
|
2564
|
+
"expiresAt": "2026-05-27T09:53:59.182Z"
|
|
2442
2565
|
}
|
|
2443
2566
|
],
|
|
2444
2567
|
"mappings": [
|
|
@@ -2598,9 +2721,43 @@
|
|
|
2598
2721
|
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
2599
2722
|
},
|
|
2600
2723
|
"forgeRecords": {
|
|
2601
|
-
"issues": "Gitea /repos/
|
|
2724
|
+
"issues": "Gitea /repos/krate/_krate-org-default_/issues",
|
|
2602
2725
|
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
2603
2726
|
},
|
|
2727
|
+
"issueSync": {
|
|
2728
|
+
"backend": "gitea",
|
|
2729
|
+
"owner": "krate-org-default",
|
|
2730
|
+
"repo": "_krate-org-default_",
|
|
2731
|
+
"issue": "<issue>",
|
|
2732
|
+
"project": null,
|
|
2733
|
+
"repositoryRefs": [
|
|
2734
|
+
"krate-demo"
|
|
2735
|
+
],
|
|
2736
|
+
"metadataKeys": [
|
|
2737
|
+
"krate.a5c.ai/project",
|
|
2738
|
+
"krate.a5c.ai/repositories"
|
|
2739
|
+
],
|
|
2740
|
+
"actions": [
|
|
2741
|
+
{
|
|
2742
|
+
"action": "ensureOrgMemoryRepository",
|
|
2743
|
+
"owner": "krate-org-default",
|
|
2744
|
+
"repo": "_krate-org-default_"
|
|
2745
|
+
},
|
|
2746
|
+
{
|
|
2747
|
+
"action": "syncIssue",
|
|
2748
|
+
"owner": "krate-org-default",
|
|
2749
|
+
"repo": "_krate-org-default_",
|
|
2750
|
+
"issue": "<issue>"
|
|
2751
|
+
},
|
|
2752
|
+
{
|
|
2753
|
+
"action": "writeIssueRepositoryMetadata",
|
|
2754
|
+
"issue": "<issue>",
|
|
2755
|
+
"repositories": [
|
|
2756
|
+
"krate-demo"
|
|
2757
|
+
]
|
|
2758
|
+
}
|
|
2759
|
+
]
|
|
2760
|
+
},
|
|
2604
2761
|
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
2605
2762
|
"integrationPlan": {
|
|
2606
2763
|
"backend": "gitea",
|
|
@@ -2752,6 +2909,62 @@
|
|
|
2752
2909
|
}
|
|
2753
2910
|
}
|
|
2754
2911
|
],
|
|
2912
|
+
"projects": [],
|
|
2913
|
+
"issues": [],
|
|
2914
|
+
"issueSync": {
|
|
2915
|
+
"gitea": {
|
|
2916
|
+
"backend": "gitea",
|
|
2917
|
+
"owner": "default",
|
|
2918
|
+
"repo": "_default_",
|
|
2919
|
+
"issue": "<issue>",
|
|
2920
|
+
"project": null,
|
|
2921
|
+
"repositoryRefs": [
|
|
2922
|
+
"krate-demo"
|
|
2923
|
+
],
|
|
2924
|
+
"metadataKeys": [
|
|
2925
|
+
"krate.a5c.ai/project",
|
|
2926
|
+
"krate.a5c.ai/repositories"
|
|
2927
|
+
],
|
|
2928
|
+
"actions": [
|
|
2929
|
+
{
|
|
2930
|
+
"action": "ensureOrgMemoryRepository",
|
|
2931
|
+
"owner": "default",
|
|
2932
|
+
"repo": "_default_"
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
"action": "syncIssue",
|
|
2936
|
+
"owner": "default",
|
|
2937
|
+
"repo": "_default_",
|
|
2938
|
+
"issue": "<issue>"
|
|
2939
|
+
},
|
|
2940
|
+
{
|
|
2941
|
+
"action": "writeIssueRepositoryMetadata",
|
|
2942
|
+
"issue": "<issue>",
|
|
2943
|
+
"repositories": [
|
|
2944
|
+
"krate-demo"
|
|
2945
|
+
]
|
|
2946
|
+
}
|
|
2947
|
+
]
|
|
2948
|
+
},
|
|
2949
|
+
"github": {
|
|
2950
|
+
"backend": "github",
|
|
2951
|
+
"owner": "default",
|
|
2952
|
+
"project": null,
|
|
2953
|
+
"issue": "<issue>",
|
|
2954
|
+
"repositoryRefs": [
|
|
2955
|
+
"krate-demo"
|
|
2956
|
+
],
|
|
2957
|
+
"metadataKeys": [
|
|
2958
|
+
"project item fields",
|
|
2959
|
+
"krate repositories field"
|
|
2960
|
+
],
|
|
2961
|
+
"actions": [
|
|
2962
|
+
"syncProjectItem",
|
|
2963
|
+
"syncIssueMetadata",
|
|
2964
|
+
"syncRepositoryLinks"
|
|
2965
|
+
]
|
|
2966
|
+
}
|
|
2967
|
+
},
|
|
2755
2968
|
"excellentFlows": [
|
|
2756
2969
|
"Create or import a repository",
|
|
2757
2970
|
"Browse code and copy clone commands",
|
|
@@ -2767,6 +2980,16 @@
|
|
|
2767
2980
|
"value": 1,
|
|
2768
2981
|
"href": "/repositories"
|
|
2769
2982
|
},
|
|
2983
|
+
{
|
|
2984
|
+
"label": "Projects",
|
|
2985
|
+
"value": 0,
|
|
2986
|
+
"href": "/agents/projects"
|
|
2987
|
+
},
|
|
2988
|
+
{
|
|
2989
|
+
"label": "Issues",
|
|
2990
|
+
"value": 0,
|
|
2991
|
+
"href": "/inbox"
|
|
2992
|
+
},
|
|
2770
2993
|
{
|
|
2771
2994
|
"label": "Pull requests",
|
|
2772
2995
|
"value": 0,
|
|
@@ -2944,7 +3167,7 @@
|
|
|
2944
3167
|
"maintainers"
|
|
2945
3168
|
],
|
|
2946
3169
|
"phase": "Pending",
|
|
2947
|
-
"expiresAt": "2026-05-
|
|
3170
|
+
"expiresAt": "2026-05-27T09:53:59.182Z"
|
|
2948
3171
|
}
|
|
2949
3172
|
],
|
|
2950
3173
|
"mappings": [
|