fizzy-cli 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/.golangci.yml +56 -0
  2. package/IMPLEMENTATION_PLAN.md +58 -0
  3. package/docs/API.md +89 -0
  4. package/package.json +2 -1
  5. package/.env +0 -1
  6. package/.github/workflows/release.yml +0 -29
  7. package/.github/workflows/tests.yml +0 -24
  8. package/AGENTS.md +0 -33
  9. package/CHANGELOG.md +0 -194
  10. package/Makefile +0 -43
  11. package/bin/fizzy +0 -0
  12. package/cmd/account.go +0 -14
  13. package/cmd/account_list.go +0 -44
  14. package/cmd/account_list_test.go +0 -118
  15. package/cmd/board.go +0 -49
  16. package/cmd/board_create.go +0 -59
  17. package/cmd/board_create_test.go +0 -141
  18. package/cmd/board_delete.go +0 -40
  19. package/cmd/board_delete_test.go +0 -121
  20. package/cmd/board_list.go +0 -44
  21. package/cmd/board_list_test.go +0 -115
  22. package/cmd/board_show.go +0 -40
  23. package/cmd/board_show_test.go +0 -113
  24. package/cmd/board_test.go +0 -92
  25. package/cmd/board_update.go +0 -72
  26. package/cmd/board_update_test.go +0 -233
  27. package/cmd/card.go +0 -24
  28. package/cmd/card_assign.go +0 -55
  29. package/cmd/card_assign_test.go +0 -130
  30. package/cmd/card_close.go +0 -46
  31. package/cmd/card_close_test.go +0 -92
  32. package/cmd/card_create.go +0 -72
  33. package/cmd/card_create_test.go +0 -186
  34. package/cmd/card_delete.go +0 -46
  35. package/cmd/card_delete_test.go +0 -92
  36. package/cmd/card_golden.go +0 -46
  37. package/cmd/card_golden_test.go +0 -92
  38. package/cmd/card_list.go +0 -114
  39. package/cmd/card_list_test.go +0 -373
  40. package/cmd/card_not_now.go +0 -46
  41. package/cmd/card_not_now_test.go +0 -92
  42. package/cmd/card_reaction.go +0 -13
  43. package/cmd/card_reaction_create.go +0 -46
  44. package/cmd/card_reaction_create_test.go +0 -148
  45. package/cmd/card_reaction_delete.go +0 -46
  46. package/cmd/card_reaction_delete_test.go +0 -112
  47. package/cmd/card_reaction_list.go +0 -51
  48. package/cmd/card_reaction_list_test.go +0 -127
  49. package/cmd/card_reopen.go +0 -46
  50. package/cmd/card_reopen_test.go +0 -92
  51. package/cmd/card_show.go +0 -46
  52. package/cmd/card_show_test.go +0 -92
  53. package/cmd/card_tag.go +0 -51
  54. package/cmd/card_tag_test.go +0 -112
  55. package/cmd/card_triage.go +0 -46
  56. package/cmd/card_ungolden.go +0 -46
  57. package/cmd/card_ungolden_test.go +0 -92
  58. package/cmd/card_untriage.go +0 -46
  59. package/cmd/card_untriage_test.go +0 -92
  60. package/cmd/card_unwatch.go +0 -46
  61. package/cmd/card_unwatch_test.go +0 -92
  62. package/cmd/card_update.go +0 -82
  63. package/cmd/card_update_test.go +0 -149
  64. package/cmd/card_watch.go +0 -46
  65. package/cmd/card_watch_test.go +0 -92
  66. package/cmd/column.go +0 -14
  67. package/cmd/column_create.go +0 -79
  68. package/cmd/column_create_test.go +0 -178
  69. package/cmd/column_delete.go +0 -40
  70. package/cmd/column_delete_test.go +0 -121
  71. package/cmd/column_list.go +0 -44
  72. package/cmd/column_list_test.go +0 -138
  73. package/cmd/column_show.go +0 -40
  74. package/cmd/column_show_test.go +0 -111
  75. package/cmd/column_update.go +0 -67
  76. package/cmd/column_update_test.go +0 -198
  77. package/cmd/comment.go +0 -14
  78. package/cmd/comment_create.go +0 -51
  79. package/cmd/comment_create_test.go +0 -129
  80. package/cmd/comment_delete.go +0 -46
  81. package/cmd/comment_delete_test.go +0 -92
  82. package/cmd/comment_list.go +0 -51
  83. package/cmd/comment_list_test.go +0 -132
  84. package/cmd/comment_show.go +0 -46
  85. package/cmd/comment_show_test.go +0 -104
  86. package/cmd/comment_update.go +0 -51
  87. package/cmd/comment_update_test.go +0 -130
  88. package/cmd/login.go +0 -81
  89. package/cmd/login_test.go +0 -98
  90. package/cmd/notification.go +0 -14
  91. package/cmd/notification_list.go +0 -69
  92. package/cmd/notification_list_test.go +0 -288
  93. package/cmd/notification_read.go +0 -51
  94. package/cmd/notification_read_all.go +0 -38
  95. package/cmd/notification_read_all_test.go +0 -75
  96. package/cmd/notification_read_test.go +0 -138
  97. package/cmd/notification_unread.go +0 -44
  98. package/cmd/notification_unread_test.go +0 -99
  99. package/cmd/reaction.go +0 -13
  100. package/cmd/reaction_create.go +0 -46
  101. package/cmd/reaction_create_test.go +0 -113
  102. package/cmd/reaction_delete.go +0 -46
  103. package/cmd/reaction_delete_test.go +0 -92
  104. package/cmd/reaction_list.go +0 -51
  105. package/cmd/reaction_list_test.go +0 -125
  106. package/cmd/root.go +0 -38
  107. package/cmd/step.go +0 -14
  108. package/cmd/step_create.go +0 -53
  109. package/cmd/step_create_test.go +0 -171
  110. package/cmd/step_delete.go +0 -46
  111. package/cmd/step_delete_test.go +0 -92
  112. package/cmd/step_update.go +0 -66
  113. package/cmd/step_update_test.go +0 -190
  114. package/cmd/tag.go +0 -15
  115. package/cmd/tag_list.go +0 -47
  116. package/cmd/tag_list_test.go +0 -109
  117. package/cmd/use.go +0 -85
  118. package/cmd/use_test.go +0 -186
  119. package/cmd/user.go +0 -22
  120. package/cmd/user_deactivate.go +0 -40
  121. package/cmd/user_deactivate_test.go +0 -121
  122. package/cmd/user_list.go +0 -44
  123. package/cmd/user_list_test.go +0 -126
  124. package/cmd/user_show.go +0 -40
  125. package/cmd/user_show_test.go +0 -110
  126. package/cmd/user_update.go +0 -71
  127. package/cmd/user_update_test.go +0 -177
  128. package/go.mod +0 -31
  129. package/go.sum +0 -53
  130. package/internal/api/boards.go +0 -93
  131. package/internal/api/cards.go +0 -322
  132. package/internal/api/client.go +0 -99
  133. package/internal/api/columns.go +0 -113
  134. package/internal/api/comments.go +0 -108
  135. package/internal/api/identity.go +0 -24
  136. package/internal/api/notifications.go +0 -89
  137. package/internal/api/reactions.go +0 -130
  138. package/internal/api/steps.go +0 -101
  139. package/internal/api/tags.go +0 -24
  140. package/internal/api/types.go +0 -195
  141. package/internal/api/users.go +0 -75
  142. package/internal/app/app.go +0 -49
  143. package/internal/colors/colors.go +0 -32
  144. package/internal/config/config.go +0 -70
  145. package/internal/testutil/client.go +0 -26
  146. package/internal/ui/account_list.go +0 -14
  147. package/internal/ui/account_selector.go +0 -63
  148. package/internal/ui/board_list.go +0 -14
  149. package/internal/ui/board_show.go +0 -17
  150. package/internal/ui/card_list.go +0 -14
  151. package/internal/ui/card_show.go +0 -23
  152. package/internal/ui/column_list.go +0 -28
  153. package/internal/ui/column_show.go +0 -16
  154. package/internal/ui/comment_list.go +0 -25
  155. package/internal/ui/format.go +0 -27
  156. package/internal/ui/notification_list.go +0 -27
  157. package/internal/ui/reaction_list.go +0 -14
  158. package/internal/ui/user_list.go +0 -19
  159. package/internal/ui/user_show.go +0 -23
