Commit Graph

459 Commits

Author SHA1 Message Date
Sam Atkins
955154468f feat(git): Make git add work for deleted files
Previously, this:

```sh
> rm deleted.txt
> git add deleted.txt
```

...would unhelpfully complain that deleted.txt cannot be found. Now, it
records the deleted file to the index, just as canonical git does.
2024-06-28 14:19:23 -04:00
Sam Atkins
057b3acf00 feat(git): Allow checking out a commit instead of a branch 2024-06-28 14:19:23 -04:00
Sam Atkins
2c9b1a3ffc feat(git): Handle detached HEAD in git status and git branch --list 2024-06-28 14:19:23 -04:00
Sam Atkins
d6dd1a5bb0 feat(git): Add --color and --no-color options
These allow the user to force color on or off. The chalk library is used
for the output, because it's already used elsewhere in Puter and seems
like a good choice.

Ideally, the default will be based on whether stdout is a tty, but Puter
doesn't yet have that concept, so we just default to color.
2024-06-28 14:19:23 -04:00
Sam Atkins
364d580ff8 feat(git): Add authentication to clone, fetch, and pull. 2024-06-28 14:19:23 -04:00
Sam Atkins
8c70229a18 feat(git): Implement git push
For now, the authentication is by --username and --password options,
which obviously is not good because the password is visible. But doing
it in a nicer way requires features that Phoenix or Puter are currently
missing.
2024-06-28 14:19:23 -04:00
Sam Atkins
3cad1ec436 feat(git): Add diff display to show and log subcommands 2024-06-28 14:19:23 -04:00
Sam Atkins
c436460b8c tweak(git): Move proxy url definition into config files
We'll likely want to host our own proxy. Self-hosters likewise may have
their own, but it's convenient to use isomorphic-git's for development.
2024-06-28 14:19:23 -04:00
Sam Atkins
a68194090e tweak(git): Check for 'ENOENT' instead of ErrorCodes.ENOENT
This is functionally the same, but removes one place where we
unnecessarily relied on Puter code.
2024-06-28 14:19:23 -04:00
Sam Atkins
c0562d78a2 docs(git): Document git client 2024-06-28 14:19:23 -04:00
Sam Atkins
622b6a9b92 feat(git): Implement git diff 2024-06-28 14:19:23 -04:00
Sam Atkins
49c2f16351 feat(git): Add start-revision and file arguments to git log 2024-06-28 14:19:23 -04:00
Sam Atkins
eb2b6a08b0 feat(git): Implement git pull 2024-06-28 14:19:23 -04:00
Sam Atkins
1822ace296 refactor(git): Use dir/gitdir variable names like isogit does
I prefer the other names, but being able to type `{ dir, gitdir }` is
shorter and a lot less error-prone than `{ dir: repository_dir, gitdir:
git_dir }`.
2024-06-28 14:19:23 -04:00
Sam Atkins
35e4453930 feat(git): Implement git checkout
For now this only lets you check out branches, not files.
2024-06-28 14:19:23 -04:00
Sam Atkins
98a4b9ede3 feat(git): Implement git fetch
Sporadically we hang while trying to fetch. I haven't been able to
identify why but it seems like a race condition in isomorphic-git
somewhere.
2024-06-28 14:19:23 -04:00
Sam Atkins
c86e4dfdce Remove unused imports from git subcommands 2024-06-28 14:19:23 -04:00
Sam Atkins
ad4f13255d feat(git): Implement git branch
Create, delete, copy, rename, and list branches.
2024-06-28 14:19:23 -04:00
Sam Atkins
43ce0d5b45 feat(git): Implement git remote 2024-06-28 14:19:23 -04:00
Sam Atkins
95c8235a4a feat(git): Implement git clone 2024-06-28 14:19:23 -04:00
Sam Atkins
fa81dca950 feat(backend): Add tab completion to server console command arguments
A command can optionally define a `completer(args)` function. It takes
an array of strings for the current arguments, and returns an array of
completion results for the last argument.

Includes a few completers:
- alarm:info/clear/inspect completes the first argument as an alarm id
  or short_id
- script:run completes the first argument as a script name
- params:get/set completes the first argument as a parameter name
2024-06-28 11:18:29 -04:00
Sam Atkins
e1e76c6be7 feat(backend): Add tab-completion to server console command names 2024-06-28 11:18:29 -04:00
KernelDeimos
ecb997885c fix: bug introduced when refactoring /share to Sequence 2024-06-27 18:27:20 -04:00
KernelDeimos
c374b0cbca feat: add group permission endpoints 2024-06-27 18:27:20 -04:00
KernelDeimos
4216346384 feat: add group management endpoints 2024-06-27 18:27:20 -04:00
KernelDeimos
00149402e0 feat: add user-group permission check 2024-06-27 18:27:20 -04:00
KernelDeimos
b817a78efa sql: group permissions table 2024-06-27 18:27:20 -04:00
KernelDeimos
0ddb13e8ee sql: group table 2024-06-27 18:27:20 -04:00
KernelDeimos
e132a203d1 refactor: move check-user-permission to Sequence 2024-06-27 18:27:20 -04:00
KernelDeimos
b78c83a4ab refactor: share endpoint 2024-06-25 16:59:50 -04:00
KernelDeimos
5551326c98 doc: add documentation for app shares 2024-06-24 20:13:40 -04:00
KernelDeimos
9033f6f8c7 fix: update email share object 2024-06-24 19:12:21 -04:00
KernelDeimos
9751fd92a5 feat: add appdata permission (if applicable) on app share 2024-06-24 19:12:21 -04:00
KernelDeimos
13e2f72c9f feat: add subdomain permission (if applicable) on app share 2024-06-24 19:12:21 -04:00
KernelDeimos
0cf90ee39a fix: fix issues with apps in /share endpoint 2024-06-24 19:12:21 -04:00
Sam Atkins
46eb4ed2b9 fix: Throw an error when readdir is called on a non-directory 2024-06-24 19:08:56 -04:00
KernelDeimos
a136ee5edd fix: oops 2024-06-24 14:05:08 -04:00
KernelDeimos
15465bfc50 fix: improve console experience on mac 2024-06-24 14:01:00 -04:00
KernelDeimos
c79f500364 tweak: improve dev console 2024-06-24 13:53:00 -04:00
KernelDeimos
742f625309 feat: add /sharelink/request endpoint 2024-06-24 01:11:40 -04:00
KernelDeimos
a72ec9799a fix: readdir on file 2024-06-22 19:10:25 -04:00
KernelDeimos
301ffaf61d feat: add endpoints for share tokens 2024-06-20 22:15:57 -04:00
KernelDeimos
db5990a989 feat: add share service and share-by-email to /share 2024-06-20 22:15:57 -04:00
KernelDeimos
fc4ae19d99 chore: cleanup share.js 2024-06-20 22:15:57 -04:00
KernelDeimos
dd5fde5130 feat: update share endpoint to support more things 2024-06-20 12:58:04 -04:00
Nariman Jelveh
1500f84d46 close #483 2024-06-19 22:30:42 -07:00
KernelDeimos
82f86ee4ab doc(backend): protected apps; function and permissions 2024-06-20 00:43:52 -04:00
KernelDeimos
16c4907be5 feat: add permission rewriter for app by name 2024-06-20 00:32:12 -04:00
KernelDeimos
3ae0081b41 tweak: update this too to avoid confusion 2024-06-20 00:01:22 -04:00
KernelDeimos
f2f3d6ff46 feat: add protected apps 2024-06-19 23:44:42 -04:00