Mihai Parparita
0cc4188964
Use a task queue for sending of digest emails when using the cron job.
2014-08-30 23:14:51 -07:00
Mihai Parparita
4561d17569
Run gofmt.
2014-08-30 22:56:43 -07:00
Mihai Parparita
6cc162c91b
Use contributor stats to better determine a repository's vintage.
2014-08-26 23:42:59 -07:00
Mihai Parparita
b0994313d1
Add infrastructure for computing and storing repository "vintages."
...
Will be used for caching the oldest commit that we have for a repository (for a
specific user). For now we just store the creation date if there are no commits
before that time.
2014-08-26 22:59:25 -07:00
Mihai Parparita
7810f4db39
Slightly prettier repository list.
2014-08-25 22:39:27 -07:00
Mihai Parparita
fac6a57e1c
Add icon next to repo indicating its type.
2014-08-24 21:26:45 -07:00
Mihai Parparita
853c232c96
List repos on the settings page.
2014-08-24 21:05:50 -07:00
Mihai Parparita
cdf8ee326b
Move settings to a separate page and handler.
2014-08-24 20:39:32 -07:00
Mihai Parparita
774f4b9769
Mention current URL in README
2014-08-23 20:57:37 -07:00
Mihai Parparita
a667873958
Do not panic if we have a timezone that we can't load.
2014-08-18 23:17:29 -07:00
Mihai Parparita
846a4240b2
Fix bottom corners of the commit rounded box getting cut off.
2014-08-18 23:12:54 -07:00
Mihai Parparita
ff360bc605
Switch to inlining styles.
...
Unfortunately Gmail for iOS does not respect the <style> block that desktop
Gmail does. Styles are instead defined in a styles.json and can be referenced
via a custom template function. Not quite as nice as CSS (e.g. link style
invocation has to be repeated for every link), but still tolerable.
2014-08-18 23:10:41 -07:00
Mihai Parparita
90b397ef41
Remove unused template variables.
2014-08-17 22:33:16 -07:00
Mihai Parparita
8b9bd3fccb
Allow account timezone to be set.
2014-08-17 22:27:49 -07:00
Mihai Parparita
0804172e9e
Add template function to lessen boilerplate for getting a route's URL.
2014-08-16 15:41:51 -07:00
Mihai Parparita
c66ee02a55
Move digest viewing to its own page.
2014-08-16 15:24:38 -07:00
Mihai Parparita
0ecaeef5e3
Restructure templates to have a base "page" template with common markup.
2014-08-11 23:06:53 -07:00
Mihai Parparita
35a6407490
Move fetching of user and organization repos to a separate struct and file.
...
Prepares the way for showing a list of repositories on the homepage and fancier
determination of the first commit.
2014-08-11 22:09:56 -07:00
Mihai Parparita
8498241fbd
Store pointers to repository instances.
...
Since multiple interval digests can reference the same repositories.
2014-08-11 21:32:28 -07:00
Mihai Parparita
06d8b89cb3
Use the repository HTML URL in the API object.
2014-08-11 21:29:56 -07:00
Mihai Parparita
d5492565e1
List commits in chronological order.
2014-08-10 14:01:35 -07:00
Mihai Parparita
4f2a66c313
Fix empty check.
2014-08-09 20:17:31 -07:00
Mihai Parparita
1791534950
Support digests going back more than 1 year.
2014-08-09 16:00:04 -07:00
Mihai Parparita
ce4ef11042
Don't send digest emails if empty.
2014-08-05 22:34:21 -07:00
Mihai Parparita
8273cb18bb
Skip over repositories that have never been pushed to.
2014-08-05 22:26:53 -07:00
Mihai Parparita
1b3f91363f
Add basic admin UI for viewing the digest as another user.
2014-08-05 22:14:35 -07:00
Mihai Parparita
c4e55c5553
Unify Account initialization code paths.
...
We were not initializing the timezone when loading all accounts, which was
making the cron job fail.
2014-08-05 22:06:05 -07:00
Mihai Parparita
faf41a425d
Show timestamps that the commit was pushed to GitHub.
...
That matches the timestamp filtering better. The author timestamp is shown in a
tooltip.
2014-08-04 23:01:22 -07:00
Mihai Parparita
fe11e2a97a
Basic timezone support.
...
Digests are generated for day boundaries in the given timezone, and timestamps
that are displayed are in that timezone too. No UI for actually specifying a
timezone.
2014-08-03 23:00:48 -07:00
Mihai Parparita
b76c164d45
Extract the first line of the commit message as the title.
2014-08-03 16:00:29 -07:00
Mihai Parparita
6c63be0cfb
Move DigestCommit construction to a separate function.
2014-08-03 15:46:25 -07:00
Mihai Parparita
d1982e9d7f
Create a DigestCommit struct for extracting interesting/display data for commits.
...
For just used for convenience storage of properties and a display SHA, but will
also be used for message/title extraction.
2014-08-02 23:11:30 -07:00
Mihai Parparita
243cfb06e6
Allow digest.css to be read by the app in prod too.
2014-08-01 23:08:50 -07:00
Mihai Parparita
bc9427a2e0
Add basic CSS styling to digests.
2014-08-01 23:00:21 -07:00
Mihai Parparita
2635512896
Omit repo digests that don't have any commits in that interval.
2014-08-01 21:33:01 -07:00
Mihai Parparita
1384667bfd
Add basic README.
2014-08-01 21:29:18 -07:00
Mihai Parparita
fcd505f621
TODO is now in a Quip doc.
2014-07-30 22:46:03 -07:00
Mihai Parparita
ddbd3adea5
Add missing file from 649bbd8fd9.
2014-07-30 22:29:02 -07:00
Mihai Parparita
649bbd8fd9
Add digest cron handler.
2014-07-30 22:17:04 -07:00
Mihai Parparita
1bc9d53325
Send single email button.
2014-07-29 22:52:36 -07:00
Mihai Parparita
1ffac114ff
Move digest rendering into its own template.
2014-07-29 22:29:06 -07:00
Mihai Parparita
63982d15d9
Move rest of digest fetching to digest.go.
2014-07-29 22:18:34 -07:00
Mihai Parparita
b0811da602
Break out accounts, digests, caching and session configuration out of githup.go.
2014-07-29 21:57:33 -07:00
Mihai Parparita
0b7b99b696
Deleted unused OAuth token encode/decode functions.
2014-07-29 21:35:16 -07:00
Mihai Parparita
303e6ca229
Persit OAuth token in datastore.
2014-07-28 22:25:40 -07:00
Mihai Parparita
ceafd4035a
Add sign out link.
2014-07-28 21:36:55 -07:00
Mihai Parparita
97683cb538
Add note about commit email addresses.
2014-07-27 21:44:31 -07:00
Mihai Parparita
7fa9babac9
One more TODO.
2014-07-27 21:41:50 -07:00
Mihai Parparita
5ba00c78a7
Another TODO
2014-07-26 15:36:09 -07:00
Mihai Parparita
2391a279f9
Store OAuth token in a session cookie.
...
Not the final design (it'll instead be persisted to the App Engine data store,
and the session will just have the user ID), but this has most of the
scaffolding for session cookies.
2014-07-26 15:34:47 -07:00