rafaelmardojai / forge-sparks Goto Github PK
View Code? Open in Web Editor NEWGet git forges notifications
License: MIT License
Get git forges notifications
License: MIT License
I just learned that this application exists and wonder if it will show CI pipeline status changes.
It's unclear if it shows commits from starred directories, changes to issues or other things.
Please document the supported notification types in the README.
When launching ForgeSparks, or when you computer gets connected to the internet, and if there are lot of pending new notifications it fills up your whole screen.
And you will have to close one notification at time or wait till they disappear if there is a disappear timeout.
I suggest if there are more than n number of new notifications, then instead of showing them all, provide one notification mentioning that the user has n number of new notifications.
I have attached the screenshot bellow.
Hi, first of thank you for making this!
As of some time last week the app isn't showing new notifications anymore, while they do get in the GitHub notifications page. I've tried regenerating the access token and removing the account to re-add it.
This is on Fedora 38, running it from the terminal with flatpak run --allow=devel com.mardojai.ForgeSparks
does log:
Gjs-Message: 15:18:25.883: JS LOG: Forge Sparks: com.mardojai.ForgeSparks
Gjs-Message: 15:18:25.883: JS LOG: Version: 0.1.1
Gjs-Message: 15:18:26.537: JS LOG: https://api.github.com/notifications response resulted in 200
Gjs-Message: 15:18:26.909: JS LOG: Error: Invalid value 'undefined' for property url in object initializer.
Would be nice if this could should Jira notifications etc as well. However I don't know if Jira and/or Jira Cloud have a suitable API.
I would like to see a notification if https://www.githubstatus.com/ is reporting any issues. Same for other things like GitLab when configured.
I was editing my access tokens just now, and wanted to select all the text in the Adw.PasswordEntryRow, but using the Ctrl+A
keyboard shortcut just opened a new Accounts window.
Currently the only write action is "Mark all read". I was hoping that this application would allow me to finally quit GitHub's Notification UI. For that I would need at least a "mark as read" button on each notification.
Thanks for the cool app!
If I run via CLI I don't really see any logs related to it:
flatpaflatpak run com.mardojai.ForgeSparks
Gjs-Message: 09:48:30.329: JS LOG: Forge Sparks: com.mardojai.ForgeSparks
Gjs-Message: 09:48:30.329: JS LOG: Version: 0.2.0
Gjs-Message: 09:48:30.923: JS LOG: https://api.github.com/notifications response resulted in 200
I'm on GNOME 44.5.
I would love it for the developer experience if the project would use TypeScript, also I could test our TypeScript types in a real scenario. Hence the question, would this project accept a pull request that ports your project to TypeScript?
When you click on a notification on github.com/notifications you get this bar at the top of the target page
These quick actions are very handy and I'd love to get this bar when opening a notification through forge sparks.
Clicking on a notification on github adds this url param: ?notification_referrer_id=NT_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
. The process to get a valid id is probably not that hard to reverse engineer.
There appears to be a memory leak somewhere in the app; I'm on version 0.3.0 from Flatpak and the other day I had to force-kill the program because it was using 16 GiB of memory. Now, after leaving it on all day, it's gotten up to 2 GiB already.
Note: I'm calling this a memory leak because things are being retained in memory when they should be deleted. I know that JavaScript garbage-collects unreferenced objects, but this can easily be accidentally circumvented by storing extra copies of things in a list or map when they're no longer needed.
Willing to help profile this if it's hard to nail down, or if I'm the only one experiencing this, but I figured I'd mention it in case I'm not the only person who's noticed it.
When I try to add an GitHub or Codeberg account Forge Sparks sort of times out with an unexpected error. As flatpak run com.mardojai.ForgeSparks
directly detaches after launch I can't provide any error messages.
By spamming Ctrl+A
, I can open as many Accounts windows as I want on top of each other. I'd expect that after the dialog has been opened once, the keyboard shortcuts does nothing.
In certain contexts, I still want to receive GitHub notifications but only from specific orgs/projects, or from anything but specific orgs/projects. Very basic filters would be really helpful for that.
Adding a Gitea instance with an access token that just has the notifications
permission results in "Unexpected error when creating the account" being shown in the app. The log shows:
com.mardojai.ForgeSparks-Message: 10:24:46.276: Error: Expected type string for argument 'value' but got type undefined
createCheckedMethod/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:730:46
saveAccount@resource:///com/mardojai/ForgeSparks/model/accountsManager.js:165:33
async*_onAddAccount@resource:///com/mardojai/ForgeSparks/preferences.js:399:28
Async*main@resource://com/mardojai/ForgeSparks/main.js:28:24
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/forge-sparks:28:43
@file:///app/bin/forge-sparks:34:6
The app did actually save the newly added account, though it only seems to show up when quitting and re-opening the app. It then also shows up in the Accounts list with a missing username, which also exposes the root if the issue; when also giving access to the read:user
permission, everything works exactly as expected.
(Thanks so much for building this app! I'm giving it a try to see if I can maybe finally stop getting so many darn emails from Github ๐ )
Sometimes I read notifications but want to keep them to visit them at a later point in time.
It would be helpful to have the read notifications stay visible with a manual "dismiss" action button. This could be something configurable in the settings to keep the current behaviour intact aswell.
Would something like this be in scope for Forge Sparks or is this something against this projects goal? :)
On my system (sway+xdg-desktop-portal-wlr) using the flatpak it's not possible to add an account because it seems to be missing access to the secrets store.
com.mardojai.ForgeSparks-Message: 11:45:48.857: Gio.DBusError: org.freedesktop.DBus.Error.ServiceUnknown
_promisify/proto[asyncFunc]/</<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:454:44
main@resource://com/mardojai/ForgeSparks/main.js:28:24
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/forge-sparks:28:43
@file:///app/bin/forge-sparks:34:6
### Promise created here: ###
saveAccount@resource:///com/mardojai/ForgeSparks/model/accountsManager.js:145:42
_addAccount@resource:///com/mardojai/ForgeSparks/widgets/accountDialog.js:325:32
async*_onSave@resource:///com/mardojai/ForgeSparks/widgets/accountDialog.js:300:18
main@resource://com/mardojai/ForgeSparks/main.js:28:24
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/forge-sparks:28:43
@file:///app/bin/forge-sparks:34:6
However, it works when run with:
flatpak run --talk-name=org.freedesktop.secrets com.mardojai.ForgeSparks
When clicking on a notification from github (for example, from a PR with "reason": "review_requested"
). The link leads to https://github.com/org/repo/pulls
instead of https://github.com/org/repo/pull/123
. I think this used to work in the past.
From my testing, this only seems to affect private repos.
I can share raw API data for notifications in private if that would help.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.