Commit Graph

251 Commits

Author SHA1 Message Date
Piotr Sarnacki
f4cb2caed0 Try to always require newrelic_rpm 2013-04-16 20:24:18 +02:00
Piotr Sarnacki
2a19cd5bfa Revert "disable new relic"
This reverts commit 48cf45c5f6.
2013-04-16 20:01:14 +02:00
Henrik Hodne
6d0aad47ec Update example payloads 2013-04-15 14:11:58 -05:00
Henrik Hodne
a18f211f6f Merge pull request #25 from henrikhodne/add-responses-to-documentation
Add responses to documentation
2013-04-15 02:44:31 -07:00
Henrik Hodne
e38b40e00a Update docs style to look more like the main docs site 2013-04-15 02:04:50 -05:00
Piotr Sarnacki
cc70e15825 Fetch all builds in PR rake task, but skip when it's already filled in 2013-03-27 15:48:47 +01:00
Piotr Sarnacki
0ea7cc3ac4 Update only builds that need to be updated in pull_request_data rake task 2013-03-27 15:04:54 +01:00
Piotr Sarnacki
b4e59caebf Add task to migrate pull request data for builds 2013-03-27 12:58:32 +01:00
Henrik Hodne
6f5f7d0073 Add responses to repository endpoints 2013-03-26 20:41:23 -05:00
Henrik Hodne
c1aaeeee32 Add a way to add responses to documentation
You can add a predefined JSON response by entering
"json(:resource_name)" in the docstring. This will then be replaced
with the resource with the same name, found in
lib/travis/api/app/endpoint/documentation/resources.rb.
2013-03-26 20:40:35 -05:00
Piotr Sarnacki
887c835bd4 Use client_domain instead of domain for url in CC.xml 2013-03-25 16:53:20 +01:00
Piotr Sarnacki
15dd13ba02 Merge branch 'pr/46' 2013-03-25 16:40:08 +01:00
Piotr Sarnacki
f3ceee9b28 Always set content_type in responder 2013-03-25 16:39:37 +01:00
Andre Arko
2935050395 https is better 2013-03-25 16:16:42 +01:00
Andre Arko
c57e9cbcc6 valid URLs in cc.xml Project webUrl 2013-03-25 16:09:37 +01:00
Piotr Sarnacki
61142c7cf6 Return 404 unless we can find API builder for resource
In order to protect us from rendering a resource simply converted to
json, without processing it with API data class, this commit changes
JSON responder behavior to render 404 if we can't find associated data
class. The only exception to that rule is when resource is already a
Hash, meaning that it was processed before - we sometimes return for
example simple Hash responses like { result: true }.

The Hash exception could allow to accidentally pass resource.as_json to
responder, but in travis-ci/travis-support@124b8b6 I disabled default
as_json method on AR::Base classes, so the risk of such mistake is
lowered.
2013-03-24 19:49:28 +01:00
Piotr Sarnacki
2efd1cb9a6 It's .deploy-sha, not .deploy_sha 😡 2013-03-16 16:42:52 +01:00
Piotr Sarnacki
7099331907 Read .deploy-sha file from the proper path 2013-03-16 15:34:59 +01:00
Piotr Sarnacki
705927ff74 Don't error out if xml is requested with something else than repo 2013-03-12 12:08:43 +01:00
Piotr Sarnacki
54a6926aaf Properly handle non existent resources
This commit changes travis-api to always return 404 response if resource
is not available. Previously we were returning image/png with "unknown"
status instead if user used "*/*" Accept header, which was confusing.
2013-03-11 23:52:57 +01:00
Piotr Sarnacki
b6f3ef10aa Resource can be nil in Responders::Image 2013-03-11 20:57:45 +01:00
Piotr Sarnacki
04bb751b02 When serving image, return proper Last-Modified header 2013-03-11 20:54:24 +01:00
Henrik Hodne
63155e65b6 Fix link to travis-web
Fix #55
2013-03-03 18:27:29 -06:00
Piotr Sarnacki
5345ef818e Use version from each of the accept headers, not only first one 2013-02-25 17:28:24 +01:00
Piotr Sarnacki
5f91706e64 Allow to pass version as Accept param 2013-02-25 17:28:24 +01:00
Piotr Sarnacki
36783e6359 Handle chunked=true param in Accept header 2013-02-25 17:28:24 +01:00
Piotr Sarnacki
65b1e6b988 Respond with 406 if we can't return requested formats 2013-02-25 17:27:56 +01:00
Piotr Sarnacki
212eb6d9d3 Allow passing more than one mime type in Accept 2013-02-25 17:27:56 +01:00
Piotr Sarnacki
1d7be066cb Make it easy to check if Accept::Entry accepts given mime type 2013-02-25 17:27:56 +01:00
Piotr Sarnacki
c9e99cf2cf Allow more than one type in Accept header 2013-02-25 17:27:56 +01:00
Konstantin Haase
2e6865d55f don't run metrics etc in heroku console 2013-02-14 19:12:26 +01:00
Konstantin Haase
48cf45c5f6 disable new relic 2013-02-13 17:55:11 +01:00
Sven Fuchs
7e005aad1b use travis-core/sf-log-models 2013-02-10 21:30:50 +01:00
Piotr Sarnacki
0eadcfedbd Use redis for sidekiq from config also on staging 2013-02-06 14:20:03 +01:00
Sven Fuchs
b8dfb1cd00 auth PUT to /artifacts/:id 2013-01-30 08:50:27 +01:00
Piotr Sarnacki
260c46181d Add hack to allow handling redirect to logs on the client properly.
This hack is temporary and should be removed when we find better
solution.

