Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/freerange/sauron

The All Seeing Eye
https://github.com/freerange/sauron

Disable cron jon. We're not really using Sauron at the moment.

dfd6767ebeacab356afd15e562a6e1ba87033aa6 authored about 12 years ago
Some weird errors can be shorter.

f676126250c6c0fc5f260990f43dde948a056ab4 authored over 12 years ago
Capture the new crop of bizarre errors from GMail's IMAP servers.

The error messages have been:
System Error o59if2646136wek.132
System Error v4if2628789wea.79
Sy...

8879197140d37bfae3840b07b8ccc7fc37d98283 authored over 12 years ago
Catch another temporary error.

4b34d6ad8d2c3c1534862c36ee2f2575ea3f534a authored over 12 years ago
Handle known intermittent IMAP errors.

It looks like these errors are inherent in communicating with IMAP,
and there's often no reasona...

fb42e269df119db76ce713f02849ffeb43f5f5dd authored over 12 years ago
Helps if you don't make EVERY import fail.

31aafd77ab6e6223da2965b6e789bf10d061ba8f authored over 12 years ago
Add yet more error debugging.

8dfcc36e5fce1e906ec4eeca2431fbc414a3aba0 authored over 12 years ago
Fix build on Travis due to differing Ruby behaviour.

For whatever reason, when Travis switched to Ruby 1.9.3-p194 on their working
machines, the test...

08836f651d067c9ff969d5511b98c7a7a4ae3c5d authored over 12 years ago
Parse dates as UTC.

I've no idea why my previous commit broke the build.

3a4c25aec5afea3f8c33ec2999fd889cf62a1eea authored over 12 years ago
Add some exception logging to help trace these cron errors.

8a3c86dda7144b292bf4b70606382aa60322437d authored over 12 years ago
Rejig the application layout.

* Link to /conversations in the page header. I want to be able to
navigate to conversations ea...

8767d22b53ce2b4a18164dc966f72fb54d28acf1 authored over 12 years ago
Show most recent message first.

d4a664b6e138b11b53ff0879c5a728b4d36109fa authored over 12 years ago
First steps towards showing a conversation.

In order to do this, we need to be able to load individual conversations, and link to them in th...

e38e00a636038f74a2cc98640db64efab6e14ada authored over 12 years ago
Push knowledge of `Conversation` upwards.

It always felt a bit wrong that the `ActiveRecord` implementation behind the conversation index ...

0772e444fde9e686e106d02c2ca604d363143d19 authored over 12 years ago
Find messages by Message-Id header from the `MessageRepository`.

`Conversation` instances don't store references to messages using their unique
IDs, but do store...

a5da2e0347442015b002206c96fe2a0d97a26ee8 authored over 12 years ago
Show messages properly.

04c818b05c6b0ebe41f1e20a0ab469ef37fa867d authored over 12 years ago
Show messages when showing a conversation.

The view implementation here is trivial and wrong, but this should demonstrate the skeleton of h...

dac6d5a350a85e123b539ff124a5a9638fe30c06 authored over 12 years ago
Spelling error.

d16401184bcf2aa43386f8e46faa6bd6fd490e0f authored over 12 years ago
Merge pull request #35 from freerange/delete-elastic-search-data-between-tests

Delete data rather than resetting elastic search index between tests.

237b42631833f7264af7948e39dd0d19a9fa90e7 authored over 12 years ago
Delete data rather than resetting elastic search index between tests.

By using the same index for all tests, only deleting the data in the index between each test, we...

811e7d813c643554be148381c6d4a092b3ffeaba authored over 12 years ago
Update README.md.

Yeah, I knew it was one word. Who said I didn't...

949cbbabc0f81e49f921826a4bf634b8c1033f12 authored over 12 years ago
Update README.

Explain that you'll need to install elasticsearch to use Sauron.

f40c2f8f46ee0d28b9fc3518bb1ac569588af6ee authored over 12 years ago
'Convert' README from rdoc to markdown.

a2d92a9d5f6c68ecdeb629bf5d29778246412e0b authored over 12 years ago
Revert "Make elasticsearach-related tests deterministic and faster."

This reverts commit 2d7d0cb10faa6276029b15c4358f4704a7a03667.

Apparently @tomafro has tried thi...

fc2737a594001b215947628c5e5d37ecc094afc3 authored over 12 years ago
Make elasticsearach-related tests deterministic and faster.

Issuing a `refresh` command seems to ensure the index is ready for
searching. Hopefully it will ...

2d7d0cb10faa6276029b15c4358f4704a7a03667 authored over 12 years ago
Use the public github URL for recap so Travis CI doesn't die horribly.

