Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .changeset/fix-clone-remote-did.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'@enbox/gitd': patch
---

fix: skip local daemon when cloning repos owned by a different DID

The local daemon resolver now checks `ownerDid` in the lockfile and
only routes to `localhost` when the requested DID matches the daemon
owner. Previously, cloning any DID would hit the local daemon — which
does not have the remote user's repos — and fail with 404.
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ jobs:
run: bun test .spec.ts --coverage --coverage-reporter=lcov --coverage-dir=coverage

- name: Upload coverage to Coveralls
if: always()
uses: coverallsapp/github-action@v2
with:
file: coverage/lcov.info
Expand Down
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ This document provides a high-level overview of how `gitd` works. For detailed p

## Protocols

`gitd` defines a set of DWN protocols under the `https://enbox.org/protocols/forge/` namespace. Each protocol is self-contained with its own types, schemas, and authorization rules.
`gitd` defines a set of DWN protocols under the `https://enbox.id/protocols/forge/` namespace. Each protocol is self-contained with its own types, schemas, and authorization rules.

| Protocol | Purpose |
|---|---|
Expand Down
180 changes: 111 additions & 69 deletions PLAN.md

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Local proxies that let existing tools talk to DWN without modification. Run them
|---|---|
| **GitHub API** | `gh repo view did:dht:abc/my-repo` |
| **npm** | `npm install --registry=http://localhost:4873 @did:dht:abc/my-pkg` |
| **Go** | `GOPROXY=http://localhost:4874 go get did.enbox.org/did:dht:abc/my-mod` |
| **Go** | `GOPROXY=http://localhost:4874 go get did.enbox.id/did:dht:abc/my-mod` |
| **OCI** | `docker pull localhost:5555/did:dht:abc/my-image:v1.0.0` |

## Web UI
Expand All @@ -142,7 +142,10 @@ gitd web --port 3000

## Architecture

See [ARCHITECTURE.md](./ARCHITECTURE.md) for protocol and system design, or [PLAN.md](./PLAN.md) for the full roadmap.
See [ARCHITECTURE.md](./ARCHITECTURE.md) for protocol and system design,
[PLAN.md](./PLAN.md) for the full roadmap, or
[REPO_LEVEL_MVP_PLAN.md](./REPO_LEVEL_MVP_PLAN.md) for the focused public
repo-level GitHub replacement plan and E2E MVP contract.

## Development

Expand Down
694 changes: 694 additions & 0 deletions REPO_LEVEL_MVP_PLAN.md

Large diffs are not rendered by default.

