octokit / octokit.rb

Ruby toolkit for the GitHub API
http://octokit.github.io/octokit.rb/
MIT License
3.85k stars 1.14k forks source link

Activity stream event proper implementation #189

Closed cored closed 11 years ago

cored commented 11 years ago

Hello,

I was wondering the following, why is it that the event client always retrieve the same all events instead of just checking for updates on the activity stream API.

http://developer.github.com/v3/activity/events/

As you can see in here we the E-Tag is needed for the calls so the API just return the latest updates and not always the same events. Is this a feature of octokit or a bug?

Thanks in advance.

pengwynn commented 11 years ago

The ETag isn't required for the call. Conditional requests just let you make more calls without fear of running over your rate limit. Octokit doesn't yet support conditional requests out of the box (although there are a couple of Faraday middleware projects that support it).

You might actually be running into a limitation of the Events API where you can only get ten pages of 30 events. Can you share a snippet of your Octokit call, masking any authentication info?

cored commented 11 years ago

I basically did the following:

api = Octokit::Client.new :login => 'user', :password => 'password' api.received_events api.login

But regarding what you say, I'm mostly interested in the new updates, are you guys planning in implementing conditional requests? Can I have more info regarding this, I was planning on forking octokit and adding the feature if needed, just because I really need this.

Thanks in advance for the quick reply.

On 3 December 2012 19:02, Wynn Netherland notifications@github.com wrote:

The ETag isn't required for the call. Conditional requests just let you make more calls without fear of running over your rate limit. Octokit doesn't yet support conditional requests out of the box (although there are a couple of Faraday middleware projects that support it).

You might actually be running into a limitation of the Events API where you can only get ten pages of 30 events. Can you share a snippet of your Octokit call, masking any authentication info?

— Reply to this email directly or view it on GitHubhttps://github.com/pengwynn/octokit/issues/189#issuecomment-10976481.

Rafael George

pengwynn commented 11 years ago

Conditional requests are planned but they'll likely land with the Sawyer branch. I haven't given much thought to the public Octokit API for caching. Since you'd need to pick a caching store and some other options, I want it to remain lightweight.

I'd entertain a patch that bundled something like this without adding any overhead for newcomers.

cored commented 11 years ago

I really need this, can you point me in the right direction to check how can I help to move it forward? I saw the faraday_middleware for caching but it's seems that I need to cache on disk, I found this project which looks like some conditional request stuff https://github.com/paul/faraday-cache

If you have any other information regarding this, I'll appreciate it.

Thanks in advance.

On 4 December 2012 11:00, Wynn Netherland notifications@github.com wrote:

Conditional requests are planned but they'll likely land with the Sawyer branch. I haven't given much thought to the public Octokit API for caching. Since you'd need to pick a caching store and some other options, I want it to remain lightweight.

I'd entertain a patch that bundled something like thishttps://github.com/pengwynn/faraday_middleware/wiki/Cachingwithout adding any overhead for newcomers.

— Reply to this email directly or view it on GitHubhttps://github.com/pengwynn/octokit/issues/189#issuecomment-11000030.

Rafael George

pengwynn commented 11 years ago

I'm not sure if @paul's project is finished. The rack-cache option should work for any of the ActiveSupport::Cache stores.

Either way, you'll need to configure Octokit with a Faraday configuration block.

cored commented 11 years ago

Ok, thanks again I'll try to do a workaround to this from my own lib.

On 4 December 2012 11:24, Wynn Netherland notifications@github.com wrote:

I'm not sure if @paul https://github.com/paul's project is finished. The rack-cache option should work for any of the ActiveSupport::Cache stores http://guides.rubyonrails.org/caching_with_rails.html.

Either way, you'll need to configure Octokithttps://github.com/pengwynn/octokit/blob/master/spec/octokit/client_spec.rb#L33-L44with a Faraday configuration block.

— Reply to this email directly or view it on GitHubhttps://github.com/pengwynn/octokit/issues/189#issuecomment-11000973.

Rafael George

cored commented 11 years ago

Also is there a place where you guys talk about the design decisions for octokit? Freenode or something like that? I would like to check stuffs with you in real time :-)

pengwynn commented 11 years ago

I just dropped into #octokit on Freenode.

On Tuesday, December 4, 2012 at 10:02 AM, Rafael George wrote:

Also is there a place where you guys talk about the design decisions for octokit? Freenode or something like that? I would like to check stuffs with you in real time :-)

— Reply to this email directly or view it on GitHub (https://github.com/pengwynn/octokit/issues/189#issuecomment-11002693).