package/.golangci.yml ADDED
@@ -0,0 +1,56 @@
1
+ version: "2"
2
+ linters:
3
+ enable:
4
+ - errorlint
5
+ - gocritic
6
+ - gosec
7
+ - misspell
8
+ - nilerr
9
+ settings:
10
+ errcheck:
11
+ check-type-assertions: false
12
+ exclude-functions:
13
+ - fmt.Fprintf
14
+ - fmt.Printf
15
+ - fmt.Print
16
+ - fmt.Fprintln
17
+ - fmt.Println
18
+ - (io.Writer).Write
19
+ - (*github.com/spf13/cobra.Command).MarkFlagRequired
20
+ - (*github.com/spf13/cobra.Command).ParseFlags
21
+ - (*encoding/json.Encoder).Encode
22
+ - encoding/json.Unmarshal
23
+ gocritic:
24
+ disabled-checks:
25
+ - singleCaseSwitch
26
+ - rangeValCopy
27
+ - commentedOutCode
28
+ enabled-tags:
29
+ - diagnostic
30
+ - performance
31
+ gosec:
32
+ excludes:
33
+ - G104
34
+ - G301
35
+ - G304
36
+ exclusions:
37
+ generated: lax
38
+ rules:
39
+ - linters:
40
+ - errcheck
41
+ source: defer.*Close\(\)
42
+ paths:
43
+ - .*_test\.go$
44
+ - third_party$
45
+ - builtin$
46
+ - examples$
47
+ issues:
48
+ max-issues-per-linter: 0
49
+ max-same-issues: 0
50
+ formatters:
51
+ exclusions:
52
+ generated: lax
53
+ paths:
54
+ - third_party$
55
+ - builtin$
56
+ - examples$
@@ -0,0 +1,58 @@
1
+ # Fizzy CLI - Remaining Implementation Plan
2
+
3
+ This document tracks features that are **not yet implemented**.
4
+
5
+ ---
6
+
7
+ ## 📋 Missing Features
8
+
9
+ ### Pins Management
10
+
11
+ Card pinning for quick access:
12
+
13
+ - [ ] `fizzy card pin <number>` - `POST /cards/:number/pin`
14
+ - [ ] `fizzy card unpin <number>` - `DELETE /cards/:number/pin`
15
+ - [ ] `fizzy pin list` - `GET /my/pins` - List all pinned cards
16
+
17
+ ### Advanced Features
18
+
19
+ - [ ] **File uploads** - Support for card image uploads
20
+ - [ ] **Rich text support** - HTML validation for description fields
21
+ - [ ] **ETag caching** - `ETag`/`Cache-Control` header support for bandwidth optimization
22
+
23
+ ---
24
+
25
+ ## 📝 API Client Work Required
26
+
27
+ ### Pin Operations
28
+
29
+ ```go
30
+ func (c *Client) PostCardPin(ctx context.Context, cardNumber int) (bool, error)
31
+ func (c *Client) DeleteCardPin(ctx context.Context, cardNumber int) (bool, error)
32
+ func (c *Client) GetMyPins(ctx context.Context) ([]Card, error)
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 📊 Completion Status
38
+
39
+ | Feature | Status |
40
+ |---------|--------|
41
+ | Authentication & Setup | ✅ Complete |
42
+ | Accounts | ✅ Complete |
43
+ | Boards (CRUD) | ✅ Complete |
44
+ | Cards (CRUD + operations) | ✅ Complete |
45
+ | Columns (CRUD) | ✅ Complete |
46
+ | Tags | ✅ Complete |
47
+ | Notifications | ✅ Complete |
48
+ | Steps | ✅ Complete |
49
+ | Comments | ✅ Complete |
50
+ | Reactions (Comment & Card) | ✅ Complete |
51
+ | Users | ✅ Complete |
52
+ | Identity (whoami) | ✅ Complete |
53
+ | Card Filtering & Search | ✅ Complete |
54
+ | Pagination | ✅ Complete |
55
+ | **Pins** | ⏳ Pending |
56
+ | **File Uploads** | ⏳ Pending |
57
+ | **Rich Text** | ⏳ Pending |
58
+ | **ETag Caching** | ⏳ Pending |
package/docs/API.md CHANGED
@@ -118,6 +118,22 @@ __Error responses:__
118
118
  | `401 Unauthorized` | Invalid `pending_authentication_token` or `code` |
119
119
  | `429 Too Many Requests` | Rate limit exceeded |
120
120
 
121
+
122
+ #### Delete server-side session (_log out_)
123
+
124
+ To log out and destroy the server-side session:
125
+
126
+ ```bash
127
+ curl -X DELETE \
128
+ -H "Accept: application/json" \
129
+ -H "Cookie: session_token=eyJfcmFpbHMi..." \
130
+ https://app.fizzy.do/session
131
+ ```
132
+
133
+ __Response:__
134
+
135
+ Returns `204 No Content` on success.
136
+
121
137
  ## Caching
122
138
 
123
139
  Most endpoints return [ETag](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/ETag) and [Cache-Control](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control) headers. You can use these to avoid re-downloading unchanged data.
@@ -805,6 +821,79 @@ __Response:__
805
821
 
806
822
  Returns `204 No Content` on success.
807
823
 
824
+ ## Pins
825
+
826
+ Pins let users keep quick access to important cards.
827
+
828
+ ### `POST /:account_slug/cards/:card_number/pin`
829
+
830
+ Pins a card for the current user.
831
+
832
+ __Response:__
833
+
834
+ Returns `204 No Content` on success.
835
+
836
+ ### `DELETE /:account_slug/cards/:card_number/pin`
837
+
838
+ Unpins a card for the current user.
839
+
840
+ __Response:__
841
+
842
+ Returns `204 No Content` on success.
843
+
844
+ ### `GET /my/pins`
845
+
846
+ Returns the current user's pinned cards. This endpoint is not paginated and returns up to 100 cards.
847
+
848
+ __Response:__
849
+
850
+ ```json
851
+ [
852
+ {
853
+ "id": "03f5vaeq985jlvwv3arl4srq2",
854
+ "number": 1,
855
+ "title": "First!",
856
+ "status": "published",
857
+ "description": "Hello, World!",
858
+ "description_html": "<div class=\"action-text-content\"><p>Hello, World!</p></div>",
859
+ "image_url": null,
860
+ "tags": ["programming"],
861
+ "golden": false,
862
+ "last_active_at": "2025-12-05T19:38:48.553Z",
863
+ "created_at": "2025-12-05T19:38:48.540Z",
864
+ "url": "http://fizzy.localhost:3006/897362094/cards/4",
865
+ "board": {
866
+ "id": "03f5v9zkft4hj9qq0lsn9ohcm",
867
+ "name": "Fizzy",
868
+ "all_access": true,
869
+ "created_at": "2025-12-05T19:36:35.534Z",
870
+ "url": "http://fizzy.localhost:3006/897362094/boards/03f5v9zkft4hj9qq0lsn9ohcm",
871
+ "creator": {
872
+ "id": "03f5v9zjw7pz8717a4no1h8a7",
873
+ "name": "David Heinemeier Hansson",
874
+ "role": "owner",
875
+ "active": true,
876
+ "email_address": "david@example.com",
877
+ "created_at": "2025-12-05T19:36:35.401Z",
878
+ "url": "http://fizzy.localhost:3006/897362094/users/03f5v9zjw7pz8717a4no1h8a7",
879
+ "avatar_url": "http://fizzy.localhost:3006/897362094/users/03f5v9zjw7pz8717a4no1h8a7/avatar"
880
+ }
881
+ },
882
+ "creator": {
883
+ "id": "03f5v9zjw7pz8717a4no1h8a7",
884
+ "name": "David Heinemeier Hansson",
885
+ "role": "owner",
886
+ "active": true,
887
+ "email_address": "david@example.com",
888
+ "created_at": "2025-12-05T19:36:35.401Z",
889
+ "url": "http://fizzy.localhost:3006/897362094/users/03f5v9zjw7pz8717a4no1h8a7",
890
+ "avatar_url": "http://fizzy.localhost:3006/897362094/users/03f5v9zjw7pz8717a4no1h8a7/avatar"
891
+ },
892
+ "comments_url": "http://fizzy.localhost:3006/897362094/cards/4/comments"
893
+ }
894
+ ]
895
+ ```
896
+
808
897
  ## Comments
809
898
 
810
899
  Comments are attached to cards and support rich text.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fizzy-cli",
3
- "version": "0.8.0",
3
+ "version": "1.0.0",
4
4
  "description": "CLI for https://fizzy.do",
5
5
  "main": "bin/fizzy",
6
6
  "type": "module",
@@ -9,6 +9,7 @@
9
9
  },
10
10
  "scripts": {
11
11
  "postinstall": "node scripts/postinstall.js",
12
+ "prepack": "rm -f bin/fizzy bin/fizzy.exe",
12
13
  "build": "make build-all"
13
14
  },
14
15
  "repository": {
package/.env DELETED
@@ -1 +0,0 @@
1
- FIZZY_ACCESS_TOKEN=S7FiVcT1K3WgwXc7uzBdQRim
@@ -1,29 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- release:
5
- types: [created]
6
-
7
- permissions:
8
- contents: write
9
-
10
- jobs:
11
- build:
12
- runs-on: ubuntu-latest
13
-
14
- steps:
15
- - uses: actions/checkout@v4
16
-
17
- - name: Set up Go
18
- uses: actions/setup-go@v4
19
- with:
20
- go-version: "1.25"
21
-
22
- - name: Build binaries
23
- run: make build-all
24
-
25
- - name: Upload Release Assets
26
- env:
27
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28
- run: |
29
- gh release upload ${{ github.event.release.tag_name }} bin/fizzy-* --clobber
@@ -1,24 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@v4
15
-
16
- - uses: actions/setup-go@v4
17
- with:
18
- go-version: "1.25"
19
-
20
- - name: Install gotestsum
21
- run: go install gotest.tools/gotestsum@latest
22
-
23
- - name: Run tests
24
- run: make test
package/AGENTS.md DELETED
@@ -1,33 +0,0 @@
1
- # AGENTS.md
2
-
3
- ## About
4
-
5
- fizzy-cli is a CLI application built in Go that provides an interface to the
6
- [Fizzy](https://fizzy.do) API. Fizzy is a kanban-style project management SaaS.
7
-
8
- ## Dev instructions
9
-
10
- All the commands for development are available through Makefile, just read that
11
- file whenever you need to run something because chances are that you will find
12
- you answer there.
13
-
14
- You can find the Fizzy API specification at @docs/API.md
15
-
16
- ## Testing
17
-
18
- Automated testing is done via `make test`.
19
-
20
- For manual testing/debugging, you should run `make install` first to install the
21
- binary and then run the `fizzy` command normally.
22
-
23
- ## Code quality, standards and style
24
-
25
- This project is being built in Go because it's supposed to have a strong focus
26
- on performance. Always prefer performant code and solutions and low memory
27
- footprint.
28
-
29
- Don't write obvious code comments. Only use code comments when the code itself
30
- requires some clarification to be understood.
31
-
32
- When in doubt, always check similar files or features and reuse the patterns and
33
- style applied.
package/CHANGELOG.md DELETED
@@ -1,194 +0,0 @@
1
- # Changelog
2
-
3
- ## 0.8.0 - 2026-02-11
4
-
5
- ### Features
6
-
7
- #### Card Management
8
-
9
- - `fizzy card list` now supports filtering by board, tags, assignees, creators, and closure status
10
- - Enhanced card listing with additional query parameters for better filtering capabilities
11
-
12
- #### Reaction Management
13
-
14
- - `fizzy reaction list <card_number>` - List all reactions on a card
15
- - `fizzy reaction create <card_number> <emoji>` - Add a reaction to a card
16
- - `fizzy reaction delete <card_number> <reaction_id>` - Remove a reaction from a card
17
-
18
- #### User Management
19
-
20
- - `fizzy user list` - List all users in the account
21
- - `fizzy user show <user_id>` - Display details for a specific user
22
- - `fizzy user update <user_id>` - Update user properties (name, avatar)
23
- - `fizzy user deactivate <user_id>` - Deactivate a user account
24
-
25
- ### Improvements
26
-
27
- - Updated API specification to latest version
28
-
29
- ## 0.7.0 - 2026-01-26
30
-
31
- ### Features
32
-
33
- #### Board Management
34
-
35
- - `fizzy board show <board_id>` - Display details for a specific board
36
- - `fizzy board update <board_id>` - Update board properties (name, access, auto-postpone period)
37
- - `fizzy board delete <board_id>` - Delete a board
38
-
39
- #### Column Management
40
-
41
- - `fizzy column show <column_id>` - Display details for a specific column
42
- - `fizzy column update <column_id>` - Update column properties (name, color)
43
- - `fizzy column delete <column_id>` - Delete a column
44
-
45
- ### Improvements
46
-
47
- - Improved command output testability by using consistent output writers
48
-
49
- ## 0.6.1 - 2026-01-26
50
-
51
- ### Fixes
52
-
53
- - Fixed API client to not parse empty responses from POST endpoints, this was
54
- causing the create sub-command of comment, reaction and step to show an error
55
- message, even though the resource was actually created on the API.
56
-
57
- ## 0.6.0 - 2026-01-25
58
-
59
- ### Features
60
-
61
- #### Reaction Management
62
-
63
- - `fizzy reaction list <card_number> <comment_id>` - List all reactions on a comment
64
- - `fizzy reaction add <card_number> <comment_id> <emoji>` - Add a reaction to a comment
65
- - `fizzy reaction remove <card_number> <comment_id> <reaction_id>` - Remove a reaction from a comment
66
-
67
- #### Step Management
68
-
69
- - `fizzy step create <card_number> --content <text> [--completed]` - Create a new step on a card
70
- - `fizzy step update <card_number> <step_id> [--content <text>] [--completed]` - Update a step
71
- - `fizzy step delete <card_number> <step_id>` - Delete a step from a card
72
-
73
- #### Comment Management
74
-
75
- - `fizzy comment delete <card_number> <comment_id>` - Delete a comment from a card
76
- - `fizzy comment update <card_number> <comment_id> --body <text>` - Update a comment on a card
77
-
78
- ### Improvements
79
-
80
- - Refactored API client logic into separate files for better organization
81
- - Enhanced card update command to use `Flags().Changed()` for better flag handling
82
- - Comprehensive test coverage for all new commands (168 tests total)
83
-
84
- ## 0.5.0 - 2026-01-25
85
-
86
- ### Features
87
-
88
- #### Comment Management
89
-
90
- - `fizzy comment list <card_number>` - List all comments on a card
91
- - `fizzy comment show <card_number> <comment_id>` - Display a specific comment
92
- - `fizzy comment add <card_number> <body>` - Create a new comment on a card
93
-
94
- ### Fixes
95
-
96
- - Fixed error handling in notification read-all command
97
- - Removed global flag usage in some commands
98
-
99
- ## 0.4.0 - 2026-01-19
100
-
101
- ### Features
102
-
103
- #### Card Management
104
-
105
- - `fizzy card not-now <card_number>` - Move a card to "Not Now" status
106
- - `fizzy card untriage <card_number>` - Send a card back to triage
107
- - `fizzy card watch <card_number>` - Subscribe to card notifications
108
- - `fizzy card unwatch <card_number>` - Unsubscribe from card notifications
109
- - `fizzy card golden <card_number>` - Mark a card as golden
110
- - `fizzy card ungolden <card_number>` - Remove golden status from a card
111
-
112
- ## 0.3.0 - 2026-01-11
113
-
114
- ### Features
115
-
116
- #### Notification Management
117
-
118
- - `fizzy notification list` - List all notifications with optional filtering
119
- - `fizzy notification read <notification_id>` - Mark a notification as read and display it
120
- - `fizzy notification unread <notification_id>` - Mark a notification as unread
121
- - `fizzy notification read-all` - Mark all unread notifications as read
122
-
123
- #### Card Management
124
-
125
- - `fizzy card assign <card_number> <user_id>` - Assign or unassign a user to/from a card
126
- - `fizzy card triage <card_number> <column_id>` - Move a card from triage into a column
127
-
128
- ## [0.2.1] - 2025-12-20
129
-
130
- ### Fixes
131
-
132
- - NPM package publishing script
133
-
134
- ## [0.2.0] - 2025-12-20
135
-
136
- ### Features
137
-
138
- #### Card Management
139
-
140
- - `fizzy card update <card_number>` - Update card properties (title, description, status, tags)
141
- - `fizzy card delete <card_number>` - Delete a card permanently
142
- - `fizzy card close <card_number>` - Close an existing card (already existed, now documented)
143
- - `fizzy card reopen <card_number>` - Reopen a closed card (already existed, now documented)
144
-
145
- #### Account Management
146
-
147
- - `fizzy account list` - List all accounts you have access to
148
-
149
- #### Improvements
150
-
151
- - `fizzy board` without arguments now displays the currently selected board
152
- - Added `--version` flag to display CLI version
153
- - Fixed HTTP client leak in API requests
154
- - Updated API specification to latest version
155
-
156
- ## [0.1.0] - 2025-12-16
157
-
158
- ### Initial Release
159
-
160
- The first stable release of Fizzy CLI with core functionality for managing
161
- boards, cards, and columns.
162
-
163
- ### Features
164
-
165
- #### Authentication
166
-
167
- - `fizzy login` - Authenticate with Fizzy API using access tokens
168
-
169
- #### Board Management
170
-
171
- - `fizzy board list` - List all boards
172
- - `fizzy board create` - Create a new board
173
-
174
- #### Card Management
175
-
176
- - `fizzy card list` - List all cards in the selected board
177
- - `fizzy card create` - Create a new card
178
- - `fizzy card show <card_id>` - Display details for a specific card
179
-
180
- #### Column Management
181
-
182
- - `fizzy column list` - List all columns in the selected board
183
- - `fizzy column create` - Create a new column
184
-
185
- #### Configuration
186
-
187
- - `fizzy use --board <name>` - Set the active board for subsequent commands
188
- - `fizzy use --account <slug>` - Set the active account for subsequent commands
189
-
190
- ### Distribution
191
-
192
- - Multi-platform support (macOS, Linux, Windows)
193
- - Multi-architecture binaries (x64, arm64)
194
- - Distributed via NPM with automatic binary download on install
package/Makefile DELETED
@@ -1,43 +0,0 @@
1
- .PHONY: help dev-tools run build build-all clean test install sync-api-spec
2
-
3
- VERSION := $(shell grep '"version"' package.json | sed 's/.*"version": "\([^"]*\)".*/\1/')
4
- LDFLAGS := -ldflags="-X 'github.com/rogeriopvl/fizzy/cmd.Version=$(VERSION)'"
5
-
6
- help:
7
- @echo 'Usage: make [target]'
8
- @echo ''
9
- @echo 'Available targets:'
10
- @grep -E '^[a-zA-Z_-]+:' Makefile | sed 's/:.*//g' | sed 's/^/ /'
11
-
12
- dev-tools:
13
- @echo "Installing development tools..."
14
- go install gotest.tools/gotestsum@latest
15
-
16
- run:
17
- go run .
18
-
19
- install:
20
- go install $(LDFLAGS) .
21
-
22
- build:
23
- go build $(LDFLAGS) -o bin/fizzy .
24
-
25
- build-all: clean
26
- mkdir -p bin
27
- GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o bin/fizzy-darwin-amd64 .
28
- GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o bin/fizzy-darwin-arm64 .
29
- GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o bin/fizzy-linux-amd64 .
30
- GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o bin/fizzy-linux-arm64 .
31
- GOOS=windows GOARCH=amd64 go build $(LDFLAGS) -o bin/fizzy-windows-amd64.exe .
32
- @echo "Binaries built successfully in bin/"
33
-
34
- clean:
35
- rm -rf bin/
36
-
37
- test:
38
- gotestsum -- -v ./...
39
-
40
- sync-api-spec:
41
- @mkdir -p docs
42
- @curl -s https://raw.githubusercontent.com/basecamp/fizzy/main/docs/API.md -o docs/API.md
43
- @echo "API spec synced to docs/API.md"
package/bin/fizzy DELETED
Binary file
package/cmd/account.go DELETED
@@ -1,14 +0,0 @@
1
- // Package cmd
2
- package cmd
3
-
4
- import "github.com/spf13/cobra"
5
-
6
- var accountCmd = &cobra.Command{
7
- Use: "account",
8
- Short: "Manage accounts",
9
- Long: `Manage accounts in Fizzy`,
10
- }
11
-
12
- func init() {
13
- rootCmd.AddCommand(accountCmd)
14
- }
@@ -1,44 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
- "fmt"
6
-
7
- "github.com/rogeriopvl/fizzy/internal/app"
8
- "github.com/rogeriopvl/fizzy/internal/ui"
9
- "github.com/spf13/cobra"
10
- )
11
-
12
- var accountListCmd = &cobra.Command{
13
- Use: "list",
14
- Short: "List all accounts",
15
- Long: `Retrieve and display all accounts from Fizzy`,
16
- Run: func(cmd *cobra.Command, args []string) {
17
- if err := handleListAccounts(cmd); err != nil {
18
- fmt.Fprintf(cmd.OutOrStderr(), "Error: %v\n", err)
19
- }
20
- },
21
- }
22
-
23
- func handleListAccounts(cmd *cobra.Command) error {
24
- a := app.FromContext(cmd.Context())
25
- if a == nil || a.Client == nil {
26
- return fmt.Errorf("API client not available")
27
- }
28
-
29
- identity, err := a.Client.GetMyIdentity(context.Background())
30
- if err != nil {
31
- return fmt.Errorf("fetching accounts: %w", err)
32
- }
33
-
34
- if len(identity.Accounts) == 0 {
35
- fmt.Println("No accounts found")
36
- return nil
37
- }
38
-
39
- return ui.DisplayAccounts(identity.Accounts)
40
- }
41
-
42
- func init() {
43
- accountCmd.AddCommand(accountListCmd)
44
- }