6c3ae0cfef194565222ab99de1a9996a0b716d30 authored over 12 years ago
Use foreman-export-template branch of recap to customize upstart script.

The custom foreman export upstart template ensures that sauron is
started at boot time and stopp...

683d77674ef4d6f275fc4dd186559265c9ad1721 authored over 12 years ago
Touch foreman export template to see whether recap notices.

f874be6a6517acd665ac85d1f78a409b149c69c5 authored over 12 years ago
Foreman export template to start processes at boot time & stop at shutdown

Ideally this would prepend the first two lines (start & stop commands)
to the default template, ...

5c4e546597275f01fd2b7ffeccdc018030141b40 authored over 12 years ago
Show more recent conversations first.

e264982850f8b9d5b3e7fefd726b89292a8fd431 authored over 12 years ago
Whoops, left debug in.

d2bc3dffa36af0217ad83cda12cbb3ca31dc42cd authored over 12 years ago
Add the assertion missing from 6e65325818bcecb49b4b12035dfb7388f167f51a

Somehow, in a fit of stashing and popping, the actual assertion in the
acceptance test disappear...

18d9ac2dea04da972ede32b067b56a93ea39b78e authored over 12 years ago
Show the participants of a conversation.

This lets us quickly see who was involved in a conversation.

It's likely that this presentation...

6e65325818bcecb49b4b12035dfb7388f167f51a authored over 12 years ago
Added a rake task to wipe all the data.

I've deliberately given this an obnoxious name.

3e2efcce4db09e10096c4924235d215680c7a7fe authored over 12 years ago
Provide a mechanism to reset the conversation index.

This will be useful when re-importing.

1892c22aeaefeed18ff9bf661d1d2bcc732f62f0 authored over 12 years ago
Provide a URL not requiring authentication for monitoring the app.

This hits both the MessageRepository and the ConversationRepository in
order to check that both ...

b03fea816dfc48b9ed3ee1e08653cc64db29afd4 authored over 12 years ago
Halve time taken for `ElasticSearchMessageIndexTest` to run.

This change reduces the time taken from ~30 seconds to ~15 seconds.

It's also probably better t...

95e0661f0cc01a411ac37a34292ef6db6316bc1d authored over 12 years ago
Reduce duplication performing HTTP Basic auth in tests.

We chose the name `logged_in` rather than `login` because the latter is
an imperative which impl...

f4be3f43e5906b6d168384983ad72cfe0fe7c19b authored over 12 years ago
Remove stub_message and rename stub_reply_to.

Making message_stub do everything that stub_message used to do allows us
to remove stub_message....

8e5cb750ab8d8711be7ef0a5a10793ee8367ea42 authored over 12 years ago
Giving stubs explicit names makes tests easier to debug.

This is because if a stub receives an unexpected method call, or an
expectation on a stub isn't ...

8154f53c5d61c4d4136d812071cbd8b5c0b2f4d7 authored over 12 years ago
Avoid using stub_everything for our message stub.

We think it's better to be explicit about the interface our stub
implements.

05592d5fc51eaadcbe5729c3bb5fc5cf08975df6 authored over 12 years ago
Move all stub factories into the test_helper.

f76062c6cf1e27c09f0f8c9ac37ee562856938a9 authored over 12 years ago
Constrain the stub factories to their actual implementations.

We want our tests to fail fast if we unintentionally stub and call a
method that doesn't exist. ...

3771500c9859b6ae374f0dbd1507778d6792d73d authored over 12 years ago
Explain why there are no messages/conversations in a list.

Also ensure valid HTML by not adding empty <ul> elements.

7dadeb090248ccfd698a4ec0b03fdeb93cfa4a55 authored over 12 years ago
Search with empty query redirects to default messages list.

It felt odd that searching with an empty query displayed a search
results page with no matching ...

bfdd994410bc1bc58fbffaf47a6c0eabd7d2a5fb authored over 12 years ago
Add the conversation date to the list of conversations.

We've chosen to implement the microformat datetime design pattern[1]
which makes it easier to wr...

bcf89e319eaa4f5adfd35543960590be2f72d613 authored over 12 years ago
Search results should be in reverse chronological order.

Although the default order may have been determined by "closest match",
this wasn't obvious from...

ff0f7fb4a1d588af597303c91ad6b8288aff12ad authored over 12 years ago
Merge pull request #33 from freerange/patch-activesupport-multibyte

Patch ActiveSupport::Multibyte::Chars so that as_json works

7afe167e189ca1c4ae9a1363ad9bf18712dff779 authored over 12 years ago
Index the ActiveRecordStore tables.

This is just based on which attributes are used in `WHERE` queries.
Perhaps I'm being a bit naïv...