TL;DR: we can't handle redirects to S3 using CORS, so in case we want to
get logs from S3 without additional requests to API, we need to return
status that will not be automatically redirected (in this case 204 seems
like the best answer).

Longer rationale:

Old logs are hosted on S3 now and in case log is not available in the
database, we would like to redirect to the archived log. Although S3
support CORS, our use case breaks on some browsers:

  * when request is triggered to /jobs/:id/log and log is archived, api
    returns 302 redirect, Location header points to the log on S3
  * browser transparently redirects to given url, but it sets Origin to
    null, for security reasons
  * "Origin: null" is ok, because we allow every origin by setting
    AllowedOrigin to "*"
  * S3 returns "Access-Control-Allow-Origin: null" header, which breaks
    some browsers (I confirmed it for webkit based browsers)

In order to fix this, S3 would need to return * in
Access-Control-Allow-Origin header or we would need to tell the browser
to not follow redirect. Both solutions are not achiveable.

Another option would be to return log information in job payload - we
could send log_url field which should be either log url on amazon or
null, but in such case we would need to query artifacts table in each
job request. This is something that should be avoided as archived logs
are not frequently requested - slowing down every request to get info
for it would be a waste.
2013-01-29 03:51:22 +01:00
Piotr Sarnacki
489a33cbf6 Try 307 redirect on /logs.txt 2013-01-28 19:05:07 +01:00
Konstantin Haase
62b876d2e1 keep query string when redirecting in rewrite middleware 2013-01-28 15:47:28 +01:00
Piotr Sarnacki
a565522f41 Redirect to full amazon url
Amazon can't work properly with SSL and CNAME for subdomains. For now we
can use full amazon url.
2013-01-28 03:43:28 +01:00
Piotr Sarnacki
31371686c9 Redirect to archive logs 2013-01-28 03:04:36 +01:00
Sven Fuchs
b81644acba comment out put to /artifacts/:id for now 2013-01-26 20:44:04 +01:00
Sven Fuchs
4ea95494de allow put to /artifacts/:id 2013-01-26 20:44:04 +01:00
Sven Fuchs
598a586ed4 don't start metrics logger etc unless in production 2013-01-26 20:43:54 +01:00
Sven Fuchs
d441336573 expose logs on /job/:id/log.txt 2013-01-26 20:43:54 +01:00
Piotr Sarnacki
f2d768080f Return last builds on each branch for /builds?branches=true
This is a hack to fix travis-ci/travis-web#123 easier. A proper solution
would be to refactor how /branches work.
2013-01-26 01:12:47 +01:00
Piotr Sarnacki
46eefaf26d Fix syntax error 2013-01-26 00:02:15 +01:00
Konstantin Haase
85e8f27047 hotfix for strange bug 2013-01-25 22:13:33 +01:00
Konstantin Haase
bde974e182 Revert "disable newrelic"
This reverts commit 48cc0d366a.
2013-01-25 22:11:53 +01:00
Konstantin Haase
48cc0d366a disable newrelic 2013-01-25 11:40:41 +01:00
Konstantin Haase
01c585e189 I have no idea 2013-01-25 11:29:05 +01:00