You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
4
4
5
5
## Project Overview
6
6
7
-
This is a Go-based CLI tool for interacting with JuliaHub, a platform for Julia computing. The CLI provides commands for authentication, dataset management, project management, user information, Git integration, and Julia integration.
7
+
This is a Go-based CLI tool for interacting with JuliaHub, a platform for Julia computing. The CLI provides commands for authentication, dataset management, registry management, project management, user information, Git integration, and Julia integration.
8
8
9
9
## Architecture
10
10
@@ -13,6 +13,7 @@ The application follows a command-line interface pattern using the Cobra library
13
13
-**main.go**: Core CLI structure with command definitions and configuration management
14
14
-**auth.go**: OAuth2 device flow authentication with JWT token handling
15
15
-**datasets.go**: Dataset operations (list, download, upload, status) with REST API integration
16
+
-**registries.go**: Registry operations (list) with REST API integration
16
17
-**projects.go**: Project management using GraphQL API with user filtering
17
18
-**user.go**: User information retrieval using GraphQL API
18
19
-**git.go**: Git integration (clone, push, fetch, pull) with JuliaHub authentication
@@ -29,14 +30,15 @@ The application follows a command-line interface pattern using the Cobra library
29
30
- Stores tokens securely in `~/.juliahub` with 0600 permissions
30
31
31
32
2.**API Integration**:
32
-
-**REST API**: Used for dataset operations (`/api/v1/datasets`, `/datasets/{uuid}/url/{version}`)
33
+
-**REST API**: Used for dataset operations (`/api/v1/datasets`, `/datasets/{uuid}/url/{version}`) and registry operations (`/api/v1/ui/registries/descriptions`)
33
34
-**GraphQL API**: Used for projects and user info (`/v1/graphql`)
34
35
-**Headers**: All GraphQL requests require `X-Hasura-Role: jhuser` header
35
36
-**Authentication**: Uses ID tokens (`token.IDToken`) for API calls
-`jh project`: Project management (list with GraphQL, supports user filtering)
41
43
-`jh user`: User information (info with GraphQL)
42
44
-`jh clone`: Git clone with JuliaHub authentication and project name resolution
@@ -84,6 +86,12 @@ go run . dataset download <dataset-name>
84
86
go run . dataset upload --new ./file.tar.gz
85
87
```
86
88
89
+
### Test registry operations
90
+
```bash
91
+
go run . registry list
92
+
go run . registry list --verbose
93
+
```
94
+
87
95
### Test project and user operations
88
96
```bash
89
97
go run . project list
@@ -278,6 +286,7 @@ jh run setup
278
286
- Clone command supports `project` (without username) and defaults to the logged-in user's username
279
287
- Folder naming conflicts are resolved with automatic numbering (project-1, project-2, etc.)
280
288
- Credential helper follows Git protocol: responds only to JuliaHub URLs, ignores others
289
+
- Registry list output is concise by default (UUID and Name only); use `--verbose` flag for detailed information (owner, creation date, package count, description)
0 commit comments