Commit Graph

7986 Commits

Author SHA1 Message Date
Kiril Videlov
babfa974ce
remove unnecessary lifetime annotations 2024-07-04 13:31:08 +02:00
Kiril Videlov
3dded08458
simplify virtual branches controller deps graph
users controller is not a real dependency
2024-07-04 13:28:17 +02:00
Mattias Granlund
2bc8ff1d03 Decrease metrics polling frequency
- it's unclear what the ideal window length is
- small window likely means tracking each change
- small window currently not beneficial in answering product questions 
- will re-evaluate based on findings
2024-07-04 14:10:01 +03:00
Kiril Videlov
6add0a40cc
remove unnecessary user dependency 2024-07-04 13:09:04 +02:00
Mattias Granlund
a85cc20582 Preserve line breaks in commit descriptions 2024-07-04 14:06:25 +03:00
Kiril Videlov
27f5bc40e1
Merge pull request #4238 from gitbutlerapp/rm-inner
refactor: virtual branch controller - rm inner pattern
2024-07-04 12:34:15 +02:00
Kiril Videlov
5e18071a30
refactor: virtual branch controller - rm inner pattern 2024-07-04 12:21:22 +02:00
Mattias Granlund
d150f61ed7 Capture branch metrics individually
- otherwise duplication of captured values grows as more metrics are added
- placed MetricsReporter in root +layout.svelte to accommodate future metrics
2024-07-04 03:51:14 +03:00
Mattias Granlund
c8e7368df5 Start capturing branch metrics
- service keeps count
- component polls every 15 minutes
- capture only when metrics have changed
- capture once a day if no changes
2024-07-04 02:11:03 +03:00
Caleb Owens
d9fcdc032f
Merge pull request #4236 from gitbutlerapp/Better-filter-branches-to-unapply-in-case-of-conflicts
Better filter branches to unapply in case of conflicts
2024-07-03 17:51:43 +02:00
Caleb Owens
5b42e6e9e6 Remove virtual flag from front end 2024-07-03 17:18:11 +02:00
Caleb Owens
2d0dc3a9ff Better filter branches to unapply in case of conflicts 2024-07-03 14:57:18 +02:00
Mattias Granlund
6618c5630c Fix project selector label overflow
- needs nowrap to show ellipsis when name is long
2024-07-03 12:54:20 +03:00
Pavel Laptev
9ff735fd4e
Drag-n-drop update (#4220)
* Reuse `splitFilePath` function

* unnecessary `width` and `height` removed

* added utils for draggable file list items

- added separate CSS

* WIP new styles for the commit draggable

* styles for draggable commit cards updated

* Draggable hunk added

* Draggable lanes updated

* Dropzone design updated

* Dropzones code refactor

* reordering lines design update

* Update logic for determining reorder shift

* Remove unused CSS fix scrollable container prop

* dropzone animations added

* Dropzone hover state UI updated

* CSS update: Card overlay labels

* Fix: horizontal scroll wrong observer trigger

* UX: Automatically close the commit message box after commit
2024-07-02 20:49:17 +02:00
Kiril Videlov
a1c591ffb6
Merge pull request #4230 from gitbutlerapp/upload-rpm-artifacts
upload the rpm packages
2024-07-02 17:42:43 +02:00
Caleb Owens
5bbc2830ea
Merge pull request #4229 from gitbutlerapp/Use-correct-headers-for-unapplying-wip-commits
Use correct headers for unapplying wip commits
2024-07-02 17:41:50 +02:00
Kiril Videlov
2299579ed0
upload the rpm packages 2024-07-02 17:30:12 +02:00
Caleb Owens
49236707be Use correct headers for unapplying wip commits 2024-07-02 17:30:00 +02:00
Caleb Owens
0408f5ec11
Merge pull request #4228 from gitbutlerapp/I-hired-an-exorcist
I hired an exorcist
2024-07-02 17:26:56 +02:00
Caleb Owens
f19e3bafcf I hired an exorcist 2024-07-02 17:25:14 +02:00
Kiril Videlov
68ac572dc2
Merge pull request #4226 from gitbutlerapp/ndom91/cleanup-nightly-build-gha
fix: cleanup GHA setup for nightly builds
2024-07-02 17:20:55 +02:00
Nico Domino
1b3c78dad2
Merge branch 'master' into ndom91/cleanup-nightly-build-gha 2024-07-02 17:07:27 +02:00
Pavel Laptev
400381b8b4
refactor: Use normalizeBranchName in ActiveBranchStatus component for virtual branch names (#4225) 2024-07-02 17:06:53 +02:00
ndom91
699542933b
fix: cleanup nightly build jobs 2024-07-02 17:02:09 +02:00
Kiril Videlov
be6eaa3156
Merge pull request #4121 from Lukylix/askpass-pipe-windows-fix
Fix askpass pipe on windows
2024-07-02 16:40:03 +02:00
Kiril Videlov
8e3601e855 Merge: resolve lockfile conflicts 2024-07-02 16:21:54 +02:00
Kiril Videlov
88da873128
Merge pull request #4184 from gitbutlerapp/bundle-as-RPM
make RPM bundles
2024-07-02 15:54:42 +02:00
Caleb Owens
6d2b41e481
Merge pull request #4192 from gitbutlerapp/ndom91/create-gitbutler-ui-package
feat: create separate component library subpackage
2024-07-02 15:47:13 +02:00
Caleb Owens
ac4f3b926c
Merge remote-tracking branch 'origin/master' into ndom91/create-gitbutler-ui-package 2024-07-02 15:31:00 +02:00
Kiril Videlov
ab941cb31f
Merge pull request #4219 from gitbutlerapp/bump-tauri-minor-version
bump tauri minor version
2024-07-02 15:28:39 +02:00
Caleb Owens
ee8f871005
Correctly add package as a dependency for linting 2024-07-02 15:18:37 +02:00
Kiril Videlov
1ac47405fc
fix clippy warning about missing crossbeam feature 2024-07-02 15:14:40 +02:00
Kiril Videlov
6e8e6b7b9b
remote unneccesary borrow 2024-07-02 15:11:28 +02:00
Kiril Videlov
23503afd25
merge stuff 2024-07-02 15:05:56 +02:00
Caleb Owens
5e463f7011
Fix linting setup; eslint and prettier are global to all the packages 2024-07-02 15:00:59 +02:00
Caleb Owens
27855bf871
Don't allow importing between packages 2024-07-02 15:00:47 +02:00
Caleb Owens
6bb57466e8
Update to non-relative imports 2024-07-02 14:47:27 +02:00
Sebastian Thiel
7e6e854d5e
Merge pull request #4165 from Byron/secrets-in-keyring
migrate plain-text secrets to keystore
2024-07-02 13:33:06 +02:00
Sebastian Thiel
b8da62c68b
assure SecretServices functions
- inject secretService so it works when used directly
- remove console logs
- only remove a migrated secret (instead of removing it unconditionally)
- in +template, await for good measure, which explains why the parent function is async

In the backend:
- prevent concurrency in method that stores secrets from the frontend
  as it's racy otherwise to type a secret quickly.
2024-07-02 13:17:45 +02:00
Mattias Granlund
7f618fd248
Extract separate service for secrets
- add `buildContext` for getting/setting contexts by types
- config -> secret migration attempted if secret not found
2024-07-02 13:17:44 +02:00
Caleb Owens
6f0e3dca39
Updated broken imports 2024-07-02 13:16:26 +02:00
Caleb Owens
44e56ac370
Use turbo for production builds 2024-07-02 13:15:26 +02:00
ndom91
e8f5808589
fix: add turbo 'lint' task 2024-07-02 10:23:54 +02:00
Kiril Videlov
25aceb2520
rm unnecessary borrows 2024-07-02 11:22:08 +03:00
Kiril Videlov
a240a16cc5
silence clippy for now 2024-07-02 11:18:41 +03:00
Nico Domino
4fab3ec200
Merge branch 'master' into ndom91/create-gitbutler-ui-package 2024-07-02 10:04:46 +02:00
Sebastian Thiel
05506f49fa
migrate AI tokens from the git-configuration to the keystore.
All AI related options are stored in the user-level git configuration
file. Upon first access, they will be removed from there and placed
into the keystore as part of the migration.

The UI is provided with functions to store and save secrets which it
will use specifically to interact with these keys.

It's explicitly out of scope to *not* show the keys in plain-text
anymore after entering them.
2024-07-02 10:02:46 +02:00
Sebastian Thiel
de00e4f049
support global secrets (without namespace for build types) and provide commands in tauri crate
That way globals secrets can be used from the UI directly.
2024-07-02 10:02:46 +02:00
Sebastian Thiel
b08a9e8cb1
Prevent MacOS popups each startup on MacOS
MacOS is the only known platform that exhibits this behaviour - if an app
is recompiled, the hash of the binary is used to identify it towards the keychain.
As this changes each time, the keychain will ask for permission, which is fair.

However, it's also an impediment which leads to the implementation of
a keystore that uses git credentials as backend. For this to work,
the latest version of `gitoxide` is required for now.
2024-07-02 10:02:46 +02:00
Sebastian Thiel
7e7555567b
automatically delete empty passwords from the key store
The frontend uses this to invalidate the GitHub token, even though
it can also deal with `null`. Let's keep the keystore clean and
only keep entries that contain an actual password.

Note that the consumers, i.e. the frontend, handle an empty password
for the short time it's in memory.
2024-07-02 10:02:46 +02:00