digital-tools 2.0.1
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/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +1144 -0
- package/dist/define.d.ts +109 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +268 -0
- package/dist/define.js.map +1 -0
- package/dist/entities/advertising.d.ts +79 -0
- package/dist/entities/advertising.d.ts.map +1 -0
- package/dist/entities/advertising.js +1000 -0
- package/dist/entities/advertising.js.map +1 -0
- package/dist/entities/ai.d.ts +69 -0
- package/dist/entities/ai.d.ts.map +1 -0
- package/dist/entities/ai.js +757 -0
- package/dist/entities/ai.js.map +1 -0
- package/dist/entities/analytics.d.ts +83 -0
- package/dist/entities/analytics.d.ts.map +1 -0
- package/dist/entities/analytics.js +1589 -0
- package/dist/entities/analytics.js.map +1 -0
- package/dist/entities/automation.d.ts +61 -0
- package/dist/entities/automation.d.ts.map +1 -0
- package/dist/entities/automation.js +602 -0
- package/dist/entities/automation.js.map +1 -0
- package/dist/entities/communication.d.ts +96 -0
- package/dist/entities/communication.d.ts.map +1 -0
- package/dist/entities/communication.js +1151 -0
- package/dist/entities/communication.js.map +1 -0
- package/dist/entities/crm.d.ts +91 -0
- package/dist/entities/crm.d.ts.map +1 -0
- package/dist/entities/crm.js +1387 -0
- package/dist/entities/crm.js.map +1 -0
- package/dist/entities/design.d.ts +61 -0
- package/dist/entities/design.d.ts.map +1 -0
- package/dist/entities/design.js +547 -0
- package/dist/entities/design.js.map +1 -0
- package/dist/entities/development.d.ts +145 -0
- package/dist/entities/development.d.ts.map +1 -0
- package/dist/entities/development.js +2213 -0
- package/dist/entities/development.js.map +1 -0
- package/dist/entities/document.d.ts +54 -0
- package/dist/entities/document.d.ts.map +1 -0
- package/dist/entities/document.js +875 -0
- package/dist/entities/document.js.map +1 -0
- package/dist/entities/ecommerce.d.ts +93 -0
- package/dist/entities/ecommerce.d.ts.map +1 -0
- package/dist/entities/ecommerce.js +1430 -0
- package/dist/entities/ecommerce.js.map +1 -0
- package/dist/entities/experiment.d.ts +89 -0
- package/dist/entities/experiment.d.ts.map +1 -0
- package/dist/entities/experiment.js +1040 -0
- package/dist/entities/experiment.js.map +1 -0
- package/dist/entities/finance.d.ts +272 -0
- package/dist/entities/finance.d.ts.map +1 -0
- package/dist/entities/finance.js +3479 -0
- package/dist/entities/finance.js.map +1 -0
- package/dist/entities/forms.d.ts +91 -0
- package/dist/entities/forms.d.ts.map +1 -0
- package/dist/entities/forms.js +1893 -0
- package/dist/entities/forms.js.map +1 -0
- package/dist/entities/hr.d.ts +62 -0
- package/dist/entities/hr.d.ts.map +1 -0
- package/dist/entities/hr.js +662 -0
- package/dist/entities/hr.js.map +1 -0
- package/dist/entities/identity.d.ts +90 -0
- package/dist/entities/identity.d.ts.map +1 -0
- package/dist/entities/identity.js +998 -0
- package/dist/entities/identity.js.map +1 -0
- package/dist/entities/index.d.ts +410 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +283 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/infrastructure.d.ts +98 -0
- package/dist/entities/infrastructure.d.ts.map +1 -0
- package/dist/entities/infrastructure.js +1154 -0
- package/dist/entities/infrastructure.js.map +1 -0
- package/dist/entities/knowledge.d.ts +98 -0
- package/dist/entities/knowledge.d.ts.map +1 -0
- package/dist/entities/knowledge.js +1439 -0
- package/dist/entities/knowledge.js.map +1 -0
- package/dist/entities/marketing.d.ts +82 -0
- package/dist/entities/marketing.d.ts.map +1 -0
- package/dist/entities/marketing.js +1611 -0
- package/dist/entities/marketing.js.map +1 -0
- package/dist/entities/media.d.ts +83 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +1635 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/notification.d.ts +76 -0
- package/dist/entities/notification.d.ts.map +1 -0
- package/dist/entities/notification.js +1200 -0
- package/dist/entities/notification.js.map +1 -0
- package/dist/entities/presentation.d.ts +61 -0
- package/dist/entities/presentation.d.ts.map +1 -0
- package/dist/entities/presentation.js +1275 -0
- package/dist/entities/presentation.js.map +1 -0
- package/dist/entities/productivity.d.ts +92 -0
- package/dist/entities/productivity.d.ts.map +1 -0
- package/dist/entities/productivity.js +1318 -0
- package/dist/entities/productivity.js.map +1 -0
- package/dist/entities/project-management.d.ts +89 -0
- package/dist/entities/project-management.d.ts.map +1 -0
- package/dist/entities/project-management.js +1137 -0
- package/dist/entities/project-management.js.map +1 -0
- package/dist/entities/recruiting.d.ts +54 -0
- package/dist/entities/recruiting.d.ts.map +1 -0
- package/dist/entities/recruiting.js +737 -0
- package/dist/entities/recruiting.js.map +1 -0
- package/dist/entities/shipping.d.ts +52 -0
- package/dist/entities/shipping.d.ts.map +1 -0
- package/dist/entities/shipping.js +510 -0
- package/dist/entities/shipping.js.map +1 -0
- package/dist/entities/signature.d.ts +83 -0
- package/dist/entities/signature.d.ts.map +1 -0
- package/dist/entities/signature.js +1103 -0
- package/dist/entities/signature.js.map +1 -0
- package/dist/entities/site.d.ts +33 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +223 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/spreadsheet.d.ts +68 -0
- package/dist/entities/spreadsheet.d.ts.map +1 -0
- package/dist/entities/spreadsheet.js +1342 -0
- package/dist/entities/spreadsheet.js.map +1 -0
- package/dist/entities/storage.d.ts +74 -0
- package/dist/entities/storage.d.ts.map +1 -0
- package/dist/entities/storage.js +1199 -0
- package/dist/entities/storage.js.map +1 -0
- package/dist/entities/support.d.ts +83 -0
- package/dist/entities/support.d.ts.map +1 -0
- package/dist/entities/support.js +1167 -0
- package/dist/entities/support.js.map +1 -0
- package/dist/entities/video-conferencing.d.ts +129 -0
- package/dist/entities/video-conferencing.d.ts.map +1 -0
- package/dist/entities/video-conferencing.js +1751 -0
- package/dist/entities/video-conferencing.js.map +1 -0
- package/dist/entities/video.d.ts +76 -0
- package/dist/entities/video.d.ts.map +1 -0
- package/dist/entities/video.js +951 -0
- package/dist/entities/video.js.map +1 -0
- package/dist/entities.d.ts +147 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +1664 -0
- package/dist/entities.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/analytics/index.d.ts +19 -0
- package/dist/providers/analytics/index.d.ts.map +1 -0
- package/dist/providers/analytics/index.js +18 -0
- package/dist/providers/analytics/index.js.map +1 -0
- package/dist/providers/analytics/mixpanel.d.ts +25 -0
- package/dist/providers/analytics/mixpanel.d.ts.map +1 -0
- package/dist/providers/analytics/mixpanel.js +256 -0
- package/dist/providers/analytics/mixpanel.js.map +1 -0
- package/dist/providers/calendar/cal-com.d.ts +26 -0
- package/dist/providers/calendar/cal-com.d.ts.map +1 -0
- package/dist/providers/calendar/cal-com.js +304 -0
- package/dist/providers/calendar/cal-com.js.map +1 -0
- package/dist/providers/calendar/google-calendar.d.ts +25 -0
- package/dist/providers/calendar/google-calendar.d.ts.map +1 -0
- package/dist/providers/calendar/google-calendar.js +336 -0
- package/dist/providers/calendar/google-calendar.js.map +1 -0
- package/dist/providers/calendar/index.d.ts +20 -0
- package/dist/providers/calendar/index.d.ts.map +1 -0
- package/dist/providers/calendar/index.js +21 -0
- package/dist/providers/calendar/index.js.map +1 -0
- package/dist/providers/crm/hubspot.d.ts +25 -0
- package/dist/providers/crm/hubspot.d.ts.map +1 -0
- package/dist/providers/crm/hubspot.js +567 -0
- package/dist/providers/crm/hubspot.js.map +1 -0
- package/dist/providers/crm/index.d.ts +19 -0
- package/dist/providers/crm/index.d.ts.map +1 -0
- package/dist/providers/crm/index.js +18 -0
- package/dist/providers/crm/index.js.map +1 -0
- package/dist/providers/development/github.d.ts +25 -0
- package/dist/providers/development/github.d.ts.map +1 -0
- package/dist/providers/development/github.js +473 -0
- package/dist/providers/development/github.js.map +1 -0
- package/dist/providers/development/index.d.ts +19 -0
- package/dist/providers/development/index.d.ts.map +1 -0
- package/dist/providers/development/index.js +18 -0
- package/dist/providers/development/index.js.map +1 -0
- package/dist/providers/ecommerce/index.d.ts +19 -0
- package/dist/providers/ecommerce/index.d.ts.map +1 -0
- package/dist/providers/ecommerce/index.js +18 -0
- package/dist/providers/ecommerce/index.js.map +1 -0
- package/dist/providers/ecommerce/shopify.d.ts +25 -0
- package/dist/providers/ecommerce/shopify.d.ts.map +1 -0
- package/dist/providers/ecommerce/shopify.js +379 -0
- package/dist/providers/ecommerce/shopify.js.map +1 -0
- package/dist/providers/email/index.d.ts +20 -0
- package/dist/providers/email/index.d.ts.map +1 -0
- package/dist/providers/email/index.js +21 -0
- package/dist/providers/email/index.js.map +1 -0
- package/dist/providers/email/resend.d.ts +25 -0
- package/dist/providers/email/resend.d.ts.map +1 -0
- package/dist/providers/email/resend.js +259 -0
- package/dist/providers/email/resend.js.map +1 -0
- package/dist/providers/email/sendgrid.d.ts +25 -0
- package/dist/providers/email/sendgrid.d.ts.map +1 -0
- package/dist/providers/email/sendgrid.js +162 -0
- package/dist/providers/email/sendgrid.js.map +1 -0
- package/dist/providers/finance/index.d.ts +19 -0
- package/dist/providers/finance/index.d.ts.map +1 -0
- package/dist/providers/finance/index.js +18 -0
- package/dist/providers/finance/index.js.map +1 -0
- package/dist/providers/finance/stripe.d.ts +25 -0
- package/dist/providers/finance/stripe.d.ts.map +1 -0
- package/dist/providers/finance/stripe.js +550 -0
- package/dist/providers/finance/stripe.js.map +1 -0
- package/dist/providers/forms/index.d.ts +19 -0
- package/dist/providers/forms/index.d.ts.map +1 -0
- package/dist/providers/forms/index.js +18 -0
- package/dist/providers/forms/index.js.map +1 -0
- package/dist/providers/forms/typeform.d.ts +25 -0
- package/dist/providers/forms/typeform.d.ts.map +1 -0
- package/dist/providers/forms/typeform.js +501 -0
- package/dist/providers/forms/typeform.js.map +1 -0
- package/dist/providers/index.d.ts +56 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +124 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/knowledge/index.d.ts +19 -0
- package/dist/providers/knowledge/index.d.ts.map +1 -0
- package/dist/providers/knowledge/index.js +18 -0
- package/dist/providers/knowledge/index.js.map +1 -0
- package/dist/providers/knowledge/notion.d.ts +25 -0
- package/dist/providers/knowledge/notion.d.ts.map +1 -0
- package/dist/providers/knowledge/notion.js +390 -0
- package/dist/providers/knowledge/notion.js.map +1 -0
- package/dist/providers/marketing/index.d.ts +19 -0
- package/dist/providers/marketing/index.d.ts.map +1 -0
- package/dist/providers/marketing/index.js +18 -0
- package/dist/providers/marketing/index.js.map +1 -0
- package/dist/providers/marketing/mailchimp.d.ts +25 -0
- package/dist/providers/marketing/mailchimp.d.ts.map +1 -0
- package/dist/providers/marketing/mailchimp.js +444 -0
- package/dist/providers/marketing/mailchimp.js.map +1 -0
- package/dist/providers/media/cloudinary.d.ts +25 -0
- package/dist/providers/media/cloudinary.d.ts.map +1 -0
- package/dist/providers/media/cloudinary.js +319 -0
- package/dist/providers/media/cloudinary.js.map +1 -0
- package/dist/providers/media/index.d.ts +19 -0
- package/dist/providers/media/index.d.ts.map +1 -0
- package/dist/providers/media/index.js +18 -0
- package/dist/providers/media/index.js.map +1 -0
- package/dist/providers/messaging/index.d.ts +24 -0
- package/dist/providers/messaging/index.d.ts.map +1 -0
- package/dist/providers/messaging/index.js +21 -0
- package/dist/providers/messaging/index.js.map +1 -0
- package/dist/providers/messaging/slack.d.ts +25 -0
- package/dist/providers/messaging/slack.d.ts.map +1 -0
- package/dist/providers/messaging/slack.js +394 -0
- package/dist/providers/messaging/slack.js.map +1 -0
- package/dist/providers/messaging/twilio-sms.d.ts +25 -0
- package/dist/providers/messaging/twilio-sms.d.ts.map +1 -0
- package/dist/providers/messaging/twilio-sms.js +250 -0
- package/dist/providers/messaging/twilio-sms.js.map +1 -0
- package/dist/providers/project-management/index.d.ts +19 -0
- package/dist/providers/project-management/index.d.ts.map +1 -0
- package/dist/providers/project-management/index.js +18 -0
- package/dist/providers/project-management/index.js.map +1 -0
- package/dist/providers/project-management/linear.d.ts +25 -0
- package/dist/providers/project-management/linear.d.ts.map +1 -0
- package/dist/providers/project-management/linear.js +576 -0
- package/dist/providers/project-management/linear.js.map +1 -0
- package/dist/providers/registry.d.ts +41 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +87 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts +25 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.js +376 -0
- package/dist/providers/spreadsheet/google-sheets.js.map +1 -0
- package/dist/providers/spreadsheet/index.d.ts +20 -0
- package/dist/providers/spreadsheet/index.d.ts.map +1 -0
- package/dist/providers/spreadsheet/index.js +21 -0
- package/dist/providers/spreadsheet/index.js.map +1 -0
- package/dist/providers/spreadsheet/xlsx.d.ts +26 -0
- package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -0
- package/dist/providers/spreadsheet/xlsx.js +424 -0
- package/dist/providers/spreadsheet/xlsx.js.map +1 -0
- package/dist/providers/storage/index.d.ts +30 -0
- package/dist/providers/storage/index.d.ts.map +1 -0
- package/dist/providers/storage/index.js +25 -0
- package/dist/providers/storage/index.js.map +1 -0
- package/dist/providers/storage/s3.d.ts +25 -0
- package/dist/providers/storage/s3.d.ts.map +1 -0
- package/dist/providers/storage/s3.js +420 -0
- package/dist/providers/storage/s3.js.map +1 -0
- package/dist/providers/support/index.d.ts +19 -0
- package/dist/providers/support/index.d.ts.map +1 -0
- package/dist/providers/support/index.js +18 -0
- package/dist/providers/support/index.js.map +1 -0
- package/dist/providers/support/zendesk.d.ts +25 -0
- package/dist/providers/support/zendesk.d.ts.map +1 -0
- package/dist/providers/support/zendesk.js +374 -0
- package/dist/providers/support/zendesk.js.map +1 -0
- package/dist/providers/tasks/index.d.ts +19 -0
- package/dist/providers/tasks/index.d.ts.map +1 -0
- package/dist/providers/tasks/index.js +18 -0
- package/dist/providers/tasks/index.js.map +1 -0
- package/dist/providers/tasks/todoist.d.ts +25 -0
- package/dist/providers/tasks/todoist.d.ts.map +1 -0
- package/dist/providers/tasks/todoist.js +287 -0
- package/dist/providers/tasks/todoist.js.map +1 -0
- package/dist/providers/types.d.ts +1753 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +10 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/video-conferencing/google-meet.d.ts +26 -0
- package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -0
- package/dist/providers/video-conferencing/google-meet.js +287 -0
- package/dist/providers/video-conferencing/google-meet.js.map +1 -0
- package/dist/providers/video-conferencing/index.d.ts +22 -0
- package/dist/providers/video-conferencing/index.d.ts.map +1 -0
- package/dist/providers/video-conferencing/index.js +32 -0
- package/dist/providers/video-conferencing/index.js.map +1 -0
- package/dist/providers/video-conferencing/jitsi.d.ts +26 -0
- package/dist/providers/video-conferencing/jitsi.d.ts.map +1 -0
- package/dist/providers/video-conferencing/jitsi.js +255 -0
- package/dist/providers/video-conferencing/jitsi.js.map +1 -0
- package/dist/providers/video-conferencing/teams.d.ts +26 -0
- package/dist/providers/video-conferencing/teams.d.ts.map +1 -0
- package/dist/providers/video-conferencing/teams.js +271 -0
- package/dist/providers/video-conferencing/teams.js.map +1 -0
- package/dist/providers/video-conferencing/zoom.d.ts +25 -0
- package/dist/providers/video-conferencing/zoom.d.ts.map +1 -0
- package/dist/providers/video-conferencing/zoom.js +333 -0
- package/dist/providers/video-conferencing/zoom.js.map +1 -0
- package/dist/providers/voice/vapi.d.ts +27 -0
- package/dist/providers/voice/vapi.d.ts.map +1 -0
- package/dist/providers/voice/vapi.js +440 -0
- package/dist/providers/voice/vapi.js.map +1 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +129 -0
- package/dist/registry.js.map +1 -0
- package/dist/tools/communication.d.ts +94 -0
- package/dist/tools/communication.d.ts.map +1 -0
- package/dist/tools/communication.js +185 -0
- package/dist/tools/communication.js.map +1 -0
- package/dist/tools/data.d.ts +61 -0
- package/dist/tools/data.d.ts.map +1 -0
- package/dist/tools/data.js +206 -0
- package/dist/tools/data.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/web.d.ts +45 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +138 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
- package/src/define.ts +321 -0
- package/src/entities/advertising.ts +1086 -0
- package/src/entities/ai.ts +835 -0
- package/src/entities/analytics.ts +1690 -0
- package/src/entities/automation.ts +669 -0
- package/src/entities/communication.ts +1255 -0
- package/src/entities/crm.ts +1481 -0
- package/src/entities/design.ts +606 -0
- package/src/entities/development.ts +2392 -0
- package/src/entities/document.ts +930 -0
- package/src/entities/ecommerce.ts +1539 -0
- package/src/entities/experiment.ts +1139 -0
- package/src/entities/finance.ts +3907 -0
- package/src/entities/forms.ts +2021 -0
- package/src/entities/hr.ts +725 -0
- package/src/entities/identity.ts +1093 -0
- package/src/entities/index.ts +731 -0
- package/src/entities/infrastructure.ts +1254 -0
- package/src/entities/knowledge.ts +1547 -0
- package/src/entities/marketing.ts +1718 -0
- package/src/entities/media.ts +1747 -0
- package/src/entities/notification.ts +1260 -0
- package/src/entities/presentation.ts +1360 -0
- package/src/entities/productivity.ts +1411 -0
- package/src/entities/project-management.ts +1222 -0
- package/src/entities/recruiting.ts +797 -0
- package/src/entities/shipping.ts +566 -0
- package/src/entities/signature.ts +1204 -0
- package/src/entities/site.ts +244 -0
- package/src/entities/spreadsheet.ts +1434 -0
- package/src/entities/storage.ts +1290 -0
- package/src/entities/support.ts +1267 -0
- package/src/entities/video-conferencing.ts +1874 -0
- package/src/entities/video.ts +1035 -0
- package/src/entities.ts +1795 -0
- package/src/index.ts +176 -0
- package/src/providers/analytics/index.ts +21 -0
- package/src/providers/analytics/mixpanel.ts +311 -0
- package/src/providers/calendar/cal-com.ts +435 -0
- package/src/providers/calendar/google-calendar.ts +412 -0
- package/src/providers/calendar/index.ts +24 -0
- package/src/providers/crm/hubspot.ts +667 -0
- package/src/providers/crm/index.ts +21 -0
- package/src/providers/development/github.ts +608 -0
- package/src/providers/development/index.ts +21 -0
- package/src/providers/ecommerce/index.ts +21 -0
- package/src/providers/ecommerce/shopify.ts +451 -0
- package/src/providers/email/index.ts +24 -0
- package/src/providers/email/resend.ts +301 -0
- package/src/providers/email/sendgrid.ts +196 -0
- package/src/providers/finance/index.ts +21 -0
- package/src/providers/finance/stripe.ts +665 -0
- package/src/providers/forms/index.ts +21 -0
- package/src/providers/forms/typeform.ts +598 -0
- package/src/providers/index.ts +281 -0
- package/src/providers/knowledge/index.ts +21 -0
- package/src/providers/knowledge/notion.ts +497 -0
- package/src/providers/marketing/index.ts +21 -0
- package/src/providers/marketing/mailchimp.ts +656 -0
- package/src/providers/media/cloudinary.ts +373 -0
- package/src/providers/media/index.ts +21 -0
- package/src/providers/messaging/index.ts +24 -0
- package/src/providers/messaging/slack.ts +487 -0
- package/src/providers/messaging/twilio-sms.ts +301 -0
- package/src/providers/project-management/index.ts +21 -0
- package/src/providers/project-management/linear.ts +693 -0
- package/src/providers/registry.ts +119 -0
- package/src/providers/spreadsheet/google-sheets.ts +464 -0
- package/src/providers/spreadsheet/index.ts +24 -0
- package/src/providers/spreadsheet/xlsx.ts +542 -0
- package/src/providers/storage/index.ts +35 -0
- package/src/providers/storage/s3.ts +513 -0
- package/src/providers/support/index.ts +21 -0
- package/src/providers/support/zendesk.ts +417 -0
- package/src/providers/tasks/index.ts +21 -0
- package/src/providers/tasks/todoist.ts +407 -0
- package/src/providers/types.ts +2113 -0
- package/src/providers/video-conferencing/google-meet.ts +412 -0
- package/src/providers/video-conferencing/index.ts +35 -0
- package/src/providers/video-conferencing/jitsi.ts +324 -0
- package/src/providers/video-conferencing/teams.ts +408 -0
- package/src/providers/video-conferencing/zoom.ts +451 -0
- package/src/registry.ts +172 -0
- package/src/tools/communication.ts +256 -0
- package/src/tools/data.ts +236 -0
- package/src/tools/index.ts +12 -0
- package/src/tools/web.ts +161 -0
- package/src/types.ts +539 -0
- package/test/define.test.ts +367 -0
- package/test/registry.test.ts +444 -0
- package/test/tools.test.ts +453 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,2392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development Tool Entity Types (Nouns)
|
|
3
|
+
*
|
|
4
|
+
* Semantic type definitions for code development and version control tools.
|
|
5
|
+
* Each entity defines:
|
|
6
|
+
* - Properties: The data fields
|
|
7
|
+
* - Actions: Operations that can be performed (Verbs)
|
|
8
|
+
* - Events: State changes that occur
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { Noun, NounProperty, NounRelationship, Verb } from 'ai-database'
|
|
14
|
+
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// Repository
|
|
17
|
+
// =============================================================================
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Code repository entity
|
|
21
|
+
*
|
|
22
|
+
* Represents a version control repository for managing source code
|
|
23
|
+
*/
|
|
24
|
+
export const Repository: Noun = {
|
|
25
|
+
singular: 'repository',
|
|
26
|
+
plural: 'repositories',
|
|
27
|
+
description: 'A code repository for version control and collaboration',
|
|
28
|
+
|
|
29
|
+
properties: {
|
|
30
|
+
// Identity
|
|
31
|
+
name: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Repository name',
|
|
34
|
+
},
|
|
35
|
+
fullName: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
optional: true,
|
|
38
|
+
description: 'Full repository name including owner (e.g., owner/repo)',
|
|
39
|
+
},
|
|
40
|
+
description: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
optional: true,
|
|
43
|
+
description: 'Repository description',
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
// Configuration
|
|
47
|
+
visibility: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Repository visibility: public, private, internal',
|
|
50
|
+
examples: ['public', 'private', 'internal'],
|
|
51
|
+
},
|
|
52
|
+
defaultBranch: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Default branch name (e.g., main, master)',
|
|
55
|
+
},
|
|
56
|
+
language: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
optional: true,
|
|
59
|
+
description: 'Primary programming language',
|
|
60
|
+
},
|
|
61
|
+
topics: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
array: true,
|
|
64
|
+
optional: true,
|
|
65
|
+
description: 'Repository topics/tags',
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
// Settings
|
|
69
|
+
allowForking: {
|
|
70
|
+
type: 'boolean',
|
|
71
|
+
optional: true,
|
|
72
|
+
description: 'Whether forking is allowed',
|
|
73
|
+
},
|
|
74
|
+
allowMergeCommit: {
|
|
75
|
+
type: 'boolean',
|
|
76
|
+
optional: true,
|
|
77
|
+
description: 'Whether merge commits are allowed',
|
|
78
|
+
},
|
|
79
|
+
allowSquashMerge: {
|
|
80
|
+
type: 'boolean',
|
|
81
|
+
optional: true,
|
|
82
|
+
description: 'Whether squash merging is allowed',
|
|
83
|
+
},
|
|
84
|
+
allowRebaseMerge: {
|
|
85
|
+
type: 'boolean',
|
|
86
|
+
optional: true,
|
|
87
|
+
description: 'Whether rebase merging is allowed',
|
|
88
|
+
},
|
|
89
|
+
deleteBranchOnMerge: {
|
|
90
|
+
type: 'boolean',
|
|
91
|
+
optional: true,
|
|
92
|
+
description: 'Whether to auto-delete branches after merge',
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
// Status
|
|
96
|
+
archived: {
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
optional: true,
|
|
99
|
+
description: 'Whether the repository is archived',
|
|
100
|
+
},
|
|
101
|
+
disabled: {
|
|
102
|
+
type: 'boolean',
|
|
103
|
+
optional: true,
|
|
104
|
+
description: 'Whether the repository is disabled',
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
// Statistics
|
|
108
|
+
size: {
|
|
109
|
+
type: 'number',
|
|
110
|
+
optional: true,
|
|
111
|
+
description: 'Repository size in kilobytes',
|
|
112
|
+
},
|
|
113
|
+
starCount: {
|
|
114
|
+
type: 'number',
|
|
115
|
+
optional: true,
|
|
116
|
+
description: 'Number of stars',
|
|
117
|
+
},
|
|
118
|
+
forkCount: {
|
|
119
|
+
type: 'number',
|
|
120
|
+
optional: true,
|
|
121
|
+
description: 'Number of forks',
|
|
122
|
+
},
|
|
123
|
+
watcherCount: {
|
|
124
|
+
type: 'number',
|
|
125
|
+
optional: true,
|
|
126
|
+
description: 'Number of watchers',
|
|
127
|
+
},
|
|
128
|
+
openIssueCount: {
|
|
129
|
+
type: 'number',
|
|
130
|
+
optional: true,
|
|
131
|
+
description: 'Number of open issues',
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
// URLs
|
|
135
|
+
url: {
|
|
136
|
+
type: 'url',
|
|
137
|
+
optional: true,
|
|
138
|
+
description: 'Repository web URL',
|
|
139
|
+
},
|
|
140
|
+
cloneUrl: {
|
|
141
|
+
type: 'url',
|
|
142
|
+
optional: true,
|
|
143
|
+
description: 'Git clone URL',
|
|
144
|
+
},
|
|
145
|
+
sshUrl: {
|
|
146
|
+
type: 'string',
|
|
147
|
+
optional: true,
|
|
148
|
+
description: 'SSH clone URL',
|
|
149
|
+
},
|
|
150
|
+
homepage: {
|
|
151
|
+
type: 'url',
|
|
152
|
+
optional: true,
|
|
153
|
+
description: 'Project homepage URL',
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
// Metadata
|
|
157
|
+
license: {
|
|
158
|
+
type: 'string',
|
|
159
|
+
optional: true,
|
|
160
|
+
description: 'Repository license (e.g., MIT, Apache-2.0)',
|
|
161
|
+
},
|
|
162
|
+
hasIssues: {
|
|
163
|
+
type: 'boolean',
|
|
164
|
+
optional: true,
|
|
165
|
+
description: 'Whether issues are enabled',
|
|
166
|
+
},
|
|
167
|
+
hasProjects: {
|
|
168
|
+
type: 'boolean',
|
|
169
|
+
optional: true,
|
|
170
|
+
description: 'Whether projects are enabled',
|
|
171
|
+
},
|
|
172
|
+
hasWiki: {
|
|
173
|
+
type: 'boolean',
|
|
174
|
+
optional: true,
|
|
175
|
+
description: 'Whether wiki is enabled',
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
relationships: {
|
|
180
|
+
owner: {
|
|
181
|
+
type: 'Contact',
|
|
182
|
+
description: 'Repository owner/organization',
|
|
183
|
+
},
|
|
184
|
+
branches: {
|
|
185
|
+
type: 'Branch[]',
|
|
186
|
+
backref: 'repository',
|
|
187
|
+
description: 'Branches in this repository',
|
|
188
|
+
},
|
|
189
|
+
commits: {
|
|
190
|
+
type: 'Commit[]',
|
|
191
|
+
backref: 'repository',
|
|
192
|
+
description: 'Commits in this repository',
|
|
193
|
+
},
|
|
194
|
+
pullRequests: {
|
|
195
|
+
type: 'PullRequest[]',
|
|
196
|
+
backref: 'repository',
|
|
197
|
+
description: 'Pull requests in this repository',
|
|
198
|
+
},
|
|
199
|
+
issues: {
|
|
200
|
+
type: 'CodeIssue[]',
|
|
201
|
+
backref: 'repository',
|
|
202
|
+
description: 'Issues in this repository',
|
|
203
|
+
},
|
|
204
|
+
releases: {
|
|
205
|
+
type: 'Release[]',
|
|
206
|
+
backref: 'repository',
|
|
207
|
+
description: 'Releases/tags in this repository',
|
|
208
|
+
},
|
|
209
|
+
workflows: {
|
|
210
|
+
type: 'Workflow[]',
|
|
211
|
+
backref: 'repository',
|
|
212
|
+
description: 'CI/CD workflows in this repository',
|
|
213
|
+
},
|
|
214
|
+
collaborators: {
|
|
215
|
+
type: 'Contact[]',
|
|
216
|
+
description: 'Repository collaborators',
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
actions: [
|
|
221
|
+
'create',
|
|
222
|
+
'clone',
|
|
223
|
+
'fork',
|
|
224
|
+
'archive',
|
|
225
|
+
'unarchive',
|
|
226
|
+
'delete',
|
|
227
|
+
'transfer',
|
|
228
|
+
'rename',
|
|
229
|
+
'updateSettings',
|
|
230
|
+
'addCollaborator',
|
|
231
|
+
'removeCollaborator',
|
|
232
|
+
'star',
|
|
233
|
+
'unstar',
|
|
234
|
+
'watch',
|
|
235
|
+
'unwatch',
|
|
236
|
+
'enableFeature',
|
|
237
|
+
'disableFeature',
|
|
238
|
+
],
|
|
239
|
+
|
|
240
|
+
events: [
|
|
241
|
+
'created',
|
|
242
|
+
'cloned',
|
|
243
|
+
'forked',
|
|
244
|
+
'archived',
|
|
245
|
+
'unarchived',
|
|
246
|
+
'deleted',
|
|
247
|
+
'transferred',
|
|
248
|
+
'renamed',
|
|
249
|
+
'settingsUpdated',
|
|
250
|
+
'collaboratorAdded',
|
|
251
|
+
'collaboratorRemoved',
|
|
252
|
+
'starred',
|
|
253
|
+
'unstarred',
|
|
254
|
+
'watched',
|
|
255
|
+
'unwatched',
|
|
256
|
+
'pushed',
|
|
257
|
+
],
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// =============================================================================
|
|
261
|
+
// Branch
|
|
262
|
+
// =============================================================================
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Git branch entity
|
|
266
|
+
*
|
|
267
|
+
* Represents a branch in a git repository
|
|
268
|
+
*/
|
|
269
|
+
export const Branch: Noun = {
|
|
270
|
+
singular: 'branch',
|
|
271
|
+
plural: 'branches',
|
|
272
|
+
description: 'A git branch for parallel development',
|
|
273
|
+
|
|
274
|
+
properties: {
|
|
275
|
+
name: {
|
|
276
|
+
type: 'string',
|
|
277
|
+
description: 'Branch name',
|
|
278
|
+
},
|
|
279
|
+
fullName: {
|
|
280
|
+
type: 'string',
|
|
281
|
+
optional: true,
|
|
282
|
+
description: 'Full reference name (e.g., refs/heads/main)',
|
|
283
|
+
},
|
|
284
|
+
|
|
285
|
+
// Status
|
|
286
|
+
isDefault: {
|
|
287
|
+
type: 'boolean',
|
|
288
|
+
optional: true,
|
|
289
|
+
description: 'Whether this is the default branch',
|
|
290
|
+
},
|
|
291
|
+
isProtected: {
|
|
292
|
+
type: 'boolean',
|
|
293
|
+
optional: true,
|
|
294
|
+
description: 'Whether this branch is protected',
|
|
295
|
+
},
|
|
296
|
+
|
|
297
|
+
// Commit info
|
|
298
|
+
sha: {
|
|
299
|
+
type: 'string',
|
|
300
|
+
optional: true,
|
|
301
|
+
description: 'SHA of the latest commit',
|
|
302
|
+
},
|
|
303
|
+
commitMessage: {
|
|
304
|
+
type: 'string',
|
|
305
|
+
optional: true,
|
|
306
|
+
description: 'Latest commit message',
|
|
307
|
+
},
|
|
308
|
+
|
|
309
|
+
// Comparison
|
|
310
|
+
aheadBy: {
|
|
311
|
+
type: 'number',
|
|
312
|
+
optional: true,
|
|
313
|
+
description: 'Commits ahead of base branch',
|
|
314
|
+
},
|
|
315
|
+
behindBy: {
|
|
316
|
+
type: 'number',
|
|
317
|
+
optional: true,
|
|
318
|
+
description: 'Commits behind base branch',
|
|
319
|
+
},
|
|
320
|
+
|
|
321
|
+
// Protection rules
|
|
322
|
+
requirePullRequest: {
|
|
323
|
+
type: 'boolean',
|
|
324
|
+
optional: true,
|
|
325
|
+
description: 'Whether pull requests are required for changes',
|
|
326
|
+
},
|
|
327
|
+
requiredReviewers: {
|
|
328
|
+
type: 'number',
|
|
329
|
+
optional: true,
|
|
330
|
+
description: 'Number of required reviewers',
|
|
331
|
+
},
|
|
332
|
+
requireStatusChecks: {
|
|
333
|
+
type: 'boolean',
|
|
334
|
+
optional: true,
|
|
335
|
+
description: 'Whether status checks must pass',
|
|
336
|
+
},
|
|
337
|
+
requireSignedCommits: {
|
|
338
|
+
type: 'boolean',
|
|
339
|
+
optional: true,
|
|
340
|
+
description: 'Whether commits must be signed',
|
|
341
|
+
},
|
|
342
|
+
allowForcePush: {
|
|
343
|
+
type: 'boolean',
|
|
344
|
+
optional: true,
|
|
345
|
+
description: 'Whether force pushing is allowed',
|
|
346
|
+
},
|
|
347
|
+
allowDeletion: {
|
|
348
|
+
type: 'boolean',
|
|
349
|
+
optional: true,
|
|
350
|
+
description: 'Whether branch deletion is allowed',
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
|
|
354
|
+
relationships: {
|
|
355
|
+
repository: {
|
|
356
|
+
type: 'Repository',
|
|
357
|
+
backref: 'branches',
|
|
358
|
+
description: 'Repository this branch belongs to',
|
|
359
|
+
},
|
|
360
|
+
latestCommit: {
|
|
361
|
+
type: 'Commit',
|
|
362
|
+
description: 'The latest commit on this branch',
|
|
363
|
+
},
|
|
364
|
+
pullRequests: {
|
|
365
|
+
type: 'PullRequest[]',
|
|
366
|
+
description: 'Pull requests for this branch',
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
|
|
370
|
+
actions: [
|
|
371
|
+
'create',
|
|
372
|
+
'delete',
|
|
373
|
+
'rename',
|
|
374
|
+
'protect',
|
|
375
|
+
'unprotect',
|
|
376
|
+
'merge',
|
|
377
|
+
'rebase',
|
|
378
|
+
'checkout',
|
|
379
|
+
'push',
|
|
380
|
+
'pull',
|
|
381
|
+
'reset',
|
|
382
|
+
'compare',
|
|
383
|
+
],
|
|
384
|
+
|
|
385
|
+
events: [
|
|
386
|
+
'created',
|
|
387
|
+
'deleted',
|
|
388
|
+
'renamed',
|
|
389
|
+
'protected',
|
|
390
|
+
'unprotected',
|
|
391
|
+
'merged',
|
|
392
|
+
'rebased',
|
|
393
|
+
'pushed',
|
|
394
|
+
'pulled',
|
|
395
|
+
'updated',
|
|
396
|
+
],
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// =============================================================================
|
|
400
|
+
// Commit
|
|
401
|
+
// =============================================================================
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* Git commit entity
|
|
405
|
+
*
|
|
406
|
+
* Represents a git commit with changes to the codebase
|
|
407
|
+
*/
|
|
408
|
+
export const Commit: Noun = {
|
|
409
|
+
singular: 'commit',
|
|
410
|
+
plural: 'commits',
|
|
411
|
+
description: 'A git commit representing a set of changes',
|
|
412
|
+
|
|
413
|
+
properties: {
|
|
414
|
+
// Identity
|
|
415
|
+
sha: {
|
|
416
|
+
type: 'string',
|
|
417
|
+
description: 'Commit SHA hash',
|
|
418
|
+
},
|
|
419
|
+
shortSha: {
|
|
420
|
+
type: 'string',
|
|
421
|
+
optional: true,
|
|
422
|
+
description: 'Short SHA (first 7 characters)',
|
|
423
|
+
},
|
|
424
|
+
|
|
425
|
+
// Content
|
|
426
|
+
message: {
|
|
427
|
+
type: 'string',
|
|
428
|
+
description: 'Commit message',
|
|
429
|
+
},
|
|
430
|
+
title: {
|
|
431
|
+
type: 'string',
|
|
432
|
+
optional: true,
|
|
433
|
+
description: 'First line of commit message',
|
|
434
|
+
},
|
|
435
|
+
body: {
|
|
436
|
+
type: 'string',
|
|
437
|
+
optional: true,
|
|
438
|
+
description: 'Remaining lines of commit message',
|
|
439
|
+
},
|
|
440
|
+
|
|
441
|
+
// Author info
|
|
442
|
+
authorName: {
|
|
443
|
+
type: 'string',
|
|
444
|
+
description: 'Author name',
|
|
445
|
+
},
|
|
446
|
+
authorEmail: {
|
|
447
|
+
type: 'string',
|
|
448
|
+
description: 'Author email',
|
|
449
|
+
},
|
|
450
|
+
authoredAt: {
|
|
451
|
+
type: 'datetime',
|
|
452
|
+
description: 'When the commit was authored',
|
|
453
|
+
},
|
|
454
|
+
|
|
455
|
+
// Committer info (may differ from author)
|
|
456
|
+
committerName: {
|
|
457
|
+
type: 'string',
|
|
458
|
+
optional: true,
|
|
459
|
+
description: 'Committer name',
|
|
460
|
+
},
|
|
461
|
+
committerEmail: {
|
|
462
|
+
type: 'string',
|
|
463
|
+
optional: true,
|
|
464
|
+
description: 'Committer email',
|
|
465
|
+
},
|
|
466
|
+
committedAt: {
|
|
467
|
+
type: 'datetime',
|
|
468
|
+
optional: true,
|
|
469
|
+
description: 'When the commit was committed',
|
|
470
|
+
},
|
|
471
|
+
|
|
472
|
+
// Changes
|
|
473
|
+
filesChanged: {
|
|
474
|
+
type: 'number',
|
|
475
|
+
optional: true,
|
|
476
|
+
description: 'Number of files changed',
|
|
477
|
+
},
|
|
478
|
+
additions: {
|
|
479
|
+
type: 'number',
|
|
480
|
+
optional: true,
|
|
481
|
+
description: 'Lines added',
|
|
482
|
+
},
|
|
483
|
+
deletions: {
|
|
484
|
+
type: 'number',
|
|
485
|
+
optional: true,
|
|
486
|
+
description: 'Lines deleted',
|
|
487
|
+
},
|
|
488
|
+
changedFiles: {
|
|
489
|
+
type: 'json',
|
|
490
|
+
optional: true,
|
|
491
|
+
description: 'List of changed files with their changes',
|
|
492
|
+
},
|
|
493
|
+
|
|
494
|
+
// Verification
|
|
495
|
+
verified: {
|
|
496
|
+
type: 'boolean',
|
|
497
|
+
optional: true,
|
|
498
|
+
description: 'Whether the commit signature is verified',
|
|
499
|
+
},
|
|
500
|
+
signature: {
|
|
501
|
+
type: 'string',
|
|
502
|
+
optional: true,
|
|
503
|
+
description: 'GPG signature',
|
|
504
|
+
},
|
|
505
|
+
|
|
506
|
+
// Relationships to other commits
|
|
507
|
+
parentShas: {
|
|
508
|
+
type: 'string',
|
|
509
|
+
array: true,
|
|
510
|
+
optional: true,
|
|
511
|
+
description: 'Parent commit SHAs',
|
|
512
|
+
},
|
|
513
|
+
treeSha: {
|
|
514
|
+
type: 'string',
|
|
515
|
+
optional: true,
|
|
516
|
+
description: 'Git tree SHA',
|
|
517
|
+
},
|
|
518
|
+
|
|
519
|
+
// URLs
|
|
520
|
+
url: {
|
|
521
|
+
type: 'url',
|
|
522
|
+
optional: true,
|
|
523
|
+
description: 'Commit web URL',
|
|
524
|
+
},
|
|
525
|
+
htmlUrl: {
|
|
526
|
+
type: 'url',
|
|
527
|
+
optional: true,
|
|
528
|
+
description: 'Commit HTML page URL',
|
|
529
|
+
},
|
|
530
|
+
},
|
|
531
|
+
|
|
532
|
+
relationships: {
|
|
533
|
+
repository: {
|
|
534
|
+
type: 'Repository',
|
|
535
|
+
backref: 'commits',
|
|
536
|
+
description: 'Repository this commit belongs to',
|
|
537
|
+
},
|
|
538
|
+
author: {
|
|
539
|
+
type: 'Contact',
|
|
540
|
+
description: 'Commit author',
|
|
541
|
+
},
|
|
542
|
+
committer: {
|
|
543
|
+
type: 'Contact',
|
|
544
|
+
required: false,
|
|
545
|
+
description: 'Person who committed (if different from author)',
|
|
546
|
+
},
|
|
547
|
+
parents: {
|
|
548
|
+
type: 'Commit[]',
|
|
549
|
+
description: 'Parent commits',
|
|
550
|
+
},
|
|
551
|
+
branch: {
|
|
552
|
+
type: 'Branch',
|
|
553
|
+
required: false,
|
|
554
|
+
description: 'Branch this commit is on',
|
|
555
|
+
},
|
|
556
|
+
pullRequest: {
|
|
557
|
+
type: 'PullRequest',
|
|
558
|
+
required: false,
|
|
559
|
+
description: 'Pull request this commit is part of',
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
|
|
563
|
+
actions: [
|
|
564
|
+
'create',
|
|
565
|
+
'amend',
|
|
566
|
+
'revert',
|
|
567
|
+
'cherryPick',
|
|
568
|
+
'view',
|
|
569
|
+
'compare',
|
|
570
|
+
'blame',
|
|
571
|
+
'sign',
|
|
572
|
+
'verify',
|
|
573
|
+
],
|
|
574
|
+
|
|
575
|
+
events: [
|
|
576
|
+
'created',
|
|
577
|
+
'amended',
|
|
578
|
+
'reverted',
|
|
579
|
+
'cherryPicked',
|
|
580
|
+
'pushed',
|
|
581
|
+
'signed',
|
|
582
|
+
'verified',
|
|
583
|
+
],
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
// =============================================================================
|
|
587
|
+
// Pull Request
|
|
588
|
+
// =============================================================================
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Pull request entity
|
|
592
|
+
*
|
|
593
|
+
* Represents a pull request for code review and merging
|
|
594
|
+
*/
|
|
595
|
+
export const PullRequest: Noun = {
|
|
596
|
+
singular: 'pull request',
|
|
597
|
+
plural: 'pull requests',
|
|
598
|
+
description: 'A pull request for reviewing and merging code changes',
|
|
599
|
+
|
|
600
|
+
properties: {
|
|
601
|
+
// Identity
|
|
602
|
+
number: {
|
|
603
|
+
type: 'number',
|
|
604
|
+
description: 'Pull request number',
|
|
605
|
+
},
|
|
606
|
+
title: {
|
|
607
|
+
type: 'string',
|
|
608
|
+
description: 'Pull request title',
|
|
609
|
+
},
|
|
610
|
+
description: {
|
|
611
|
+
type: 'string',
|
|
612
|
+
optional: true,
|
|
613
|
+
description: 'Pull request description/body',
|
|
614
|
+
},
|
|
615
|
+
|
|
616
|
+
// Status
|
|
617
|
+
status: {
|
|
618
|
+
type: 'string',
|
|
619
|
+
description: 'PR status: open, closed, merged, draft',
|
|
620
|
+
examples: ['open', 'closed', 'merged', 'draft'],
|
|
621
|
+
},
|
|
622
|
+
state: {
|
|
623
|
+
type: 'string',
|
|
624
|
+
description: 'State: open, closed',
|
|
625
|
+
examples: ['open', 'closed'],
|
|
626
|
+
},
|
|
627
|
+
isDraft: {
|
|
628
|
+
type: 'boolean',
|
|
629
|
+
optional: true,
|
|
630
|
+
description: 'Whether this is a draft PR',
|
|
631
|
+
},
|
|
632
|
+
mergeable: {
|
|
633
|
+
type: 'boolean',
|
|
634
|
+
optional: true,
|
|
635
|
+
description: 'Whether the PR can be merged',
|
|
636
|
+
},
|
|
637
|
+
mergeableState: {
|
|
638
|
+
type: 'string',
|
|
639
|
+
optional: true,
|
|
640
|
+
description: 'Mergeable state: clean, dirty, unstable, blocked',
|
|
641
|
+
examples: ['clean', 'dirty', 'unstable', 'blocked'],
|
|
642
|
+
},
|
|
643
|
+
|
|
644
|
+
// Branches
|
|
645
|
+
headBranch: {
|
|
646
|
+
type: 'string',
|
|
647
|
+
description: 'Source branch name',
|
|
648
|
+
},
|
|
649
|
+
baseBranch: {
|
|
650
|
+
type: 'string',
|
|
651
|
+
description: 'Target branch name',
|
|
652
|
+
},
|
|
653
|
+
headSha: {
|
|
654
|
+
type: 'string',
|
|
655
|
+
optional: true,
|
|
656
|
+
description: 'SHA of the head commit',
|
|
657
|
+
},
|
|
658
|
+
baseSha: {
|
|
659
|
+
type: 'string',
|
|
660
|
+
optional: true,
|
|
661
|
+
description: 'SHA of the base commit',
|
|
662
|
+
},
|
|
663
|
+
|
|
664
|
+
// Changes
|
|
665
|
+
filesChanged: {
|
|
666
|
+
type: 'number',
|
|
667
|
+
optional: true,
|
|
668
|
+
description: 'Number of files changed',
|
|
669
|
+
},
|
|
670
|
+
additions: {
|
|
671
|
+
type: 'number',
|
|
672
|
+
optional: true,
|
|
673
|
+
description: 'Lines added',
|
|
674
|
+
},
|
|
675
|
+
deletions: {
|
|
676
|
+
type: 'number',
|
|
677
|
+
optional: true,
|
|
678
|
+
description: 'Lines deleted',
|
|
679
|
+
},
|
|
680
|
+
commits: {
|
|
681
|
+
type: 'number',
|
|
682
|
+
optional: true,
|
|
683
|
+
description: 'Number of commits',
|
|
684
|
+
},
|
|
685
|
+
|
|
686
|
+
// Review
|
|
687
|
+
reviewDecision: {
|
|
688
|
+
type: 'string',
|
|
689
|
+
optional: true,
|
|
690
|
+
description: 'Review decision: approved, changes_requested, review_required',
|
|
691
|
+
examples: ['approved', 'changes_requested', 'review_required'],
|
|
692
|
+
},
|
|
693
|
+
requestedReviewers: {
|
|
694
|
+
type: 'string',
|
|
695
|
+
array: true,
|
|
696
|
+
optional: true,
|
|
697
|
+
description: 'Usernames of requested reviewers',
|
|
698
|
+
},
|
|
699
|
+
assignees: {
|
|
700
|
+
type: 'string',
|
|
701
|
+
array: true,
|
|
702
|
+
optional: true,
|
|
703
|
+
description: 'Usernames of assignees',
|
|
704
|
+
},
|
|
705
|
+
|
|
706
|
+
// Checks
|
|
707
|
+
checksStatus: {
|
|
708
|
+
type: 'string',
|
|
709
|
+
optional: true,
|
|
710
|
+
description: 'Status checks state: pending, success, failure',
|
|
711
|
+
examples: ['pending', 'success', 'failure'],
|
|
712
|
+
},
|
|
713
|
+
requiredChecksPass: {
|
|
714
|
+
type: 'boolean',
|
|
715
|
+
optional: true,
|
|
716
|
+
description: 'Whether all required checks pass',
|
|
717
|
+
},
|
|
718
|
+
|
|
719
|
+
// Merge
|
|
720
|
+
merged: {
|
|
721
|
+
type: 'boolean',
|
|
722
|
+
optional: true,
|
|
723
|
+
description: 'Whether the PR has been merged',
|
|
724
|
+
},
|
|
725
|
+
mergedAt: {
|
|
726
|
+
type: 'datetime',
|
|
727
|
+
optional: true,
|
|
728
|
+
description: 'When the PR was merged',
|
|
729
|
+
},
|
|
730
|
+
mergedBy: {
|
|
731
|
+
type: 'string',
|
|
732
|
+
optional: true,
|
|
733
|
+
description: 'Username who merged the PR',
|
|
734
|
+
},
|
|
735
|
+
mergeCommitSha: {
|
|
736
|
+
type: 'string',
|
|
737
|
+
optional: true,
|
|
738
|
+
description: 'SHA of the merge commit',
|
|
739
|
+
},
|
|
740
|
+
autoMerge: {
|
|
741
|
+
type: 'boolean',
|
|
742
|
+
optional: true,
|
|
743
|
+
description: 'Whether auto-merge is enabled',
|
|
744
|
+
},
|
|
745
|
+
|
|
746
|
+
// Metadata
|
|
747
|
+
labels: {
|
|
748
|
+
type: 'string',
|
|
749
|
+
array: true,
|
|
750
|
+
optional: true,
|
|
751
|
+
description: 'Labels applied to the PR',
|
|
752
|
+
},
|
|
753
|
+
milestone: {
|
|
754
|
+
type: 'string',
|
|
755
|
+
optional: true,
|
|
756
|
+
description: 'Milestone name',
|
|
757
|
+
},
|
|
758
|
+
locked: {
|
|
759
|
+
type: 'boolean',
|
|
760
|
+
optional: true,
|
|
761
|
+
description: 'Whether the PR is locked',
|
|
762
|
+
},
|
|
763
|
+
|
|
764
|
+
// URLs
|
|
765
|
+
url: {
|
|
766
|
+
type: 'url',
|
|
767
|
+
optional: true,
|
|
768
|
+
description: 'PR API URL',
|
|
769
|
+
},
|
|
770
|
+
htmlUrl: {
|
|
771
|
+
type: 'url',
|
|
772
|
+
optional: true,
|
|
773
|
+
description: 'PR web page URL',
|
|
774
|
+
},
|
|
775
|
+
diffUrl: {
|
|
776
|
+
type: 'url',
|
|
777
|
+
optional: true,
|
|
778
|
+
description: 'URL to view the diff',
|
|
779
|
+
},
|
|
780
|
+
patchUrl: {
|
|
781
|
+
type: 'url',
|
|
782
|
+
optional: true,
|
|
783
|
+
description: 'URL to download the patch',
|
|
784
|
+
},
|
|
785
|
+
},
|
|
786
|
+
|
|
787
|
+
relationships: {
|
|
788
|
+
repository: {
|
|
789
|
+
type: 'Repository',
|
|
790
|
+
backref: 'pullRequests',
|
|
791
|
+
description: 'Repository this PR belongs to',
|
|
792
|
+
},
|
|
793
|
+
author: {
|
|
794
|
+
type: 'Contact',
|
|
795
|
+
description: 'PR author',
|
|
796
|
+
},
|
|
797
|
+
headBranchRef: {
|
|
798
|
+
type: 'Branch',
|
|
799
|
+
description: 'Source branch',
|
|
800
|
+
},
|
|
801
|
+
baseBranchRef: {
|
|
802
|
+
type: 'Branch',
|
|
803
|
+
description: 'Target branch',
|
|
804
|
+
},
|
|
805
|
+
commits: {
|
|
806
|
+
type: 'Commit[]',
|
|
807
|
+
description: 'Commits in this PR',
|
|
808
|
+
},
|
|
809
|
+
reviews: {
|
|
810
|
+
type: 'CodeReview[]',
|
|
811
|
+
backref: 'pullRequest',
|
|
812
|
+
description: 'Code reviews on this PR',
|
|
813
|
+
},
|
|
814
|
+
reviewers: {
|
|
815
|
+
type: 'Contact[]',
|
|
816
|
+
description: 'Requested reviewers',
|
|
817
|
+
},
|
|
818
|
+
assignedTo: {
|
|
819
|
+
type: 'Contact[]',
|
|
820
|
+
description: 'People assigned to this PR',
|
|
821
|
+
},
|
|
822
|
+
workflowRuns: {
|
|
823
|
+
type: 'WorkflowRun[]',
|
|
824
|
+
description: 'CI/CD workflow runs for this PR',
|
|
825
|
+
},
|
|
826
|
+
linkedIssues: {
|
|
827
|
+
type: 'CodeIssue[]',
|
|
828
|
+
description: 'Issues linked to this PR',
|
|
829
|
+
},
|
|
830
|
+
},
|
|
831
|
+
|
|
832
|
+
actions: [
|
|
833
|
+
'create',
|
|
834
|
+
'update',
|
|
835
|
+
'close',
|
|
836
|
+
'reopen',
|
|
837
|
+
'merge',
|
|
838
|
+
'squashMerge',
|
|
839
|
+
'rebaseMerge',
|
|
840
|
+
'approve',
|
|
841
|
+
'requestChanges',
|
|
842
|
+
'requestReview',
|
|
843
|
+
'assign',
|
|
844
|
+
'unassign',
|
|
845
|
+
'label',
|
|
846
|
+
'unlabel',
|
|
847
|
+
'lock',
|
|
848
|
+
'unlock',
|
|
849
|
+
'enableAutoMerge',
|
|
850
|
+
'disableAutoMerge',
|
|
851
|
+
'convertToDraft',
|
|
852
|
+
'markReadyForReview',
|
|
853
|
+
],
|
|
854
|
+
|
|
855
|
+
events: [
|
|
856
|
+
'created',
|
|
857
|
+
'updated',
|
|
858
|
+
'closed',
|
|
859
|
+
'reopened',
|
|
860
|
+
'merged',
|
|
861
|
+
'approved',
|
|
862
|
+
'changesRequested',
|
|
863
|
+
'reviewRequested',
|
|
864
|
+
'assigned',
|
|
865
|
+
'unassigned',
|
|
866
|
+
'labeled',
|
|
867
|
+
'unlabeled',
|
|
868
|
+
'locked',
|
|
869
|
+
'unlocked',
|
|
870
|
+
'autoMergeEnabled',
|
|
871
|
+
'autoMergeDisabled',
|
|
872
|
+
'convertedToDraft',
|
|
873
|
+
'markedReadyForReview',
|
|
874
|
+
'synchronize',
|
|
875
|
+
],
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
// =============================================================================
|
|
879
|
+
// Code Review
|
|
880
|
+
// =============================================================================
|
|
881
|
+
|
|
882
|
+
/**
|
|
883
|
+
* Code review entity
|
|
884
|
+
*
|
|
885
|
+
* Represents a code review or review comment on a pull request
|
|
886
|
+
*/
|
|
887
|
+
export const CodeReview: Noun = {
|
|
888
|
+
singular: 'code review',
|
|
889
|
+
plural: 'code reviews',
|
|
890
|
+
description: 'A code review on a pull request',
|
|
891
|
+
|
|
892
|
+
properties: {
|
|
893
|
+
// Content
|
|
894
|
+
body: {
|
|
895
|
+
type: 'string',
|
|
896
|
+
optional: true,
|
|
897
|
+
description: 'Review comment body',
|
|
898
|
+
},
|
|
899
|
+
|
|
900
|
+
// Type
|
|
901
|
+
reviewType: {
|
|
902
|
+
type: 'string',
|
|
903
|
+
description: 'Type: comment, approve, request_changes',
|
|
904
|
+
examples: ['comment', 'approve', 'request_changes'],
|
|
905
|
+
},
|
|
906
|
+
state: {
|
|
907
|
+
type: 'string',
|
|
908
|
+
description: 'Review state: pending, commented, approved, changes_requested, dismissed',
|
|
909
|
+
examples: ['pending', 'commented', 'approved', 'changes_requested', 'dismissed'],
|
|
910
|
+
},
|
|
911
|
+
|
|
912
|
+
// Line-specific (for inline comments)
|
|
913
|
+
path: {
|
|
914
|
+
type: 'string',
|
|
915
|
+
optional: true,
|
|
916
|
+
description: 'File path for inline comment',
|
|
917
|
+
},
|
|
918
|
+
line: {
|
|
919
|
+
type: 'number',
|
|
920
|
+
optional: true,
|
|
921
|
+
description: 'Line number for inline comment',
|
|
922
|
+
},
|
|
923
|
+
startLine: {
|
|
924
|
+
type: 'number',
|
|
925
|
+
optional: true,
|
|
926
|
+
description: 'Start line for multi-line comment',
|
|
927
|
+
},
|
|
928
|
+
side: {
|
|
929
|
+
type: 'string',
|
|
930
|
+
optional: true,
|
|
931
|
+
description: 'Side of diff: LEFT or RIGHT',
|
|
932
|
+
examples: ['LEFT', 'RIGHT'],
|
|
933
|
+
},
|
|
934
|
+
commitId: {
|
|
935
|
+
type: 'string',
|
|
936
|
+
optional: true,
|
|
937
|
+
description: 'Commit SHA this comment is on',
|
|
938
|
+
},
|
|
939
|
+
|
|
940
|
+
// Status
|
|
941
|
+
resolved: {
|
|
942
|
+
type: 'boolean',
|
|
943
|
+
optional: true,
|
|
944
|
+
description: 'Whether the comment is resolved',
|
|
945
|
+
},
|
|
946
|
+
outdated: {
|
|
947
|
+
type: 'boolean',
|
|
948
|
+
optional: true,
|
|
949
|
+
description: 'Whether the comment is outdated',
|
|
950
|
+
},
|
|
951
|
+
|
|
952
|
+
// URLs
|
|
953
|
+
htmlUrl: {
|
|
954
|
+
type: 'url',
|
|
955
|
+
optional: true,
|
|
956
|
+
description: 'Review web page URL',
|
|
957
|
+
},
|
|
958
|
+
},
|
|
959
|
+
|
|
960
|
+
relationships: {
|
|
961
|
+
pullRequest: {
|
|
962
|
+
type: 'PullRequest',
|
|
963
|
+
backref: 'reviews',
|
|
964
|
+
description: 'Pull request this review is on',
|
|
965
|
+
},
|
|
966
|
+
reviewer: {
|
|
967
|
+
type: 'Contact',
|
|
968
|
+
description: 'Person who wrote the review',
|
|
969
|
+
},
|
|
970
|
+
commit: {
|
|
971
|
+
type: 'Commit',
|
|
972
|
+
required: false,
|
|
973
|
+
description: 'Specific commit being reviewed',
|
|
974
|
+
},
|
|
975
|
+
inReplyTo: {
|
|
976
|
+
type: 'CodeReview',
|
|
977
|
+
required: false,
|
|
978
|
+
description: 'Parent comment if this is a reply',
|
|
979
|
+
},
|
|
980
|
+
replies: {
|
|
981
|
+
type: 'CodeReview[]',
|
|
982
|
+
description: 'Replies to this review comment',
|
|
983
|
+
},
|
|
984
|
+
},
|
|
985
|
+
|
|
986
|
+
actions: [
|
|
987
|
+
'create',
|
|
988
|
+
'submit',
|
|
989
|
+
'update',
|
|
990
|
+
'delete',
|
|
991
|
+
'dismiss',
|
|
992
|
+
'resolve',
|
|
993
|
+
'unresolve',
|
|
994
|
+
'reply',
|
|
995
|
+
],
|
|
996
|
+
|
|
997
|
+
events: [
|
|
998
|
+
'created',
|
|
999
|
+
'submitted',
|
|
1000
|
+
'updated',
|
|
1001
|
+
'deleted',
|
|
1002
|
+
'dismissed',
|
|
1003
|
+
'resolved',
|
|
1004
|
+
'unresolved',
|
|
1005
|
+
'replied',
|
|
1006
|
+
],
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
// =============================================================================
|
|
1010
|
+
// Code Issue
|
|
1011
|
+
// =============================================================================
|
|
1012
|
+
|
|
1013
|
+
/**
|
|
1014
|
+
* Code issue entity
|
|
1015
|
+
*
|
|
1016
|
+
* Represents a GitHub/GitLab style issue for tracking bugs, features, and tasks
|
|
1017
|
+
*/
|
|
1018
|
+
export const CodeIssue: Noun = {
|
|
1019
|
+
singular: 'code issue',
|
|
1020
|
+
plural: 'code issues',
|
|
1021
|
+
description: 'An issue for tracking bugs, features, and tasks in code',
|
|
1022
|
+
|
|
1023
|
+
properties: {
|
|
1024
|
+
// Identity
|
|
1025
|
+
number: {
|
|
1026
|
+
type: 'number',
|
|
1027
|
+
description: 'Issue number',
|
|
1028
|
+
},
|
|
1029
|
+
title: {
|
|
1030
|
+
type: 'string',
|
|
1031
|
+
description: 'Issue title',
|
|
1032
|
+
},
|
|
1033
|
+
description: {
|
|
1034
|
+
type: 'string',
|
|
1035
|
+
optional: true,
|
|
1036
|
+
description: 'Issue description/body',
|
|
1037
|
+
},
|
|
1038
|
+
|
|
1039
|
+
// Status
|
|
1040
|
+
state: {
|
|
1041
|
+
type: 'string',
|
|
1042
|
+
description: 'Issue state: open, closed',
|
|
1043
|
+
examples: ['open', 'closed'],
|
|
1044
|
+
},
|
|
1045
|
+
stateReason: {
|
|
1046
|
+
type: 'string',
|
|
1047
|
+
optional: true,
|
|
1048
|
+
description: 'Reason for state: completed, not_planned, reopened',
|
|
1049
|
+
examples: ['completed', 'not_planned', 'reopened'],
|
|
1050
|
+
},
|
|
1051
|
+
|
|
1052
|
+
// Classification
|
|
1053
|
+
labels: {
|
|
1054
|
+
type: 'string',
|
|
1055
|
+
array: true,
|
|
1056
|
+
optional: true,
|
|
1057
|
+
description: 'Labels applied to the issue',
|
|
1058
|
+
},
|
|
1059
|
+
milestone: {
|
|
1060
|
+
type: 'string',
|
|
1061
|
+
optional: true,
|
|
1062
|
+
description: 'Milestone name',
|
|
1063
|
+
},
|
|
1064
|
+
assignees: {
|
|
1065
|
+
type: 'string',
|
|
1066
|
+
array: true,
|
|
1067
|
+
optional: true,
|
|
1068
|
+
description: 'Usernames of assignees',
|
|
1069
|
+
},
|
|
1070
|
+
|
|
1071
|
+
// Interaction
|
|
1072
|
+
commentCount: {
|
|
1073
|
+
type: 'number',
|
|
1074
|
+
optional: true,
|
|
1075
|
+
description: 'Number of comments',
|
|
1076
|
+
},
|
|
1077
|
+
locked: {
|
|
1078
|
+
type: 'boolean',
|
|
1079
|
+
optional: true,
|
|
1080
|
+
description: 'Whether the issue is locked',
|
|
1081
|
+
},
|
|
1082
|
+
|
|
1083
|
+
// Dates
|
|
1084
|
+
closedAt: {
|
|
1085
|
+
type: 'datetime',
|
|
1086
|
+
optional: true,
|
|
1087
|
+
description: 'When the issue was closed',
|
|
1088
|
+
},
|
|
1089
|
+
closedBy: {
|
|
1090
|
+
type: 'string',
|
|
1091
|
+
optional: true,
|
|
1092
|
+
description: 'Username who closed the issue',
|
|
1093
|
+
},
|
|
1094
|
+
|
|
1095
|
+
// URLs
|
|
1096
|
+
url: {
|
|
1097
|
+
type: 'url',
|
|
1098
|
+
optional: true,
|
|
1099
|
+
description: 'Issue API URL',
|
|
1100
|
+
},
|
|
1101
|
+
htmlUrl: {
|
|
1102
|
+
type: 'url',
|
|
1103
|
+
optional: true,
|
|
1104
|
+
description: 'Issue web page URL',
|
|
1105
|
+
},
|
|
1106
|
+
},
|
|
1107
|
+
|
|
1108
|
+
relationships: {
|
|
1109
|
+
repository: {
|
|
1110
|
+
type: 'Repository',
|
|
1111
|
+
backref: 'issues',
|
|
1112
|
+
description: 'Repository this issue belongs to',
|
|
1113
|
+
},
|
|
1114
|
+
author: {
|
|
1115
|
+
type: 'Contact',
|
|
1116
|
+
description: 'Issue author',
|
|
1117
|
+
},
|
|
1118
|
+
assignedTo: {
|
|
1119
|
+
type: 'Contact[]',
|
|
1120
|
+
description: 'People assigned to this issue',
|
|
1121
|
+
},
|
|
1122
|
+
linkedPullRequests: {
|
|
1123
|
+
type: 'PullRequest[]',
|
|
1124
|
+
description: 'Pull requests that reference this issue',
|
|
1125
|
+
},
|
|
1126
|
+
},
|
|
1127
|
+
|
|
1128
|
+
actions: [
|
|
1129
|
+
'create',
|
|
1130
|
+
'update',
|
|
1131
|
+
'close',
|
|
1132
|
+
'reopen',
|
|
1133
|
+
'assign',
|
|
1134
|
+
'unassign',
|
|
1135
|
+
'label',
|
|
1136
|
+
'unlabel',
|
|
1137
|
+
'lock',
|
|
1138
|
+
'unlock',
|
|
1139
|
+
'comment',
|
|
1140
|
+
'transfer',
|
|
1141
|
+
'pin',
|
|
1142
|
+
'unpin',
|
|
1143
|
+
],
|
|
1144
|
+
|
|
1145
|
+
events: [
|
|
1146
|
+
'created',
|
|
1147
|
+
'updated',
|
|
1148
|
+
'closed',
|
|
1149
|
+
'reopened',
|
|
1150
|
+
'assigned',
|
|
1151
|
+
'unassigned',
|
|
1152
|
+
'labeled',
|
|
1153
|
+
'unlabeled',
|
|
1154
|
+
'locked',
|
|
1155
|
+
'unlocked',
|
|
1156
|
+
'commented',
|
|
1157
|
+
'transferred',
|
|
1158
|
+
'pinned',
|
|
1159
|
+
'unpinned',
|
|
1160
|
+
],
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
// =============================================================================
|
|
1164
|
+
// Release
|
|
1165
|
+
// =============================================================================
|
|
1166
|
+
|
|
1167
|
+
/**
|
|
1168
|
+
* Release entity
|
|
1169
|
+
*
|
|
1170
|
+
* Represents a release or tag with version information
|
|
1171
|
+
*/
|
|
1172
|
+
export const Release: Noun = {
|
|
1173
|
+
singular: 'release',
|
|
1174
|
+
plural: 'releases',
|
|
1175
|
+
description: 'A release or version tag with distribution artifacts',
|
|
1176
|
+
|
|
1177
|
+
properties: {
|
|
1178
|
+
// Identity
|
|
1179
|
+
tagName: {
|
|
1180
|
+
type: 'string',
|
|
1181
|
+
description: 'Git tag name (e.g., v1.0.0)',
|
|
1182
|
+
},
|
|
1183
|
+
name: {
|
|
1184
|
+
type: 'string',
|
|
1185
|
+
optional: true,
|
|
1186
|
+
description: 'Release name/title',
|
|
1187
|
+
},
|
|
1188
|
+
description: {
|
|
1189
|
+
type: 'string',
|
|
1190
|
+
optional: true,
|
|
1191
|
+
description: 'Release notes/description',
|
|
1192
|
+
},
|
|
1193
|
+
|
|
1194
|
+
// Version
|
|
1195
|
+
version: {
|
|
1196
|
+
type: 'string',
|
|
1197
|
+
optional: true,
|
|
1198
|
+
description: 'Semantic version number',
|
|
1199
|
+
},
|
|
1200
|
+
targetCommitish: {
|
|
1201
|
+
type: 'string',
|
|
1202
|
+
optional: true,
|
|
1203
|
+
description: 'Target branch or commit SHA',
|
|
1204
|
+
},
|
|
1205
|
+
|
|
1206
|
+
// Status
|
|
1207
|
+
draft: {
|
|
1208
|
+
type: 'boolean',
|
|
1209
|
+
optional: true,
|
|
1210
|
+
description: 'Whether this is a draft release',
|
|
1211
|
+
},
|
|
1212
|
+
prerelease: {
|
|
1213
|
+
type: 'boolean',
|
|
1214
|
+
optional: true,
|
|
1215
|
+
description: 'Whether this is a pre-release',
|
|
1216
|
+
},
|
|
1217
|
+
latest: {
|
|
1218
|
+
type: 'boolean',
|
|
1219
|
+
optional: true,
|
|
1220
|
+
description: 'Whether this is the latest release',
|
|
1221
|
+
},
|
|
1222
|
+
|
|
1223
|
+
// Publishing
|
|
1224
|
+
publishedAt: {
|
|
1225
|
+
type: 'datetime',
|
|
1226
|
+
optional: true,
|
|
1227
|
+
description: 'When the release was published',
|
|
1228
|
+
},
|
|
1229
|
+
publishedBy: {
|
|
1230
|
+
type: 'string',
|
|
1231
|
+
optional: true,
|
|
1232
|
+
description: 'Username who published the release',
|
|
1233
|
+
},
|
|
1234
|
+
|
|
1235
|
+
// URLs
|
|
1236
|
+
htmlUrl: {
|
|
1237
|
+
type: 'url',
|
|
1238
|
+
optional: true,
|
|
1239
|
+
description: 'Release web page URL',
|
|
1240
|
+
},
|
|
1241
|
+
tarballUrl: {
|
|
1242
|
+
type: 'url',
|
|
1243
|
+
optional: true,
|
|
1244
|
+
description: 'URL to download tarball',
|
|
1245
|
+
},
|
|
1246
|
+
zipballUrl: {
|
|
1247
|
+
type: 'url',
|
|
1248
|
+
optional: true,
|
|
1249
|
+
description: 'URL to download zipball',
|
|
1250
|
+
},
|
|
1251
|
+
},
|
|
1252
|
+
|
|
1253
|
+
relationships: {
|
|
1254
|
+
repository: {
|
|
1255
|
+
type: 'Repository',
|
|
1256
|
+
backref: 'releases',
|
|
1257
|
+
description: 'Repository this release belongs to',
|
|
1258
|
+
},
|
|
1259
|
+
author: {
|
|
1260
|
+
type: 'Contact',
|
|
1261
|
+
description: 'Release author',
|
|
1262
|
+
},
|
|
1263
|
+
commit: {
|
|
1264
|
+
type: 'Commit',
|
|
1265
|
+
required: false,
|
|
1266
|
+
description: 'Commit this release points to',
|
|
1267
|
+
},
|
|
1268
|
+
assets: {
|
|
1269
|
+
type: 'Attachment[]',
|
|
1270
|
+
description: 'Release assets (binaries, packages, etc.)',
|
|
1271
|
+
},
|
|
1272
|
+
},
|
|
1273
|
+
|
|
1274
|
+
actions: [
|
|
1275
|
+
'create',
|
|
1276
|
+
'update',
|
|
1277
|
+
'delete',
|
|
1278
|
+
'publish',
|
|
1279
|
+
'unpublish',
|
|
1280
|
+
'addAsset',
|
|
1281
|
+
'removeAsset',
|
|
1282
|
+
'setLatest',
|
|
1283
|
+
],
|
|
1284
|
+
|
|
1285
|
+
events: [
|
|
1286
|
+
'created',
|
|
1287
|
+
'updated',
|
|
1288
|
+
'deleted',
|
|
1289
|
+
'published',
|
|
1290
|
+
'unpublished',
|
|
1291
|
+
'assetAdded',
|
|
1292
|
+
'assetRemoved',
|
|
1293
|
+
'edited',
|
|
1294
|
+
],
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
// =============================================================================
|
|
1298
|
+
// Workflow
|
|
1299
|
+
// =============================================================================
|
|
1300
|
+
|
|
1301
|
+
/**
|
|
1302
|
+
* CI/CD workflow entity
|
|
1303
|
+
*
|
|
1304
|
+
* Represents a continuous integration/deployment workflow or action
|
|
1305
|
+
*/
|
|
1306
|
+
export const Workflow: Noun = {
|
|
1307
|
+
singular: 'workflow',
|
|
1308
|
+
plural: 'workflows',
|
|
1309
|
+
description: 'A CI/CD workflow for automated testing and deployment',
|
|
1310
|
+
|
|
1311
|
+
properties: {
|
|
1312
|
+
// Identity
|
|
1313
|
+
name: {
|
|
1314
|
+
type: 'string',
|
|
1315
|
+
description: 'Workflow name',
|
|
1316
|
+
},
|
|
1317
|
+
path: {
|
|
1318
|
+
type: 'string',
|
|
1319
|
+
optional: true,
|
|
1320
|
+
description: 'Path to workflow file (e.g., .github/workflows/ci.yml)',
|
|
1321
|
+
},
|
|
1322
|
+
|
|
1323
|
+
// Status
|
|
1324
|
+
state: {
|
|
1325
|
+
type: 'string',
|
|
1326
|
+
description: 'Workflow state: active, deleted, disabled_manually, disabled_inactivity',
|
|
1327
|
+
examples: ['active', 'deleted', 'disabled_manually', 'disabled_inactivity'],
|
|
1328
|
+
},
|
|
1329
|
+
|
|
1330
|
+
// Triggers
|
|
1331
|
+
triggers: {
|
|
1332
|
+
type: 'string',
|
|
1333
|
+
array: true,
|
|
1334
|
+
optional: true,
|
|
1335
|
+
description: 'Events that trigger this workflow (push, pull_request, schedule, etc.)',
|
|
1336
|
+
examples: ['push', 'pull_request', 'workflow_dispatch', 'schedule', 'release'],
|
|
1337
|
+
},
|
|
1338
|
+
|
|
1339
|
+
// Configuration
|
|
1340
|
+
steps: {
|
|
1341
|
+
type: 'json',
|
|
1342
|
+
optional: true,
|
|
1343
|
+
description: 'Workflow steps configuration',
|
|
1344
|
+
},
|
|
1345
|
+
jobs: {
|
|
1346
|
+
type: 'json',
|
|
1347
|
+
optional: true,
|
|
1348
|
+
description: 'Workflow jobs configuration',
|
|
1349
|
+
},
|
|
1350
|
+
environment: {
|
|
1351
|
+
type: 'json',
|
|
1352
|
+
optional: true,
|
|
1353
|
+
description: 'Environment variables and secrets',
|
|
1354
|
+
},
|
|
1355
|
+
|
|
1356
|
+
// Timing
|
|
1357
|
+
timeout: {
|
|
1358
|
+
type: 'number',
|
|
1359
|
+
optional: true,
|
|
1360
|
+
description: 'Workflow timeout in minutes',
|
|
1361
|
+
},
|
|
1362
|
+
|
|
1363
|
+
// URLs
|
|
1364
|
+
htmlUrl: {
|
|
1365
|
+
type: 'url',
|
|
1366
|
+
optional: true,
|
|
1367
|
+
description: 'Workflow web page URL',
|
|
1368
|
+
},
|
|
1369
|
+
badgeUrl: {
|
|
1370
|
+
type: 'url',
|
|
1371
|
+
optional: true,
|
|
1372
|
+
description: 'Status badge URL',
|
|
1373
|
+
},
|
|
1374
|
+
},
|
|
1375
|
+
|
|
1376
|
+
relationships: {
|
|
1377
|
+
repository: {
|
|
1378
|
+
type: 'Repository',
|
|
1379
|
+
backref: 'workflows',
|
|
1380
|
+
description: 'Repository this workflow belongs to',
|
|
1381
|
+
},
|
|
1382
|
+
runs: {
|
|
1383
|
+
type: 'WorkflowRun[]',
|
|
1384
|
+
backref: 'workflow',
|
|
1385
|
+
description: 'Executions of this workflow',
|
|
1386
|
+
},
|
|
1387
|
+
},
|
|
1388
|
+
|
|
1389
|
+
actions: [
|
|
1390
|
+
'create',
|
|
1391
|
+
'update',
|
|
1392
|
+
'delete',
|
|
1393
|
+
'enable',
|
|
1394
|
+
'disable',
|
|
1395
|
+
'trigger',
|
|
1396
|
+
'dispatch',
|
|
1397
|
+
],
|
|
1398
|
+
|
|
1399
|
+
events: [
|
|
1400
|
+
'created',
|
|
1401
|
+
'updated',
|
|
1402
|
+
'deleted',
|
|
1403
|
+
'enabled',
|
|
1404
|
+
'disabled',
|
|
1405
|
+
'triggered',
|
|
1406
|
+
'dispatched',
|
|
1407
|
+
],
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
// =============================================================================
|
|
1411
|
+
// Workflow Run
|
|
1412
|
+
// =============================================================================
|
|
1413
|
+
|
|
1414
|
+
/**
|
|
1415
|
+
* Workflow run entity
|
|
1416
|
+
*
|
|
1417
|
+
* Represents a single execution of a workflow
|
|
1418
|
+
*/
|
|
1419
|
+
export const WorkflowRun: Noun = {
|
|
1420
|
+
singular: 'workflow run',
|
|
1421
|
+
plural: 'workflow runs',
|
|
1422
|
+
description: 'An execution instance of a workflow',
|
|
1423
|
+
|
|
1424
|
+
properties: {
|
|
1425
|
+
// Identity
|
|
1426
|
+
runNumber: {
|
|
1427
|
+
type: 'number',
|
|
1428
|
+
description: 'Run number for this workflow',
|
|
1429
|
+
},
|
|
1430
|
+
runAttempt: {
|
|
1431
|
+
type: 'number',
|
|
1432
|
+
optional: true,
|
|
1433
|
+
description: 'Attempt number for this run',
|
|
1434
|
+
},
|
|
1435
|
+
|
|
1436
|
+
// Status
|
|
1437
|
+
status: {
|
|
1438
|
+
type: 'string',
|
|
1439
|
+
description: 'Run status: queued, in_progress, completed, waiting',
|
|
1440
|
+
examples: ['queued', 'in_progress', 'completed', 'waiting'],
|
|
1441
|
+
},
|
|
1442
|
+
conclusion: {
|
|
1443
|
+
type: 'string',
|
|
1444
|
+
optional: true,
|
|
1445
|
+
description: 'Run conclusion: success, failure, cancelled, skipped, timed_out, action_required',
|
|
1446
|
+
examples: ['success', 'failure', 'cancelled', 'skipped', 'timed_out', 'action_required'],
|
|
1447
|
+
},
|
|
1448
|
+
|
|
1449
|
+
// Trigger
|
|
1450
|
+
event: {
|
|
1451
|
+
type: 'string',
|
|
1452
|
+
description: 'Event that triggered the run',
|
|
1453
|
+
},
|
|
1454
|
+
triggeredBy: {
|
|
1455
|
+
type: 'string',
|
|
1456
|
+
optional: true,
|
|
1457
|
+
description: 'Username who triggered the run',
|
|
1458
|
+
},
|
|
1459
|
+
|
|
1460
|
+
// Timing
|
|
1461
|
+
startedAt: {
|
|
1462
|
+
type: 'datetime',
|
|
1463
|
+
optional: true,
|
|
1464
|
+
description: 'When the run started',
|
|
1465
|
+
},
|
|
1466
|
+
completedAt: {
|
|
1467
|
+
type: 'datetime',
|
|
1468
|
+
optional: true,
|
|
1469
|
+
description: 'When the run completed',
|
|
1470
|
+
},
|
|
1471
|
+
duration: {
|
|
1472
|
+
type: 'number',
|
|
1473
|
+
optional: true,
|
|
1474
|
+
description: 'Run duration in seconds',
|
|
1475
|
+
},
|
|
1476
|
+
|
|
1477
|
+
// Context
|
|
1478
|
+
headBranch: {
|
|
1479
|
+
type: 'string',
|
|
1480
|
+
optional: true,
|
|
1481
|
+
description: 'Branch name',
|
|
1482
|
+
},
|
|
1483
|
+
headSha: {
|
|
1484
|
+
type: 'string',
|
|
1485
|
+
optional: true,
|
|
1486
|
+
description: 'Commit SHA',
|
|
1487
|
+
},
|
|
1488
|
+
|
|
1489
|
+
// Jobs
|
|
1490
|
+
jobsUrl: {
|
|
1491
|
+
type: 'url',
|
|
1492
|
+
optional: true,
|
|
1493
|
+
description: 'URL to view jobs',
|
|
1494
|
+
},
|
|
1495
|
+
logsUrl: {
|
|
1496
|
+
type: 'url',
|
|
1497
|
+
optional: true,
|
|
1498
|
+
description: 'URL to view logs',
|
|
1499
|
+
},
|
|
1500
|
+
|
|
1501
|
+
// Results
|
|
1502
|
+
steps: {
|
|
1503
|
+
type: 'json',
|
|
1504
|
+
optional: true,
|
|
1505
|
+
description: 'Individual step results',
|
|
1506
|
+
},
|
|
1507
|
+
artifacts: {
|
|
1508
|
+
type: 'json',
|
|
1509
|
+
optional: true,
|
|
1510
|
+
description: 'Build artifacts produced',
|
|
1511
|
+
},
|
|
1512
|
+
|
|
1513
|
+
// URLs
|
|
1514
|
+
htmlUrl: {
|
|
1515
|
+
type: 'url',
|
|
1516
|
+
optional: true,
|
|
1517
|
+
description: 'Run web page URL',
|
|
1518
|
+
},
|
|
1519
|
+
},
|
|
1520
|
+
|
|
1521
|
+
relationships: {
|
|
1522
|
+
workflow: {
|
|
1523
|
+
type: 'Workflow',
|
|
1524
|
+
backref: 'runs',
|
|
1525
|
+
description: 'Workflow that was executed',
|
|
1526
|
+
},
|
|
1527
|
+
repository: {
|
|
1528
|
+
type: 'Repository',
|
|
1529
|
+
description: 'Repository the workflow ran in',
|
|
1530
|
+
},
|
|
1531
|
+
commit: {
|
|
1532
|
+
type: 'Commit',
|
|
1533
|
+
required: false,
|
|
1534
|
+
description: 'Commit that triggered the run',
|
|
1535
|
+
},
|
|
1536
|
+
branch: {
|
|
1537
|
+
type: 'Branch',
|
|
1538
|
+
required: false,
|
|
1539
|
+
description: 'Branch the run executed on',
|
|
1540
|
+
},
|
|
1541
|
+
pullRequest: {
|
|
1542
|
+
type: 'PullRequest',
|
|
1543
|
+
required: false,
|
|
1544
|
+
description: 'Pull request that triggered the run',
|
|
1545
|
+
},
|
|
1546
|
+
triggeredBy: {
|
|
1547
|
+
type: 'Contact',
|
|
1548
|
+
required: false,
|
|
1549
|
+
description: 'User who triggered the run',
|
|
1550
|
+
},
|
|
1551
|
+
},
|
|
1552
|
+
|
|
1553
|
+
actions: [
|
|
1554
|
+
'start',
|
|
1555
|
+
'cancel',
|
|
1556
|
+
'rerun',
|
|
1557
|
+
'approve',
|
|
1558
|
+
'viewLogs',
|
|
1559
|
+
'downloadArtifacts',
|
|
1560
|
+
],
|
|
1561
|
+
|
|
1562
|
+
events: [
|
|
1563
|
+
'started',
|
|
1564
|
+
'queued',
|
|
1565
|
+
'inProgress',
|
|
1566
|
+
'completed',
|
|
1567
|
+
'succeeded',
|
|
1568
|
+
'failed',
|
|
1569
|
+
'cancelled',
|
|
1570
|
+
'skipped',
|
|
1571
|
+
'timedOut',
|
|
1572
|
+
'requiresApproval',
|
|
1573
|
+
'approved',
|
|
1574
|
+
'rerun',
|
|
1575
|
+
],
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
// =============================================================================
|
|
1579
|
+
// Discussion
|
|
1580
|
+
// =============================================================================
|
|
1581
|
+
|
|
1582
|
+
/**
|
|
1583
|
+
* Discussion entity
|
|
1584
|
+
*
|
|
1585
|
+
* Represents a GitHub-style discussion thread
|
|
1586
|
+
*/
|
|
1587
|
+
export const Discussion: Noun = {
|
|
1588
|
+
singular: 'discussion',
|
|
1589
|
+
plural: 'discussions',
|
|
1590
|
+
description: 'A discussion thread for community conversations',
|
|
1591
|
+
|
|
1592
|
+
properties: {
|
|
1593
|
+
// Identity
|
|
1594
|
+
number: {
|
|
1595
|
+
type: 'number',
|
|
1596
|
+
description: 'Discussion number',
|
|
1597
|
+
},
|
|
1598
|
+
title: {
|
|
1599
|
+
type: 'string',
|
|
1600
|
+
description: 'Discussion title',
|
|
1601
|
+
},
|
|
1602
|
+
body: {
|
|
1603
|
+
type: 'string',
|
|
1604
|
+
description: 'Discussion body content',
|
|
1605
|
+
},
|
|
1606
|
+
|
|
1607
|
+
// Category
|
|
1608
|
+
category: {
|
|
1609
|
+
type: 'string',
|
|
1610
|
+
optional: true,
|
|
1611
|
+
description: 'Discussion category',
|
|
1612
|
+
},
|
|
1613
|
+
categoryEmoji: {
|
|
1614
|
+
type: 'string',
|
|
1615
|
+
optional: true,
|
|
1616
|
+
description: 'Category emoji icon',
|
|
1617
|
+
},
|
|
1618
|
+
|
|
1619
|
+
// Status
|
|
1620
|
+
answered: {
|
|
1621
|
+
type: 'boolean',
|
|
1622
|
+
optional: true,
|
|
1623
|
+
description: 'Whether discussion has an accepted answer',
|
|
1624
|
+
},
|
|
1625
|
+
locked: {
|
|
1626
|
+
type: 'boolean',
|
|
1627
|
+
optional: true,
|
|
1628
|
+
description: 'Whether discussion is locked',
|
|
1629
|
+
},
|
|
1630
|
+
pinned: {
|
|
1631
|
+
type: 'boolean',
|
|
1632
|
+
optional: true,
|
|
1633
|
+
description: 'Whether discussion is pinned',
|
|
1634
|
+
},
|
|
1635
|
+
|
|
1636
|
+
// Engagement
|
|
1637
|
+
upvoteCount: {
|
|
1638
|
+
type: 'number',
|
|
1639
|
+
optional: true,
|
|
1640
|
+
description: 'Number of upvotes',
|
|
1641
|
+
},
|
|
1642
|
+
commentCount: {
|
|
1643
|
+
type: 'number',
|
|
1644
|
+
optional: true,
|
|
1645
|
+
description: 'Number of comments',
|
|
1646
|
+
},
|
|
1647
|
+
|
|
1648
|
+
// URLs
|
|
1649
|
+
url: {
|
|
1650
|
+
type: 'url',
|
|
1651
|
+
optional: true,
|
|
1652
|
+
description: 'Discussion URL',
|
|
1653
|
+
},
|
|
1654
|
+
},
|
|
1655
|
+
|
|
1656
|
+
relationships: {
|
|
1657
|
+
repository: {
|
|
1658
|
+
type: 'Repository',
|
|
1659
|
+
description: 'Repository this discussion belongs to',
|
|
1660
|
+
},
|
|
1661
|
+
author: {
|
|
1662
|
+
type: 'Contact',
|
|
1663
|
+
description: 'Discussion author',
|
|
1664
|
+
},
|
|
1665
|
+
answer: {
|
|
1666
|
+
type: 'Comment',
|
|
1667
|
+
required: false,
|
|
1668
|
+
description: 'Accepted answer comment',
|
|
1669
|
+
},
|
|
1670
|
+
comments: {
|
|
1671
|
+
type: 'Comment[]',
|
|
1672
|
+
description: 'Discussion comments',
|
|
1673
|
+
},
|
|
1674
|
+
},
|
|
1675
|
+
|
|
1676
|
+
actions: [
|
|
1677
|
+
'create',
|
|
1678
|
+
'update',
|
|
1679
|
+
'delete',
|
|
1680
|
+
'lock',
|
|
1681
|
+
'unlock',
|
|
1682
|
+
'pin',
|
|
1683
|
+
'unpin',
|
|
1684
|
+
'upvote',
|
|
1685
|
+
'removeUpvote',
|
|
1686
|
+
'markAnswer',
|
|
1687
|
+
'unmarkAnswer',
|
|
1688
|
+
'transfer',
|
|
1689
|
+
],
|
|
1690
|
+
|
|
1691
|
+
events: [
|
|
1692
|
+
'created',
|
|
1693
|
+
'updated',
|
|
1694
|
+
'deleted',
|
|
1695
|
+
'locked',
|
|
1696
|
+
'unlocked',
|
|
1697
|
+
'pinned',
|
|
1698
|
+
'unpinned',
|
|
1699
|
+
'upvoted',
|
|
1700
|
+
'answered',
|
|
1701
|
+
'transferred',
|
|
1702
|
+
'commented',
|
|
1703
|
+
],
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1706
|
+
// =============================================================================
|
|
1707
|
+
// Package
|
|
1708
|
+
// =============================================================================
|
|
1709
|
+
|
|
1710
|
+
/**
|
|
1711
|
+
* Package entity
|
|
1712
|
+
*
|
|
1713
|
+
* Represents a package in a package registry (npm, containers, etc.)
|
|
1714
|
+
*/
|
|
1715
|
+
export const Package: Noun = {
|
|
1716
|
+
singular: 'package',
|
|
1717
|
+
plural: 'packages',
|
|
1718
|
+
description: 'A package in a package registry',
|
|
1719
|
+
|
|
1720
|
+
properties: {
|
|
1721
|
+
// Identity
|
|
1722
|
+
name: {
|
|
1723
|
+
type: 'string',
|
|
1724
|
+
description: 'Package name',
|
|
1725
|
+
},
|
|
1726
|
+
namespace: {
|
|
1727
|
+
type: 'string',
|
|
1728
|
+
optional: true,
|
|
1729
|
+
description: 'Package namespace/scope',
|
|
1730
|
+
},
|
|
1731
|
+
packageType: {
|
|
1732
|
+
type: 'string',
|
|
1733
|
+
description: 'Package type: npm, maven, docker, nuget, rubygems',
|
|
1734
|
+
examples: ['npm', 'maven', 'docker', 'nuget', 'rubygems', 'container'],
|
|
1735
|
+
},
|
|
1736
|
+
|
|
1737
|
+
// Version
|
|
1738
|
+
latestVersion: {
|
|
1739
|
+
type: 'string',
|
|
1740
|
+
optional: true,
|
|
1741
|
+
description: 'Latest version tag',
|
|
1742
|
+
},
|
|
1743
|
+
versionCount: {
|
|
1744
|
+
type: 'number',
|
|
1745
|
+
optional: true,
|
|
1746
|
+
description: 'Number of versions published',
|
|
1747
|
+
},
|
|
1748
|
+
|
|
1749
|
+
// Visibility
|
|
1750
|
+
visibility: {
|
|
1751
|
+
type: 'string',
|
|
1752
|
+
description: 'Package visibility: public, private',
|
|
1753
|
+
examples: ['public', 'private'],
|
|
1754
|
+
},
|
|
1755
|
+
|
|
1756
|
+
// Metadata
|
|
1757
|
+
description: {
|
|
1758
|
+
type: 'string',
|
|
1759
|
+
optional: true,
|
|
1760
|
+
description: 'Package description',
|
|
1761
|
+
},
|
|
1762
|
+
license: {
|
|
1763
|
+
type: 'string',
|
|
1764
|
+
optional: true,
|
|
1765
|
+
description: 'Package license',
|
|
1766
|
+
},
|
|
1767
|
+
homepage: {
|
|
1768
|
+
type: 'url',
|
|
1769
|
+
optional: true,
|
|
1770
|
+
description: 'Package homepage',
|
|
1771
|
+
},
|
|
1772
|
+
repository: {
|
|
1773
|
+
type: 'url',
|
|
1774
|
+
optional: true,
|
|
1775
|
+
description: 'Source repository URL',
|
|
1776
|
+
},
|
|
1777
|
+
|
|
1778
|
+
// Stats
|
|
1779
|
+
downloadCount: {
|
|
1780
|
+
type: 'number',
|
|
1781
|
+
optional: true,
|
|
1782
|
+
description: 'Total downloads',
|
|
1783
|
+
},
|
|
1784
|
+
size: {
|
|
1785
|
+
type: 'number',
|
|
1786
|
+
optional: true,
|
|
1787
|
+
description: 'Package size in bytes',
|
|
1788
|
+
},
|
|
1789
|
+
},
|
|
1790
|
+
|
|
1791
|
+
relationships: {
|
|
1792
|
+
owner: {
|
|
1793
|
+
type: 'Contact',
|
|
1794
|
+
description: 'Package owner',
|
|
1795
|
+
},
|
|
1796
|
+
versions: {
|
|
1797
|
+
type: 'PackageVersion[]',
|
|
1798
|
+
description: 'Package versions',
|
|
1799
|
+
},
|
|
1800
|
+
repository: {
|
|
1801
|
+
type: 'Repository',
|
|
1802
|
+
required: false,
|
|
1803
|
+
description: 'Source repository',
|
|
1804
|
+
},
|
|
1805
|
+
},
|
|
1806
|
+
|
|
1807
|
+
actions: [
|
|
1808
|
+
'create',
|
|
1809
|
+
'publish',
|
|
1810
|
+
'unpublish',
|
|
1811
|
+
'deprecate',
|
|
1812
|
+
'undeprecate',
|
|
1813
|
+
'delete',
|
|
1814
|
+
'transfer',
|
|
1815
|
+
'setVisibility',
|
|
1816
|
+
'addCollaborator',
|
|
1817
|
+
'removeCollaborator',
|
|
1818
|
+
],
|
|
1819
|
+
|
|
1820
|
+
events: [
|
|
1821
|
+
'created',
|
|
1822
|
+
'published',
|
|
1823
|
+
'unpublished',
|
|
1824
|
+
'deprecated',
|
|
1825
|
+
'deleted',
|
|
1826
|
+
'transferred',
|
|
1827
|
+
'visibilityChanged',
|
|
1828
|
+
'collaboratorAdded',
|
|
1829
|
+
'collaboratorRemoved',
|
|
1830
|
+
'downloaded',
|
|
1831
|
+
],
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
/**
|
|
1835
|
+
* Package version entity
|
|
1836
|
+
*/
|
|
1837
|
+
export const PackageVersion: Noun = {
|
|
1838
|
+
singular: 'package version',
|
|
1839
|
+
plural: 'package versions',
|
|
1840
|
+
description: 'A specific version of a package',
|
|
1841
|
+
|
|
1842
|
+
properties: {
|
|
1843
|
+
version: {
|
|
1844
|
+
type: 'string',
|
|
1845
|
+
description: 'Version string (semver)',
|
|
1846
|
+
},
|
|
1847
|
+
tag: {
|
|
1848
|
+
type: 'string',
|
|
1849
|
+
optional: true,
|
|
1850
|
+
description: 'Version tag (latest, beta, etc.)',
|
|
1851
|
+
},
|
|
1852
|
+
digest: {
|
|
1853
|
+
type: 'string',
|
|
1854
|
+
optional: true,
|
|
1855
|
+
description: 'Content digest/hash',
|
|
1856
|
+
},
|
|
1857
|
+
size: {
|
|
1858
|
+
type: 'number',
|
|
1859
|
+
optional: true,
|
|
1860
|
+
description: 'Version size in bytes',
|
|
1861
|
+
},
|
|
1862
|
+
deprecated: {
|
|
1863
|
+
type: 'boolean',
|
|
1864
|
+
optional: true,
|
|
1865
|
+
description: 'Whether version is deprecated',
|
|
1866
|
+
},
|
|
1867
|
+
deprecationMessage: {
|
|
1868
|
+
type: 'string',
|
|
1869
|
+
optional: true,
|
|
1870
|
+
description: 'Deprecation message',
|
|
1871
|
+
},
|
|
1872
|
+
publishedAt: {
|
|
1873
|
+
type: 'datetime',
|
|
1874
|
+
optional: true,
|
|
1875
|
+
description: 'Publication timestamp',
|
|
1876
|
+
},
|
|
1877
|
+
},
|
|
1878
|
+
|
|
1879
|
+
relationships: {
|
|
1880
|
+
package: {
|
|
1881
|
+
type: 'Package',
|
|
1882
|
+
backref: 'versions',
|
|
1883
|
+
description: 'Parent package',
|
|
1884
|
+
},
|
|
1885
|
+
publisher: {
|
|
1886
|
+
type: 'Contact',
|
|
1887
|
+
description: 'Who published this version',
|
|
1888
|
+
},
|
|
1889
|
+
},
|
|
1890
|
+
|
|
1891
|
+
actions: ['publish', 'deprecate', 'undeprecate', 'delete', 'download'],
|
|
1892
|
+
|
|
1893
|
+
events: ['published', 'deprecated', 'deleted', 'downloaded'],
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
// =============================================================================
|
|
1897
|
+
// Gist
|
|
1898
|
+
// =============================================================================
|
|
1899
|
+
|
|
1900
|
+
/**
|
|
1901
|
+
* Gist entity
|
|
1902
|
+
*
|
|
1903
|
+
* Represents a code snippet or file sharing gist
|
|
1904
|
+
*/
|
|
1905
|
+
export const Gist: Noun = {
|
|
1906
|
+
singular: 'gist',
|
|
1907
|
+
plural: 'gists',
|
|
1908
|
+
description: 'A code snippet or file sharing gist',
|
|
1909
|
+
|
|
1910
|
+
properties: {
|
|
1911
|
+
// Content
|
|
1912
|
+
description: {
|
|
1913
|
+
type: 'string',
|
|
1914
|
+
optional: true,
|
|
1915
|
+
description: 'Gist description',
|
|
1916
|
+
},
|
|
1917
|
+
files: {
|
|
1918
|
+
type: 'json',
|
|
1919
|
+
description: 'Files in the gist (filename -> content)',
|
|
1920
|
+
},
|
|
1921
|
+
fileCount: {
|
|
1922
|
+
type: 'number',
|
|
1923
|
+
optional: true,
|
|
1924
|
+
description: 'Number of files',
|
|
1925
|
+
},
|
|
1926
|
+
|
|
1927
|
+
// Visibility
|
|
1928
|
+
public: {
|
|
1929
|
+
type: 'boolean',
|
|
1930
|
+
description: 'Whether gist is public',
|
|
1931
|
+
},
|
|
1932
|
+
|
|
1933
|
+
// Stats
|
|
1934
|
+
forkCount: {
|
|
1935
|
+
type: 'number',
|
|
1936
|
+
optional: true,
|
|
1937
|
+
description: 'Number of forks',
|
|
1938
|
+
},
|
|
1939
|
+
starCount: {
|
|
1940
|
+
type: 'number',
|
|
1941
|
+
optional: true,
|
|
1942
|
+
description: 'Number of stars',
|
|
1943
|
+
},
|
|
1944
|
+
commentCount: {
|
|
1945
|
+
type: 'number',
|
|
1946
|
+
optional: true,
|
|
1947
|
+
description: 'Number of comments',
|
|
1948
|
+
},
|
|
1949
|
+
|
|
1950
|
+
// URLs
|
|
1951
|
+
url: {
|
|
1952
|
+
type: 'url',
|
|
1953
|
+
optional: true,
|
|
1954
|
+
description: 'Gist web URL',
|
|
1955
|
+
},
|
|
1956
|
+
rawUrl: {
|
|
1957
|
+
type: 'url',
|
|
1958
|
+
optional: true,
|
|
1959
|
+
description: 'Raw content URL',
|
|
1960
|
+
},
|
|
1961
|
+
embedUrl: {
|
|
1962
|
+
type: 'url',
|
|
1963
|
+
optional: true,
|
|
1964
|
+
description: 'Embed script URL',
|
|
1965
|
+
},
|
|
1966
|
+
},
|
|
1967
|
+
|
|
1968
|
+
relationships: {
|
|
1969
|
+
owner: {
|
|
1970
|
+
type: 'Contact',
|
|
1971
|
+
description: 'Gist owner',
|
|
1972
|
+
},
|
|
1973
|
+
forks: {
|
|
1974
|
+
type: 'Gist[]',
|
|
1975
|
+
description: 'Forked gists',
|
|
1976
|
+
},
|
|
1977
|
+
comments: {
|
|
1978
|
+
type: 'Comment[]',
|
|
1979
|
+
description: 'Gist comments',
|
|
1980
|
+
},
|
|
1981
|
+
},
|
|
1982
|
+
|
|
1983
|
+
actions: [
|
|
1984
|
+
'create',
|
|
1985
|
+
'update',
|
|
1986
|
+
'delete',
|
|
1987
|
+
'fork',
|
|
1988
|
+
'star',
|
|
1989
|
+
'unstar',
|
|
1990
|
+
'comment',
|
|
1991
|
+
'embed',
|
|
1992
|
+
'share',
|
|
1993
|
+
],
|
|
1994
|
+
|
|
1995
|
+
events: [
|
|
1996
|
+
'created',
|
|
1997
|
+
'updated',
|
|
1998
|
+
'deleted',
|
|
1999
|
+
'forked',
|
|
2000
|
+
'starred',
|
|
2001
|
+
'unstarred',
|
|
2002
|
+
'commented',
|
|
2003
|
+
],
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
// =============================================================================
|
|
2007
|
+
// Secret
|
|
2008
|
+
// =============================================================================
|
|
2009
|
+
|
|
2010
|
+
/**
|
|
2011
|
+
* Secret entity
|
|
2012
|
+
*
|
|
2013
|
+
* Represents a secret or credential stored securely
|
|
2014
|
+
*/
|
|
2015
|
+
export const Secret: Noun = {
|
|
2016
|
+
singular: 'secret',
|
|
2017
|
+
plural: 'secrets',
|
|
2018
|
+
description: 'A secret or credential stored securely',
|
|
2019
|
+
|
|
2020
|
+
properties: {
|
|
2021
|
+
// Identity
|
|
2022
|
+
name: {
|
|
2023
|
+
type: 'string',
|
|
2024
|
+
description: 'Secret name (typically uppercase with underscores)',
|
|
2025
|
+
},
|
|
2026
|
+
|
|
2027
|
+
// Scope
|
|
2028
|
+
scope: {
|
|
2029
|
+
type: 'string',
|
|
2030
|
+
description: 'Secret scope: repository, environment, organization',
|
|
2031
|
+
examples: ['repository', 'environment', 'organization'],
|
|
2032
|
+
},
|
|
2033
|
+
environment: {
|
|
2034
|
+
type: 'string',
|
|
2035
|
+
optional: true,
|
|
2036
|
+
description: 'Environment name if environment-scoped',
|
|
2037
|
+
},
|
|
2038
|
+
|
|
2039
|
+
// Metadata
|
|
2040
|
+
visibility: {
|
|
2041
|
+
type: 'string',
|
|
2042
|
+
optional: true,
|
|
2043
|
+
description: 'Visibility for org secrets: all, private, selected',
|
|
2044
|
+
examples: ['all', 'private', 'selected'],
|
|
2045
|
+
},
|
|
2046
|
+
selectedRepositories: {
|
|
2047
|
+
type: 'string',
|
|
2048
|
+
array: true,
|
|
2049
|
+
optional: true,
|
|
2050
|
+
description: 'Selected repositories for org secrets',
|
|
2051
|
+
},
|
|
2052
|
+
|
|
2053
|
+
// Audit
|
|
2054
|
+
lastUpdatedAt: {
|
|
2055
|
+
type: 'datetime',
|
|
2056
|
+
optional: true,
|
|
2057
|
+
description: 'When the secret was last updated',
|
|
2058
|
+
},
|
|
2059
|
+
updatedBy: {
|
|
2060
|
+
type: 'string',
|
|
2061
|
+
optional: true,
|
|
2062
|
+
description: 'Who last updated the secret',
|
|
2063
|
+
},
|
|
2064
|
+
},
|
|
2065
|
+
|
|
2066
|
+
relationships: {
|
|
2067
|
+
repository: {
|
|
2068
|
+
type: 'Repository',
|
|
2069
|
+
required: false,
|
|
2070
|
+
description: 'Repository if repo-scoped',
|
|
2071
|
+
},
|
|
2072
|
+
environment: {
|
|
2073
|
+
type: 'Environment',
|
|
2074
|
+
required: false,
|
|
2075
|
+
description: 'Environment if environment-scoped',
|
|
2076
|
+
},
|
|
2077
|
+
},
|
|
2078
|
+
|
|
2079
|
+
actions: [
|
|
2080
|
+
'create',
|
|
2081
|
+
'update',
|
|
2082
|
+
'delete',
|
|
2083
|
+
'rotate',
|
|
2084
|
+
'setVisibility',
|
|
2085
|
+
'addRepository',
|
|
2086
|
+
'removeRepository',
|
|
2087
|
+
],
|
|
2088
|
+
|
|
2089
|
+
events: [
|
|
2090
|
+
'created',
|
|
2091
|
+
'updated',
|
|
2092
|
+
'deleted',
|
|
2093
|
+
'rotated',
|
|
2094
|
+
'visibilityChanged',
|
|
2095
|
+
'accessed',
|
|
2096
|
+
],
|
|
2097
|
+
}
|
|
2098
|
+
|
|
2099
|
+
// =============================================================================
|
|
2100
|
+
// Webhook
|
|
2101
|
+
// =============================================================================
|
|
2102
|
+
|
|
2103
|
+
/**
|
|
2104
|
+
* Webhook entity (development context)
|
|
2105
|
+
*
|
|
2106
|
+
* Represents a webhook for receiving event notifications
|
|
2107
|
+
*/
|
|
2108
|
+
export const Webhook: Noun = {
|
|
2109
|
+
singular: 'webhook',
|
|
2110
|
+
plural: 'webhooks',
|
|
2111
|
+
description: 'A webhook for receiving event notifications',
|
|
2112
|
+
|
|
2113
|
+
properties: {
|
|
2114
|
+
// Configuration
|
|
2115
|
+
url: {
|
|
2116
|
+
type: 'url',
|
|
2117
|
+
description: 'Webhook delivery URL',
|
|
2118
|
+
},
|
|
2119
|
+
contentType: {
|
|
2120
|
+
type: 'string',
|
|
2121
|
+
description: 'Content type: json, form',
|
|
2122
|
+
examples: ['json', 'form'],
|
|
2123
|
+
},
|
|
2124
|
+
secret: {
|
|
2125
|
+
type: 'string',
|
|
2126
|
+
optional: true,
|
|
2127
|
+
description: 'Webhook secret for signature verification',
|
|
2128
|
+
},
|
|
2129
|
+
|
|
2130
|
+
// Events
|
|
2131
|
+
events: {
|
|
2132
|
+
type: 'string',
|
|
2133
|
+
array: true,
|
|
2134
|
+
description: 'Events to trigger webhook',
|
|
2135
|
+
},
|
|
2136
|
+
|
|
2137
|
+
// Status
|
|
2138
|
+
active: {
|
|
2139
|
+
type: 'boolean',
|
|
2140
|
+
description: 'Whether webhook is active',
|
|
2141
|
+
},
|
|
2142
|
+
insecureSsl: {
|
|
2143
|
+
type: 'boolean',
|
|
2144
|
+
optional: true,
|
|
2145
|
+
description: 'Whether to skip SSL verification',
|
|
2146
|
+
},
|
|
2147
|
+
|
|
2148
|
+
// Delivery stats
|
|
2149
|
+
lastDeliveredAt: {
|
|
2150
|
+
type: 'datetime',
|
|
2151
|
+
optional: true,
|
|
2152
|
+
description: 'Timestamp of last delivery',
|
|
2153
|
+
},
|
|
2154
|
+
lastStatus: {
|
|
2155
|
+
type: 'string',
|
|
2156
|
+
optional: true,
|
|
2157
|
+
description: 'Status of last delivery',
|
|
2158
|
+
},
|
|
2159
|
+
deliveryCount: {
|
|
2160
|
+
type: 'number',
|
|
2161
|
+
optional: true,
|
|
2162
|
+
description: 'Total deliveries',
|
|
2163
|
+
},
|
|
2164
|
+
failureCount: {
|
|
2165
|
+
type: 'number',
|
|
2166
|
+
optional: true,
|
|
2167
|
+
description: 'Failed deliveries',
|
|
2168
|
+
},
|
|
2169
|
+
},
|
|
2170
|
+
|
|
2171
|
+
relationships: {
|
|
2172
|
+
repository: {
|
|
2173
|
+
type: 'Repository',
|
|
2174
|
+
required: false,
|
|
2175
|
+
description: 'Repository if repo webhook',
|
|
2176
|
+
},
|
|
2177
|
+
deliveries: {
|
|
2178
|
+
type: 'WebhookDelivery[]',
|
|
2179
|
+
description: 'Delivery history',
|
|
2180
|
+
},
|
|
2181
|
+
},
|
|
2182
|
+
|
|
2183
|
+
actions: [
|
|
2184
|
+
'create',
|
|
2185
|
+
'update',
|
|
2186
|
+
'delete',
|
|
2187
|
+
'enable',
|
|
2188
|
+
'disable',
|
|
2189
|
+
'test',
|
|
2190
|
+
'redeliver',
|
|
2191
|
+
],
|
|
2192
|
+
|
|
2193
|
+
events: [
|
|
2194
|
+
'created',
|
|
2195
|
+
'updated',
|
|
2196
|
+
'deleted',
|
|
2197
|
+
'enabled',
|
|
2198
|
+
'disabled',
|
|
2199
|
+
'delivered',
|
|
2200
|
+
'failed',
|
|
2201
|
+
],
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
/**
|
|
2205
|
+
* Webhook delivery entity
|
|
2206
|
+
*/
|
|
2207
|
+
export const WebhookDelivery: Noun = {
|
|
2208
|
+
singular: 'webhook delivery',
|
|
2209
|
+
plural: 'webhook deliveries',
|
|
2210
|
+
description: 'A webhook delivery attempt',
|
|
2211
|
+
|
|
2212
|
+
properties: {
|
|
2213
|
+
event: {
|
|
2214
|
+
type: 'string',
|
|
2215
|
+
description: 'Event type that triggered delivery',
|
|
2216
|
+
},
|
|
2217
|
+
action: {
|
|
2218
|
+
type: 'string',
|
|
2219
|
+
optional: true,
|
|
2220
|
+
description: 'Event action',
|
|
2221
|
+
},
|
|
2222
|
+
status: {
|
|
2223
|
+
type: 'string',
|
|
2224
|
+
description: 'Delivery status: pending, success, failed',
|
|
2225
|
+
examples: ['pending', 'success', 'failed'],
|
|
2226
|
+
},
|
|
2227
|
+
statusCode: {
|
|
2228
|
+
type: 'number',
|
|
2229
|
+
optional: true,
|
|
2230
|
+
description: 'HTTP response status code',
|
|
2231
|
+
},
|
|
2232
|
+
duration: {
|
|
2233
|
+
type: 'number',
|
|
2234
|
+
optional: true,
|
|
2235
|
+
description: 'Delivery duration in ms',
|
|
2236
|
+
},
|
|
2237
|
+
requestHeaders: {
|
|
2238
|
+
type: 'json',
|
|
2239
|
+
optional: true,
|
|
2240
|
+
description: 'Request headers sent',
|
|
2241
|
+
},
|
|
2242
|
+
requestPayload: {
|
|
2243
|
+
type: 'json',
|
|
2244
|
+
optional: true,
|
|
2245
|
+
description: 'Request payload sent',
|
|
2246
|
+
},
|
|
2247
|
+
responseHeaders: {
|
|
2248
|
+
type: 'json',
|
|
2249
|
+
optional: true,
|
|
2250
|
+
description: 'Response headers received',
|
|
2251
|
+
},
|
|
2252
|
+
responseBody: {
|
|
2253
|
+
type: 'string',
|
|
2254
|
+
optional: true,
|
|
2255
|
+
description: 'Response body received',
|
|
2256
|
+
},
|
|
2257
|
+
deliveredAt: {
|
|
2258
|
+
type: 'datetime',
|
|
2259
|
+
description: 'Delivery timestamp',
|
|
2260
|
+
},
|
|
2261
|
+
},
|
|
2262
|
+
|
|
2263
|
+
relationships: {
|
|
2264
|
+
webhook: {
|
|
2265
|
+
type: 'Webhook',
|
|
2266
|
+
backref: 'deliveries',
|
|
2267
|
+
description: 'Parent webhook',
|
|
2268
|
+
},
|
|
2269
|
+
},
|
|
2270
|
+
|
|
2271
|
+
actions: ['redeliver', 'view'],
|
|
2272
|
+
|
|
2273
|
+
events: ['delivered', 'failed', 'redelivered'],
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2276
|
+
// =============================================================================
|
|
2277
|
+
// DeployKey
|
|
2278
|
+
// =============================================================================
|
|
2279
|
+
|
|
2280
|
+
/**
|
|
2281
|
+
* Deploy key entity
|
|
2282
|
+
*
|
|
2283
|
+
* Represents a deploy key for repository access
|
|
2284
|
+
*/
|
|
2285
|
+
export const DeployKey: Noun = {
|
|
2286
|
+
singular: 'deploy key',
|
|
2287
|
+
plural: 'deploy keys',
|
|
2288
|
+
description: 'A deploy key for repository access',
|
|
2289
|
+
|
|
2290
|
+
properties: {
|
|
2291
|
+
// Identity
|
|
2292
|
+
title: {
|
|
2293
|
+
type: 'string',
|
|
2294
|
+
description: 'Deploy key title',
|
|
2295
|
+
},
|
|
2296
|
+
key: {
|
|
2297
|
+
type: 'string',
|
|
2298
|
+
description: 'Public SSH key',
|
|
2299
|
+
},
|
|
2300
|
+
fingerprint: {
|
|
2301
|
+
type: 'string',
|
|
2302
|
+
optional: true,
|
|
2303
|
+
description: 'Key fingerprint',
|
|
2304
|
+
},
|
|
2305
|
+
|
|
2306
|
+
// Permissions
|
|
2307
|
+
readOnly: {
|
|
2308
|
+
type: 'boolean',
|
|
2309
|
+
description: 'Whether key has read-only access',
|
|
2310
|
+
},
|
|
2311
|
+
|
|
2312
|
+
// Status
|
|
2313
|
+
verified: {
|
|
2314
|
+
type: 'boolean',
|
|
2315
|
+
optional: true,
|
|
2316
|
+
description: 'Whether key has been verified',
|
|
2317
|
+
},
|
|
2318
|
+
lastUsedAt: {
|
|
2319
|
+
type: 'datetime',
|
|
2320
|
+
optional: true,
|
|
2321
|
+
description: 'Last time key was used',
|
|
2322
|
+
},
|
|
2323
|
+
},
|
|
2324
|
+
|
|
2325
|
+
relationships: {
|
|
2326
|
+
repository: {
|
|
2327
|
+
type: 'Repository',
|
|
2328
|
+
description: 'Repository this key grants access to',
|
|
2329
|
+
},
|
|
2330
|
+
addedBy: {
|
|
2331
|
+
type: 'Contact',
|
|
2332
|
+
description: 'Who added the key',
|
|
2333
|
+
},
|
|
2334
|
+
},
|
|
2335
|
+
|
|
2336
|
+
actions: ['create', 'delete', 'rotate'],
|
|
2337
|
+
|
|
2338
|
+
events: ['created', 'deleted', 'used'],
|
|
2339
|
+
}
|
|
2340
|
+
|
|
2341
|
+
// =============================================================================
|
|
2342
|
+
// Export all entities as a schema
|
|
2343
|
+
// =============================================================================
|
|
2344
|
+
|
|
2345
|
+
/**
|
|
2346
|
+
* All development tool entity types
|
|
2347
|
+
*/
|
|
2348
|
+
export const DevelopmentEntities = {
|
|
2349
|
+
// Version Control
|
|
2350
|
+
Repository,
|
|
2351
|
+
Branch,
|
|
2352
|
+
Commit,
|
|
2353
|
+
|
|
2354
|
+
// Code Review
|
|
2355
|
+
PullRequest,
|
|
2356
|
+
CodeReview,
|
|
2357
|
+
|
|
2358
|
+
// Issues & Discussions
|
|
2359
|
+
CodeIssue,
|
|
2360
|
+
Discussion,
|
|
2361
|
+
|
|
2362
|
+
// Releases & Packages
|
|
2363
|
+
Release,
|
|
2364
|
+
Package,
|
|
2365
|
+
PackageVersion,
|
|
2366
|
+
|
|
2367
|
+
// CI/CD
|
|
2368
|
+
Workflow,
|
|
2369
|
+
WorkflowRun,
|
|
2370
|
+
|
|
2371
|
+
// Sharing
|
|
2372
|
+
Gist,
|
|
2373
|
+
|
|
2374
|
+
// Security & Access
|
|
2375
|
+
Secret,
|
|
2376
|
+
Webhook,
|
|
2377
|
+
WebhookDelivery,
|
|
2378
|
+
DeployKey,
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
/**
|
|
2382
|
+
* Entity categories for organization
|
|
2383
|
+
*/
|
|
2384
|
+
export const DevelopmentCategories = {
|
|
2385
|
+
versionControl: ['Repository', 'Branch', 'Commit'],
|
|
2386
|
+
codeReview: ['PullRequest', 'CodeReview'],
|
|
2387
|
+
issueTracking: ['CodeIssue', 'Discussion'],
|
|
2388
|
+
releases: ['Release', 'Package', 'PackageVersion'],
|
|
2389
|
+
cicd: ['Workflow', 'WorkflowRun'],
|
|
2390
|
+
sharing: ['Gist'],
|
|
2391
|
+
security: ['Secret', 'Webhook', 'WebhookDelivery', 'DeployKey'],
|
|
2392
|
+
} as const
|