dorky 2.4.1 → 3.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.
@@ -0,0 +1,46 @@
1
+ name: "🧩 Publish VSCode Extension To Marketplace"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - "extension/dorky-extension/**"
9
+
10
+ jobs:
11
+ publish:
12
+ name: 🧩 publish extension
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Setup Node
19
+ uses: actions/setup-node@v4
20
+ with:
21
+ node-version: "24.x"
22
+
23
+ - name: Install dependencies
24
+ run: npm install
25
+ working-directory: extension/dorky-extension
26
+
27
+ - name: Lint
28
+ run: npm run lint
29
+ working-directory: extension/dorky-extension
30
+
31
+ - name: Get extension version
32
+ id: pkg
33
+ run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
34
+ working-directory: extension/dorky-extension
35
+
36
+ - name: Package extension
37
+ run: npx @vscode/vsce package
38
+ working-directory: extension/dorky-extension
39
+
40
+ - name: Publish to VS Code Marketplace
41
+ uses: HaaLeo/publish-vscode-extension@v1
42
+ with:
43
+ pat: ${{ secrets.VSCE_PAT }}
44
+ registryUrl: https://marketplace.visualstudio.com
45
+ extensionFile: extension/dorky-extension/dorky-extension-${{ steps.pkg.outputs.version }}.vsix
46
+
package/README.md CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  [`DevOps Records Keeper`](https://dorky.trishantpahwa.me/)
12
12
 
13
+ ![Logo](/logo.svg)
14
+
13
15
  [![dorky npm](https://img.shields.io/npm/v/dorky.svg?logo=npm)](https://npmjs.com/package/dorky)
14
16
  [![Code coverage](https://img.shields.io/badge/coverage-87.93%25-blue)](https://npmjs.com/package/dorky)
15
17
  [![Downloads](https://img.shields.io/npm/dt/dorky.svg?logo=npm)](https://npmjs.com/package/dorky)
@@ -403,7 +405,7 @@ ISC License - see [LICENSE](LICENSE) file for details.
403
405
  - [x] rm + push should delete file from remote storage (minor release)
404
406
  - [x] Uninitialize dorky setup (Bug fix release)
405
407
  - [ ] dorky --list remote --update should sync metadata according to remote (Minor release)
406
- - [ ] Extension for VS Code to list and highlight them like git (Major release)
408
+ - [x] Extension for VS Code to list and highlight them like git (Major release)
407
409
  - [ ] MCP server (Minor release)
408
410
  - [ ] Encryption of files (Minor release)
409
411
  - [ ] Add stages for variables (Major release)
@@ -0,0 +1,8 @@
1
+ {
2
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
3
+ // for the documentation about the extensions.json format
4
+ "recommendations": [
5
+ "dbaeumer.vscode-eslint",
6
+ "ms-vscode.extension-test-runner"
7
+ ]
8
+ }
@@ -0,0 +1,17 @@
1
+ // A launch configuration that launches the extension inside a new window
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ {
6
+ "version": "0.2.0",
7
+ "configurations": [
8
+ {
9
+ "name": "Run Extension",
10
+ "type": "extensionHost",
11
+ "request": "launch",
12
+ "args": [
13
+ "--extensionDevelopmentPath=${workspaceFolder}"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,5 @@
1
+ import { defineConfig } from '@vscode/test-cli';
2
+
3
+ export default defineConfig({
4
+ files: 'test/**/*.test.js',
5
+ });
@@ -0,0 +1,10 @@
1
+ .vscode/**
2
+ .vscode-test/**
3
+ test/**
4
+ .gitignore
5
+ .yarnrc
6
+ vsc-extension-quickstart.md
7
+ **/jsconfig.json
8
+ **/*.map
9
+ **/eslint.config.mjs
10
+ **/.vscode-test.*
@@ -0,0 +1,9 @@
1
+ # Change Log
2
+
3
+ All notable changes to the "dorky-extension" extension will be documented in this file.
4
+
5
+ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6
+
7
+ ## [Unreleased]
8
+
9
+ - Initial release
@@ -0,0 +1,106 @@
1
+ # dorky-extension
2
+
3
+ A VS Code extension for [dorky](https://dorky.trishantpahwa.me/) — DevOps Records Keeper. Manage sensitive project files (`.env`, API keys, config files) stored on AWS S3 or Google Drive directly from the VS Code sidebar.
4
+
5
+ ## Features
6
+
7
+ - **Sidebar panel** showing staged and uploaded files at a glance
8
+ - **Initialize** a dorky project with AWS S3 or Google Drive
9
+ - **Stage files** using a file picker dialog
10
+ - **Unstage files** with a single inline click in the tree
11
+ - **Push** staged files to remote storage
12
+ - **Pull** tracked files from remote storage
13
+ - **List remote** files in the output channel
14
+ - **Destroy** the project (removes remote files and local config)
15
+ - Context-aware toolbar — actions only appear when relevant
16
+
17
+ ## Requirements
18
+
19
+ - A dorky-compatible storage backend: **AWS S3** or **Google Drive**
20
+
21
+ ### AWS S3
22
+
23
+ Set up the following environment variables before initializing:
24
+
25
+ ```bash
26
+ export AWS_ACCESS_KEY="your-access-key"
27
+ export AWS_SECRET_KEY="your-secret-key"
28
+ export AWS_REGION="us-east-1"
29
+ export BUCKET_NAME="your-bucket-name"
30
+ ```
31
+
32
+ The extension will prompt you to enter these values during initialization.
33
+
34
+ ### Google Drive
35
+
36
+ Place your OAuth 2.0 credentials file at the workspace root before initializing:
37
+
38
+ ```
39
+ your-project/
40
+ └── google-drive-credentials.json
41
+ ```
42
+
43
+ A browser window will open for OAuth authentication when you initialize.
44
+
45
+ ## Getting Started
46
+
47
+ 1. Open your project folder in VS Code
48
+ 2. Click the **Dorky** icon in the activity bar
49
+ 3. Click **Initialize Project** in the welcome view
50
+ 4. Select a storage backend (`aws` or `google-drive`) and follow the prompts
51
+
52
+ ## Sidebar
53
+
54
+ The Dorky panel appears in the activity bar. Once initialized it shows:
55
+
56
+ ```
57
+ DORKY FILES [+] [↑] [↓] [≡] [↺] [🗑]
58
+ aws storage
59
+ ▼ Staged 2 file(s)
60
+ .env [−]
61
+ config.json [−]
62
+ ▼ Uploaded 1 file(s)
63
+ .env
64
+ ```
65
+
66
+ ### Toolbar Actions
67
+
68
+ | Icon | Command | Description |
69
+ |------|---------|-------------|
70
+ | `+` | Add Files | Open file picker to stage files |
71
+ | `↑` | Push | Upload staged files to remote storage |
72
+ | `↓` | Pull | Download tracked files from remote storage |
73
+ | `≡` | List Remote | Show remote files in the Dorky output channel |
74
+ | `↺` | Refresh | Refresh the sidebar tree |
75
+ | `🗑` | Destroy Project | Delete remote files and local dorky config |
76
+
77
+ ### Inline Actions
78
+
79
+ - Click `−` next to any staged file to instantly unstage it
80
+
81
+ ## Workflow
82
+
83
+ ```
84
+ Initialize → Add Files → Push → (share project) → Pull
85
+ ```
86
+
87
+ 1. **Initialize** — creates `.dorky/` with credentials and metadata, updates `.gitignore`
88
+ 2. **Add** — stage files you want to track (file picker, multi-select)
89
+ 3. **Push** — uploads new/changed files; removes files that were unstaged
90
+ 4. **Pull** — downloads all tracked files on another machine
91
+
92
+ ## Output
93
+
94
+ All operation logs appear in the **Dorky** output channel (`View → Output → Dorky`).
95
+
96
+ ## Security
97
+
98
+ - `.dorky/credentials.json` is automatically added to `.gitignore`
99
+ - Credentials are stored locally in the `.dorky/` folder and never committed
100
+ - Google Drive tokens are refreshed automatically; re-authentication is triggered if the token is invalid
101
+
102
+ ## Release Notes
103
+
104
+ ### 0.0.1
105
+
106
+ Initial release — full sidebar UI with AWS S3 and Google Drive support.
@@ -0,0 +1,25 @@
1
+ import globals from "globals";
2
+
3
+ export default [{
4
+ files: ["**/*.js"],
5
+ languageOptions: {
6
+ globals: {
7
+ ...globals.commonjs,
8
+ ...globals.node,
9
+ ...globals.mocha,
10
+ },
11
+
12
+ ecmaVersion: 2022,
13
+ sourceType: "module",
14
+ },
15
+
16
+ rules: {
17
+ "no-const-assign": "warn",
18
+ "no-this-before-super": "warn",
19
+ "no-undef": "warn",
20
+ "no-unreachable": "warn",
21
+ "no-unused-vars": "warn",
22
+ "constructor-super": "warn",
23
+ "valid-typeof": "warn",
24
+ },
25
+ }];