87ce04648ccf57e3cb457b037c1a499ef2289c48 authored over 12 years ago
Add another Pivotal Tracker email address to the exclusions.

This probably won't be useful for new messages, but might be of use for
older ones. I'm not plan...

7950fd668598703005047fa19d88374862d4aaa3 authored over 12 years ago
Don't create duplicate conversations for the same message.

It's possible that the importer will try to add the same `Message` to the `ConversationRepositor...

f2ab4b97a22407f119ebe5e6999a703451ba155c authored over 12 years ago
Change test to better match the test name.

I believe this test is really concerned with hinting to the mailbox that the importer doesn't wa...

66b8c10d25e98ebd8eea8d18dac2d029b4b01406 authored over 12 years ago
The `MessageRepository` should return a message.

This is required for the `MailImporter` to interact with the
`ConversationRepository` properly.

e831e976a92c0b5add0f008de84de5c0c019abca authored over 12 years ago
Fix the test name. Whoops.

d14c3b4006e8593ee00787201a630d6e0c4069d1 authored over 12 years ago
Patch ActiveSupport::Multibyte::Chars so that as_json works

829ca60e7849f5dc723af4d66f15bacce313d6e2 authored over 12 years ago
Display a list of conversations.

- This is part of a larger story to present conversations rather than
individual messages. We ...

adb81f412d3b800f221c9ba23c130e1b0ba0cce8 authored over 12 years ago
Display who a message was sent to.

Not all messages have To headers, so ParsedMail ensures we always return something, even when no...

eb8e5f2572d3bf947f89faf32b4214d69bcf15b5 authored over 12 years ago
Revert "Update scheduled rake task."

This reverts commit aaf1ff540ba932d6d1ee26f81627fc2eb7a5cbb6.

Adding the --trace flag to the ra...

292ad4a1bafbd249c0648bc8e2041aa195f1cc0d authored over 12 years ago
Update scheduled rake task.

Including the --trace switch should help us debug some of the errors we
see every so often.

aaf1ff540ba932d6d1ee26f81627fc2eb7a5cbb6 authored over 12 years ago
Behave more gracefully if body encodings are incorrect.

If an error is raised attempted to decode them, force them to UTF-8, replacing any invalid bytes.

61516ce186b181a2af27d05b1e9fffbcf87a4c1e authored over 12 years ago
Spit and polish.

f9bd2d58cc94d96c6e4a9227ac54072e9c55e246 authored over 12 years ago
We found another address format used by twitter for @mentions

d52551a39fb7bf95ffd5d1fcbe0a7ad073ee3151 authored over 12 years ago
Don't display certain automated emails in the main message view.

We've hidden emails from twitter, pivotal tracker and google calendar from the main view, but th...

a96cebb42453057622a992cdb5def28b06098ecc authored over 12 years ago
Extract array comparison assertion into custom assertion method.

64eab917c2b967efc26a7b30e6fe6f46c2059f8c authored over 12 years ago
Allow searching for to, from and cc addresses

7c7a94afd1f716008a92c3888800ef72bdfda736 authored over 12 years ago
Cope with a raw mail that cannot be coerced into UTF-8 encoding.

It proved very difficult to write a test to reproduce the problem with
this message [1]. Given t...

b65cba207f0346843bed29761241c92f71744faf authored over 12 years ago
We accidentally reduced the sleep time between elastic search tests.

58ab8f198a42ee7a840e195031fecbdb1f993561 authored over 12 years ago
Only search the subject and body of each message.

We noticed on the production server that search for cron, for example, would return messages whe...

a81e8b30ae3285cc3e44b05b0f21ea83e6e902a8 authored over 12 years ago
Add message bodies to the search index.

All messages imported after this commit is deployed should be searchable by their bodies. We pl...

f96daef8016c8fbb224d7cf0c23e33775ec272e6 authored over 12 years ago
Move all remaining mail parsing malarkey into ParsedMail

57a2b5928b2894e4bec6c20f86bad767f201c6f9 authored over 12 years ago
RawMail => ParsedMail

ParsedMail seems a more descriptive name for the parsed version of a raw email.

abe7171cde8fd1ae5b240b66e5d80d2c36b1ab13 authored over 12 years ago
Start moving responsibility for mail parsing to a dedicated class.

For the most part we rely on the mail gem to parse our raw emails. However, it has a number of ...

28fc871c9a77d649233760e98bc829850ddddd7e authored over 12 years ago
Do we even need to prepare the database?

I think the default rake task already calls db:test:prepare; all we need to do is get the 'devel...

3bd740fe7e291ee81afc1b3f0568ab4087eebc9c authored over 12 years ago
Prepare the test database without relying on migrations.

This means we don't have to keep every constant referred to in any
migration around in the codeb...

