vfeskov / gitpunch

Watch for releases on GitHub → gitpunch.com
https://gitpunch.com
MIT License
391 stars 8 forks source link

Not receiving emails anymore #175

Closed Archinowsk closed 2 years ago

Archinowsk commented 2 years ago

I haven't received emails for last five days. My last email was received 25.3. Checked junk mail and didn't find them from there either. I'm using Gmail.

image

image

torgeirl commented 2 years ago

Normally don't receive that many so unsure how long it's been for me - but I can point to at least one release (two days ago) that should have generated an email notification to me (yesterday), that didn't.

yotov commented 2 years ago

Same for me. I didn't receive any new emails after 25.03

toha-nordic commented 2 years ago

Experiencing the same issue here, any news regarding this?

whoiswes commented 2 years ago

Same here, no emails for several weeks.

gaia commented 2 years ago

same here

Coobaha commented 2 years ago

As a workaround you can read RSS feeds for releases

Here is quick and dirty script I use to import all my GitHub stars into RSS reader as a cron job, you might need to tweak it for your needs :)

deps:

#!/usr/bin/env zx
import { Octokit } from "octokit";

const octokit = new Octokit({ auth: process.env.GITHUB_NPM_TOKEN });

const rsss = [];

const iterator = octokit.paginate.iterator(
  octokit.rest.activity.listReposStarredByAuthenticatedUser,
  {
    per_page: 100,
  }
);

const data = await fs.readFile(
  "~/Library/Containers/com.ranchero.NetNewsWire-Evergreen/Data/Library/Application Support/NetNewsWire/Accounts/2_iCloud/Subscriptions.opml"
);

for await (const res of iterator) {
  // comment this part if this is first run to generate all feeds
  if (data.includes(`xmlUrl="${res.data.at(0)?.html_url}/releases.atom"`)) {
    console.log("Same feed, skipping");
    break;
  }

  let templ = res.data.map((d) => {
    return `<outline text="${d.name}" title="${d.name}" description="${
      d.description ?? ""
    }" description="" type="rss" version="RSS" htmlUrl="${
      d.html_url
    }" xmlUrl="${d.html_url}/releases.atom"/>`;
  });
  rsss.push(...templ);
}

if (rsss.length) {
  await fs.writeFile(
    "~/Library/Containers/com.ranchero.NetNewsWire-Evergreen/Data/Library/Application Support/NetNewsWire/Accounts/2_iCloud/Subscriptions.opml",
    data
      .toString()
      .replace(
        'nnw_externalID="ICLOUD_IDXXXXXXXXXXXXX">',
        `nnw_externalID="ICLOUD_IDXXXXXXXXXXXXX">\n\t\t${rsss.join(
          "\n\t\t"
        )}`
      ),
    "utf8"
  );
  await $`osascript -e 'tell application "NetNewsWire" to quit'`;
  await $`open -g -a "NetNewsWire"`;
  await $`open -g -a "NetNewsWire"`;
}
seuffert commented 2 years ago

didn't get any new notification emails since end of march :(

EPinci commented 2 years ago

Same here, no notifications at all since march. Email at outlook.com.

gaia commented 2 years ago

V Feskov sounds like a Russian name. What probably happened is that he has not be able to pay or use Amazon SES to have the emails sent out. Or maybe he was sent to that horrible war. The solution then is to fork the project and put it under another domain name.

vfeskov commented 2 years ago

Hey lovely people!

I'm Ukrainian and a principal engineer at a startup and a lot has happened in my life since February, for a long time i've had a lot on my plate and deprioritized maintaining GitPunch. I keep paying for it though, no issue there.

I suspect what happened is the change of github authentication method - i remember receiving alerts about it from github. i will look into it on the weekend but it might take more than one weekend

gaia commented 2 years ago

Slava Ukraini!! and thank you! (my wife is Ukranian)

vfeskov commented 2 years ago

Heroyam slava!

@Archinowsk thanks for supporting me on patreon, if it gets through then 10% of gitpunch cost gets covered 🎉 ! This gave me a surge of motivation and I spent the whole weekend on gitpunch. I found three issues:

  1. The loop that polled github public events stopped working and Tags Cache stopped being updated, which resulted in no cache being used at all. This slowed down Notifier script (the one that actually sends emails) to the point when it would timeout much more often (it runs on AWS Lambda and hard cap there is 15 minutes). I'm not sure why the polling loop would just die like this, but hopefully these changes will work. I will also add alerts at some point
  2. RSS/Atom feeds of latest releases have request rate limit and sometimes GitHub servers just fail and send 500 error. To mitigate this Notifier script made pauses of up to 3 minutes (3 attempts in 1 minute intervals) every time there was any kind of error while fetching releases for a particular repo. This meant that for every repo that got deleted/hidden it would still pause for 3 minutes and enough such repos accumulated to completely disable Notifier as it would timeout after 15 minutes. I fixed it by pausing only when the fetch error is 429 (Too Many Requests). Notifier will not pause after 404 requests anymore
  3. The previous two issues snowballed into no emails being sent anymore, but once I fixed them and some emails resumed there was still a fact that at particular hour there were releases of 3000+ repos being requested, despite all my optimizations. Making this many requests to GitHub takes a lot more than 15 minutes, which is AWS Lambda's hard cap, and hence no emails were being sent at that hour. At this point I can't think of a way to cache things any better and the only solution I see is to move away from Lambda to a server with similar specs, which would cost a lot more and I would have to implement and maintain monitoring, throttling and other great things that AWS Lambda provides. Because of this I decided to instead reduce UX a bit:
    • You will still get notified of all the latest releases with links pointing to GitHub pages as usual
    • Some releases will randomly lack release notes and would instead have "Couldn't load release notes" text. There will be a link to release notes on GitHub, just the email will not have them. It will only happen if the email gets sent at the start of each hour and it will happen less often at some hours, so if you're getting daily digests then you can try a different hour to receive them

I will keep the issue open for a week and monitor.

I appreciate a lot the support I'm getting from you guys: still using GitPunch, giving it a star or being my first-ever patron 🤩! I care more for my country right now and if you want to appreciate me for the work I've done on GitPunch please donate anywhere here:

  1. https://u24.gov.ua/ The initiative of the President of Ukraine
  2. https://savelife.in.ua/en/ Come Back Alive charity fund
  3. https://prytulafoundation.org/en/home/support_page Serhiy Prytula charity fund
vfeskov commented 2 years ago

Found few more bugs and fixed them, haven't seen any issues for almost a week now, so Im closing this, but please feel free to report if you spot anything. Again thanks for using GitPunch, even after 3 months of downtime, it was embarassing ngl :)

AlexWayfer commented 2 years ago

I've received some emails this week, thank you for your work.

torgeirl commented 2 years ago

After receiving one daily email on July 11 I'm back to not receiving emails again unfortunately. As far as I can tell I should have received daily emails on at least July 13, July 17, July 22, August 3 and August 6.

I've received some emails this week, thank you for your work.

@AlexWayfer: are you receiving daily or individual notification emails?

AlexWayfer commented 2 years ago

After receiving one daily email on July 11 I'm back to not receiving emails again unfortunately. As far as I can tell I should have received daily emails on at least July 13, July 17, July 22, August 3 and August 6.

I've received some emails this week, thank you for your work.

@AlexWayfer: are you receiving daily or individual notification emails?

Kind of groupped, but it happes a few times per day if neccessary. Example:

image

image

image

vfeskov commented 2 years ago

i don't see any errors/timeouts in my logs, @torgeirl can you please send me your email address to vlad@vfeskov.com, i will check your case in particular.