304 changes: 132 additions & 172 deletions bun.lock

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,14 @@
},
"dependencies": {
"@clack/prompts": "^1.0.1",
"@enbox/agent": "^0.3.1",
"@enbox/api": "^0.4.2",
"@enbox/auth": "^0.3.1",
"@enbox/crypto": "0.0.6",
"@enbox/dids": "0.0.7",
"@enbox/dwn-sdk-js": "0.1.0",
"@enbox/dwn-sql-store": "0.0.9",
"kysely": "0.26.3"
"@enbox/agent": "0.8.3",
"@enbox/api": "0.6.41",
"@enbox/auth": "0.6.49",
"@enbox/crypto": "0.1.1",
"@enbox/dids": "0.1.1",
"@enbox/dwn-sdk-js": "0.4.2",
"@enbox/dwn-sql-store": "0.0.27",
"kysely": "0.28.14"
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.2",
Expand Down
2 changes: 1 addition & 1 deletion schemas/ci/check-run.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/check-run",
"$id": "https://enbox.id/schemas/forge/check-run",
"title": "CheckRunData",
"description": "An individual check run within a check suite",
"type": "object",
Expand Down
21 changes: 20 additions & 1 deletion schemas/ci/check-suite.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/check-suite",
"$id": "https://enbox.id/schemas/forge/check-suite",
"title": "CheckSuiteData",
"description": "A CI check suite associated with a branch",
"type": "object",
"properties": {
"app": {
"type": "string"
},
"headBranch": {
"type": "string"
},
"event": {
"type": "string"
},
"displayTitle": {
"type": "string"
},
"message": {
"type": "string"
},
"inputs": {
"type": "object",
"maxProperties": 25,
"additionalProperties": {
"type": ["string", "number", "boolean", "null"]
}
},
"conclusion": {
"type": "string"
},
Expand Down
2 changes: 1 addition & 1 deletion schemas/issues/assignment.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/assignment",
"$id": "https://enbox.id/schemas/forge/assignment",
"title": "AssignmentData",
"description": "An assignment of a user to an issue",
"type": "object",
Expand Down
9 changes: 8 additions & 1 deletion schemas/issues/comment.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/comment",
"$id": "https://enbox.id/schemas/forge/comment",
"title": "CommentData",
"description": "A comment on an issue",
"type": "object",
"properties": {
"body": {
"type": "string"
},
"pinnedAt": {
"type": "string",
"format": "date-time"
},
"pinnedBy": {
"type": "string"
}
},
"required": ["body"],
Expand Down
15 changes: 15 additions & 0 deletions schemas/issues/issue-dependency.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/issue-dependency",
"title": "IssueDependencyData",
"description": "A dependency edge from an issue to a blocking issue",
"type": "object",
"properties": {
"issueId": {
"type": "integer",
"minimum": 1
}
},
"required": ["issueId"],
"additionalProperties": false
}
29 changes: 29 additions & 0 deletions schemas/issues/issue-field-value.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/issue-field-value",
"title": "IssueFieldValueData",
"description": "A custom field value attached to an issue",
"type": "object",
"properties": {
"fieldId": {
"type": "integer",
"minimum": 1
},
"dataType": {
"type": "string",
"enum": ["text", "single_select", "number", "date", "multi_select"]
},
"value": {
"oneOf": [
{ "type": "string" },
{ "type": "number" },
{
"type": "array",
"items": { "type": "string" }
}
]
}
},
"required": ["fieldId", "dataType", "value"],
"additionalProperties": false
}
19 changes: 19 additions & 0 deletions schemas/issues/issue-sub-issue.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/issue-sub-issue",
"title": "IssueSubIssueData",
"description": "An ordered sub-issue edge from a parent issue to a child issue",
"type": "object",
"properties": {
"issueId": {
"type": "integer",
"minimum": 1
},
"priority": {
"type": "integer",
"minimum": 1
}
},
"required": ["issueId", "priority"],
"additionalProperties": false
}
2 changes: 1 addition & 1 deletion schemas/issues/issue.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/issue",
"$id": "https://enbox.id/schemas/forge/issue",
"title": "IssueData",
"description": "An issue in a forge repository",
"type": "object",
Expand Down
2 changes: 1 addition & 1 deletion schemas/issues/label.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/label",
"$id": "https://enbox.id/schemas/forge/label",
"title": "LabelData",
"description": "A label applied to an issue",
"type": "object",
Expand Down
2 changes: 1 addition & 1 deletion schemas/issues/reaction.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/reaction",
"$id": "https://enbox.id/schemas/forge/reaction",
"title": "ReactionData",
"description": "An emoji reaction on an issue or comment",
"type": "object",
Expand Down
2 changes: 1 addition & 1 deletion schemas/issues/status-change.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/status-change",
"$id": "https://enbox.id/schemas/forge/status-change",
"title": "StatusChangeData",
"description": "A status change on an issue",
"type": "object",
Expand Down
2 changes: 1 addition & 1 deletion schemas/notifications/notification.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.org/schemas/forge/notification",
"$id": "https://enbox.id/schemas/forge/notification",
"title": "NotificationData",
"description": "A notification delivered to a user",
"type": "object",
Expand Down
20 changes: 20 additions & 0 deletions schemas/org/org-blocked-user.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/org-blocked-user",
"title": "OrgBlockedUserData",
"description": "A user blocked from an organization",
"type": "object",
"properties": {
"did": {
"type": "string"
},
"blockedAt": {
"type": "string"
},
"blockedBy": {
"type": "string"
}
},
"required": ["did"],
"additionalProperties": false
}
46 changes: 46 additions & 0 deletions schemas/org/org-custom-property.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/org-custom-property",
"title": "OrgCustomPropertyData",
"description": "An organization-level repository custom property definition",
"type": "object",
"properties": {
"propertyName": {
"type": "string",
"minLength": 1,
"maxLength": 75
},
"valueType": {
"type": "string",
"enum": ["string", "single_select", "multi_select", "true_false", "url"]
},
"required": {
"type": "boolean"
},
"defaultValue": {
"type": ["string", "array", "null"],
"items": {
"type": "string"
}
},
"description": {
"type": ["string", "null"]
},
"allowedValues": {
"type": ["array", "null"],
"maxItems": 200,
"items": {
"type": "string"
}
},
"valuesEditableBy": {
"type": ["string", "null"],
"enum": ["org_actors", "org_and_repo_actors", null]
},
"requireExplicitValues": {
"type": "boolean"
}
},
"required": ["propertyName", "valueType"],
"additionalProperties": false
}
53 changes: 53 additions & 0 deletions schemas/org/org-issue-field.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/org-issue-field",
"title": "OrgIssueFieldData",
"description": "An organization-level custom issue field",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": ["string", "null"]
},
"dataType": {
"type": "string",
"enum": ["text", "single_select", "number", "date", "multi_select"]
},
"visibility": {
"type": "string",
"enum": ["organization_members_only", "all"]
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"description": {
"type": ["string", "null"]
},
"color": {
"type": "string",
"enum": ["gray", "blue", "green", "yellow", "orange", "red", "pink", "purple"]
},
"priority": {
"type": "integer",
"minimum": 1
}
},
"required": ["name", "color", "priority"],
"additionalProperties": false
}
}
},
"required": ["name", "dataType"],
"additionalProperties": false
}
24 changes: 24 additions & 0 deletions schemas/org/org-issue-type.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://enbox.id/schemas/forge/org-issue-type",
"title": "OrgIssueTypeData",
"description": "An organization-level issue type definition",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": ["string", "null"]
},
"color": {
"type": ["string", "null"],
"enum": ["gray", "blue", "green", "yellow", "orange", "red", "pink", "purple", null]
},
"isEnabled": {
"type": "boolean"
}
},
"required": ["name", "isEnabled"],
"additionalProperties": false
}
Loading
Loading