e7b76d3332a1eee8908aaabd0c3980fda2ce0b38 authored over 12 years ago
Some mails can have multiple `Delivered-To` headers.

The Mail gem parses multiple `Delivered-To` headers into a wacky Array
of 'Fields', but we were ...

bf93c30a87d4887180bc36bd6bd6435be6e15f90 authored over 12 years ago
Remove ActiveRecord message and mail indexes.

We've switched to ElasticSearch.

c0e5d5d07cd56fa68e3cac84e2eea2c42bf56f1e authored over 12 years ago
Search should handle empty queries, and show previous search term

5342101edb917098a95574dcf17231e311a54566 authored over 12 years ago
Quick and dirty capistrano task to show the tail of the server log

b45e0d7a83edd36626ed7d9d4a290d78c2dd334c authored over 12 years ago
Allow simple searching by message subject.

5ca6ce73c2be4dd25103e266e38fc63b2aab6fda authored over 12 years ago
Render a 404 page rather than a blank one.

This has the potential to be more informative in the future.

0e83f00095946f2d3fe314566f933cf71503f5b7 authored over 12 years ago
Respond with 404 Not Found when showing a non-existent message.

6455577d4c7526effa5a3a2abf1a0150b939e24b authored over 12 years ago
MessageRepository.find should return nil if no Index record was found.

7e560712af9a0601f526b1d54fdafb5d95caabaa authored over 12 years ago
Re-enable the scheduled mail imports.

a0900829c4521126f5faddb06632974d6764c7e3 authored over 12 years ago
The account uid should be stored as a long, not a string

bd27463c5350c5bc8507574ff137c183e2427e8f authored over 12 years ago
Disabling schedule import while investigate connection issues

ac2f042d5d0b934201f553f8d074e2a4923e693a authored over 12 years ago
Re-enable the scheduled mail import

3dccf9f00d1972a868108bbf97b204838a414483 authored over 12 years ago
Apparently RestClient doesn't clean up the http connection properly

Once a certain number of messages have been imported, an http connection limit within the OS is ...

2b418c136e7c3fce6ff82879ff16c7d8d948ec5e authored over 12 years ago
Performing the migration in batches

By performing the migration in batches and reinitializing the index each time, I hope to avoid a...

8fed3dc7feec74a9c8c71ab74841cb6eaa6cec00 authored over 12 years ago
Disable the import until we're sure the elastic search migration is complete

30d8057df089cb32cfaf5b6a555a0f516af8522c authored over 12 years ago
Merge pull request #32 from freerange/wip-elastic-search-into-shape

Wip elastic search into shape

0f83c2838ac3203362e07dff5e2f129ec7229982 authored over 12 years ago
Using a small random space for the message id means there's a small chance of duplicate ids in tests

9c4449ec3c9ebbee28636b7b438bc962efc57e49 authored over 12 years ago
Introduce an ElasticSearch message index, to replace the ActiveRecord based one

Using Elastic Search rather than ActiveRecord to index our messages enable us to easily perform ...

19e64a55438cde4e27e6ccfca95c9308ce0de986 authored over 12 years ago
Force the mail gem to return a string for the delivered to value

mail["Delivered-To"] returns a Mail::OptionalField, while mail["Delivered-To"].to_s returns an A...

9a8f152b124a1cd632880f1e2f9b2edf13e8acef authored over 12 years ago
DRY up Mailbox#uids implementation.

bfe004ea8fd609f6108ec08beedaa85c1c46e534 authored over 12 years ago
Ignore draft emails.

* Using the `UID SEARCH` IMAP command in conjunction with the
`X-GM-LABELS` GMail extension at...

578f99e61762a8c3c401406858511282b2c58c90 authored over 12 years ago
Move responsibility for message hash generation into the index.

The hash can be seen as an identifier of the message as a whole (as opposed to a single email). ...

3f77d377f9236a0b0019928bf129b5af7577f140 authored over 12 years ago
Remove redundant test.

When I added this test, it was to ensure that the `has_many` was
correctly configured. However t...

f716d32652c4fb4d17c3883a762bf40c8c74f335 authored over 12 years ago
Improve nomenclature for messages I do and don't care about.

36790e0cf4b52784c558f7702575133f7ce64323 authored over 12 years ago
I don't care about messages that I sent.

The names of the `received` and `not-received` CSS classes are a bit
misleading, but we can addr...

d2b905e3f19f0aa00bd3ebb4aaa889549164c747 authored over 12 years ago
Rename message index method to better reflect its purpose.

No need to order by ID since there should now only ever be a single
message index record for a g...

30d0c8ca5edf94197541400de4a5b6244c466441 authored almost 13 years ago