-
-
Couldn't load subscription status.
- Fork 3k
feat(git): add “Share to GitHub” flow #13677
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(git): add “Share to GitHub” flow #13677
Conversation
1683f1c to
8e7f7b8
Compare
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubAction.java
Outdated
Show resolved
Hide resolved
7233c6e to
b2e3767
Compare
7bfc8d1 to
b5cf6d2
Compare
b5cf6d2 to
5e0a7ee
Compare
|
Review "instructions" (if someone wants to try AI)
|
Thanks for pointing this out, I did find a security issue here. If the user chooses not to remember their GitHub credentials, we still store the username and PAT in memory (via credentialsProvider). When the user choose to remember them, we save them in GitPreferences and use the Password class from the shared database module to encrypt and decrypt the PAT based on the username. Do you think this is an appropriate way to handle encrypted credentials in this case? Or would you recommend a better or more standard approach within JabRef? |
This is OK.
This is not good 😅 Option 1:
Option 2: provider-based store
One can store "provider" using "domain". Use case: Users might have
and much much more. For this phase, option 1 is enough and as follow-up we can support multiple Git hosting solutions. |
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubDialogViewModel.java
Outdated
Show resolved
Hide resolved
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubDialogViewModel.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check the javafx threading
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubDialogViewModel.java
Outdated
Show resolved
Hide resolved
jablib/src/main/java/org/jabref/logic/git/prefs/GitPreferences.java
Outdated
Show resolved
Hide resolved
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubAction.java
Outdated
Show resolved
Hide resolved
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubDialogViewModel.java
Outdated
Show resolved
Hide resolved
jabgui/src/main/java/org/jabref/gui/git/GitShareToGitHubDialogViewModel.java
Outdated
Show resolved
Hide resolved
|
@trag-bot didn't find any issues in the code! ✅✨ |
1 similar comment
|
@trag-bot didn't find any issues in the code! ✅✨ |
* upstream/main: New translations jabref_en.properties (Italian) (#13725) Minor code style updates (#13722) Fix: Make FileUtil.relativize symlink-aware (#13553) New Crowdin updates (#13720) Bump org.glassfish.jersey.core:jersey-server in /versions (#13714) Enable UseObjectNotifyAll (#13718) Bump com.dlsc.gemsfx:gemsfx from 3.3.5 to 3.4.2 in /versions (#13717) Update on-issue-comment.yml Bump org.openrewrite.recipe:rewrite-recipe-bom from 3.12.1 to 3.13.0 (#13716) Bump org.openrewrite.rewrite from 7.12.1 to 7.14.0 (#13715) Bump org.glassfish.jersey.inject:jersey-hk2 in /versions (#13713) feat(git): add “Share to GitHub” flow (#13677) Bump jablib/src/main/resources/csl-styles from `292aec3` to `1194364` (#13712) Bump jablib/src/main/abbrv.jabref.org from `cfe719f` to `a97f9c6` (#13711) Bump jablib/src/main/resources/csl-locales from `e2de1e3` to `fa56de1` (#13710) Add noop Git Config System Reader to prevent usage of real world stuff into jgit (#13703) Added static (stream & preferences) constructors to BibDatabaseContext (#13694) New Crowdin updates (#13698) fix git modules requires and uses (#13696) Focus "Specify Bib(La)TeX" when Bib(La)TeX is in clipboard (#13633)


Closes #12350
This PR is part of GSoC 2025 — Git Support for JabRef.
It implements the Share to GitHub flow
Steps to test
Tip
Keep one .bib per folder when testing. Git init will commit everything in the folder except what’s ignored by
.gitignore.Screenshots
Mandatory checks
CHANGELOG.mddescribed in a way that is understandable for the average user (if change is visible to the user)