Konstantin Haase
07fff5a7be
track and enforce user-agent
2014-10-27 19:21:23 +01:00
Sven Fuchs
acefb6a53b
pass the repository github_id, too (required in pro)
2014-10-21 19:25:37 +02:00
Sven Fuchs
05494f4acf
allow returning a symbol as a result from services, set status based on the symbol
2014-10-21 17:12:13 +02:00
Sven Fuchs
a636e911bd
Accept build requests via api
2014-10-21 17:12:07 +02:00
Sven Fuchs
193c749cd1
fix settings env var api specs
2014-10-07 19:14:40 +02:00
Sven Fuchs
e053a786c0
Revert "Return tag along with commit"
...
This reverts commit c2fc97b138
.
The respective change in travis-core was reverted meanwhile:
95d59342e9
2014-10-07 16:58:36 +02:00
Sven Fuchs
7643a253fa
notes about failing spec in auth handshake
2014-10-07 16:48:21 +02:00
Sven Fuchs
58ce449ca4
fix specs for rspec
2014-10-07 16:48:21 +02:00
Piotr Sarnacki
c2fc97b138
Return tag along with commit
2014-10-01 15:22:35 +02:00
Piotr Sarnacki
890b7f1d93
Fix Accept header support for logs request
...
When log is aggregated and archived we don't have a way to return it in
JSON format, only text format. Till recently we were returning a text
response or a redirect to S3 even if Accept header was set only to JSON.
This commit fixes it.
2014-09-11 17:44:36 +02:00
Piotr Sarnacki
3b9c864aff
Fix specs
2014-09-11 14:47:56 +02:00
Piotr Sarnacki
07cd97a90f
Add "after" param to log
...
after query param allows to get only parts that come after a specified
number, for example "after: 10" will download only parts that come after
10th part.
2014-09-11 14:36:19 +02:00
Piotr Sarnacki
65a90fd5d7
Fix specyfing part_numbers in API
...
Recently I've implmented a way to get only specific parts from log API,
but the test and implementation were wrong. This commit fixes that.
2014-09-11 14:35:33 +02:00
Piotr Sarnacki
68a49057ca
Fix specs, namespace for settings endpoints changed
2014-09-10 11:05:35 +02:00
Piotr Sarnacki
6e5f225a1c
Don't reset the value if a new value is provided
...
If a value is provided with a request to update the record, we should
not nullify it. We don't send decrypted private values to the client, so
if client provides it, it's probably pasted by the user.
2014-09-10 11:02:24 +02:00
Piotr Sarnacki
e103b291ad
Reset value when env var is changed from private to public
...
When env var is changed from private to public, we didn't nullify it, so
someone doing that could miss exposing it. To minimise the risk of
exposing any secure info we'll now nullify the value.
2014-09-10 10:46:29 +02:00
Piotr Sarnacki
f91c54725e
Add a feature flip for education field update
2014-09-02 10:44:31 +02:00
Piotr Sarnacki
9b07efa5e9
Check for user education status on signin/signup
2014-08-28 17:18:07 +02:00
Piotr Sarnacki
4546d29508
Add ability to specify parts in query to get log
2014-08-27 15:52:52 +02:00
Konstantin Haase
b448410da5
have :id in repos controller only match digits
2014-08-19 10:45:55 +02:00
Piotr Sarnacki
fd6042573a
Return fingerprint along with the public key for repository
2014-07-29 04:39:03 +02:00
Piotr Sarnacki
d7c6edec18
Bring back ssh key endpoint, but make it configurable
2014-07-29 03:02:54 +02:00
Piotr Sarnacki
b9db32e3c2
Treat repository_id as id for singleton settings
2014-07-23 13:34:30 +02:00
Piotr Sarnacki
4005760c8c
Add SingletonSettingsEndpoint
...
This class allows to easily add an endpoint for a nested model in
settings.
2014-07-21 17:09:32 +02:00
Piotr Sarnacki
9ae3782975
Don't return collections along with simple settings
2014-07-16 18:20:35 +02:00
Piotr Sarnacki
696185e3cd
Return repository_id for env vars
2014-07-16 18:14:52 +02:00
Piotr Sarnacki
cc291446f5
Return env var's value if it's public
2014-07-16 11:54:31 +02:00
Piotr Sarnacki
2e8fc35e13
Properly validate settings
2014-07-15 16:26:24 +02:00
Piotr Sarnacki
fa56e4cfa0
Update code and specs for newest travis-core changes
2014-07-15 16:25:55 +02:00
Hiro Asari
6d3a65b541
Merge branch 'master' into ps-env-vars-in-settings
...
Conflicts:
Gemfile.lock
2014-06-18 08:38:49 -04:00
Hiro Asari
dae8652279
Merge branch 'master' into ha-feature-remove_log_endpoint
2014-06-17 10:40:30 -04:00
Hiro Asari
9265ac62c9
Merge branch 'master' into ha-feature-remove_log_endpoint
...
Conflicts:
Gemfile.lock
travis-api.gemspec
2014-06-17 09:05:05 -04:00
Konstantin Haase
143a9cd071
Revert "removed the branches endpoint"
...
This reverts commit f7450cdb6b
.
2014-06-17 14:44:13 +02:00
Konstantin Haase
0145236b30
Merge pull request #123 from travis-ci/rkh-lint
...
add endpoint for .travis.yml linting
2014-06-17 14:15:02 +02:00
Konstantin Haase
10fe7e1c39
add endpoint for linting
2014-06-17 12:14:10 +02:00
Hiro Asari
8d4c4488b1
Merge pull request #94 from travis-ci/jk_remove_branches_endpoint
...
Remove the branches endpoint
2014-06-16 11:36:59 -04:00
Hiro Asari
dfffe8e405
Remove PATCH logs/:job_id
endpoint
...
To eradicate unnecessary inconsistency.
Spec to test the existing `GET logs/:id` remains.
2014-06-12 07:20:47 -04:00
Hiro Asari
4a3807b21a
Standardize error handling for RemoveLog service endpoints
...
Return status 409 for errors
2014-06-11 13:51:47 -04:00
Hiro Asari
1cf298464a
Add RemoveLog service endpoint to jobs/:id/log
...
This replaces https://github.com/travis-ci/travis-api/pull/107 .
2014-06-11 13:39:21 -04:00
Hiro Asari
5c079f8e66
Add specs for RemoveLog service
...
Status code is debatable; I opted for 422 when the job is still
running, and for 500 if unexpected error happened
2014-06-11 09:30:50 -04:00
Piotr Sarnacki
3ef8fab3c6
Add settings endpoint for env_vars
2014-05-23 13:42:22 +02:00
Piotr Sarnacki
d02648a542
Add build_id to requests payload
2014-05-06 16:04:10 +02:00
Mathias Meyer
34a7f817b3
Remove documentation, redirect /docs to new docs.
2014-05-05 15:06:06 +02:00
Piotr Sarnacki
360881a888
Remove ssh_keys endpoint
...
SshKeys will make sense only on Travis CI Pro
2014-04-15 11:14:11 +02:00
Piotr Sarnacki
c42335a286
Merge pull request #117 from travis-ci/ps-ssh-keys
...
Add ssh keys to settings API
2014-04-15 10:59:59 +02:00
Piotr Sarnacki
f107d4676e
Params in POST and PATCH requests should be fetched from request body
...
This also adds missing specs for ssh_keys endpoint
2014-04-10 14:07:20 +02:00
Thais Camilo and Konstantin Haase
6e12bed1b5
store oauth state in cookie to verify it corresponds to current client
2014-04-08 15:17:23 -04:00
Piotr Sarnacki
11e814055e
Fix specs
2014-04-01 16:52:33 +02:00
Piotr Sarnacki
e9cdef1c9b
Add /settings/ssh_keys API
2014-04-01 13:05:25 +02:00
Piotr Sarnacki
1b524071f4
Allow to handle settings collections
2014-04-01 12:00:06 +02:00
Piotr Sarnacki
8c82d9af89
Move API v2 payload definitions to travis-api from travis-core
2014-03-24 20:25:06 +01:00
Piotr Sarnacki
400b6ae6ee
Add /requests/:id endpoint
2014-03-12 10:50:16 +01:00
Piotr Sarnacki
efa6a48a58
Merge pull request #112 from travis-ci/ps-requests-api
...
Add requests API
2014-03-11 13:24:09 +01:00
Piotr Sarnacki
093831c1a2
Add requests API
...
Requests API allows to get the requests from the DB and thus enable
users to have more insight into what's going on in their repositories.
2014-03-06 19:36:55 +01:00
Konstantin Haase
a7df899adc
be more forgiving with scopes for /auth/github
2014-02-26 19:28:20 +01:00
Hiro Asari
b43568a0f9
Fix Annoation-related specs
...
Annotations are now blocked by features, so stub the service to
return true for the cases we expect to get data back from POST
requests
2014-01-29 14:30:23 -05:00
Hiro Asari
5517623265
Respond with 409 to POST '/users/sync' if sync is in progress
...
Fixes travis-ci/travis-ci#1659 .
[Henrik Hodne: squashed commits]
2014-01-28 10:22:10 -06:00
Hiro Asari
8e1b190725
Require status for updating Annotation and bump travis-core
2014-01-22 09:34:26 -05:00
Hiro Asari
8ce826cda0
Merge branch 'master' into hh-add-metadata-endpoint
...
Conflicts:
Gemfile.lock
2014-01-20 22:30:35 -05:00
Sven Fuchs
0c6576fec1
Merge pull request #99 from travis-ci/ha-api-gh47-aggregate-cc-xml
...
Respond to /repos.xml with CC XML
2014-01-17 12:50:26 -08:00
Hiro Asari
a622de2a9f
Merge branch 'master' into hh-add-metadata-endpoint
...
Update Gemfile.lock to point to the updated travis-core PR
Conflicts:
Gemfile.lock
lib/travis/api/app/endpoint/jobs.rb
spec/integration/v2/jobs_spec.rb
2014-01-17 09:16:41 -05:00
Konstantin Haase
fc06e3bff9
Merge pull request #97 from travis-ci/core-gh1555-pretty-print-json
...
Pretty print JSON data
2013-12-06 05:27:55 -08:00
Piotr Sarnacki
e11dfa35cf
Fix PATCH repos/:id/settings
2013-12-02 15:36:58 +01:00
Piotr Sarnacki
62a5e602c5
Implement simple repository settings API
2013-12-02 15:36:25 +01:00
Hiro Asari
d31a29e54d
Fix grammar in spec description
2013-12-01 20:42:46 -05:00
Piotr Sarnacki
39260c3918
Fix specs after travis-core update
2013-11-28 18:08:39 +01:00
Hiro Asari
ff37525a5c
Cast in matcher as well
...
To match the previous change with the responder.
2013-11-19 01:23:47 -05:00
Hiro Asari
0f0ee4778f
Fix up matcher to account for change in data structure
...
Aggregate CC XML would have a different output
2013-11-18 16:55:23 -05:00
Hiro Asari
362b5d30bf
Respond to /repos.xml with CC XML
...
See #47
2013-11-18 16:55:11 -05:00
Hiro Asari
85aebf684b
Add specs for pretty print JSON
...
They only check that the response includes `\n`, which should not happen
otherwise.
2013-11-18 13:15:05 -05:00
Piotr Sarnacki
e61a723d06
Fix scoping spec
...
After bundle update 403 error was returned after unsuccessful scopes
check. This is actually a proper behaviour, so I'm changing test to
reflect this test.
2013-11-12 22:16:47 +01:00
Hiro Asari
3b20120c72
Accept .atom
extension
...
And return Atom feed for builds.
Specs look different, because it needs to explicitly handle the common
case where the client sends `Accept: */*`.
2013-11-11 15:21:14 -05:00
Hiro Asari
8171d3915e
Add integration specs for Atom feed
...
These rudimentary specs do not test the correctness of
the Atom feed format.
2013-11-11 11:40:37 -05:00
Piotr Sarnacki
1503b87555
Require travis/testing explicitly
2013-11-08 11:05:55 +01:00
Josh Kalderimis
f7450cdb6b
removed the branches endpoint
...
we already have branch info accessible via the repos endpoints, having this at the root level doesn't make sense.
2013-11-06 01:40:42 +01:00
Piotr Sarnacki
58f1284244
Merge pull request #85 from travis-ci/insufficient-oauth-redirect
...
Redirect to web client on insufficient oauth scopes
2013-11-05 05:31:25 -08:00
Konstantin Haase
6f92f122b0
Merge pull request #90 from travis-ci/jk_remove_artifacts_endpoint
...
Remove deprecated artifacts endpoint
2013-11-05 04:23:04 -08:00
Josh Kalderimis
26edaf644f
remove deprecated artifacts endpoint
2013-11-05 01:05:21 +01:00
Josh Kalderimis
342df12b14
remove old workers endpoints
2013-11-04 19:24:17 +01:00
Piotr Sarnacki
87674f52bb
Redirect to web client on insufficient oauth scopes
2013-10-29 14:27:21 +01:00
Henrik Hodne
8f4dd0d2df
Respond with 422 if /auth/github does not get a token
...
Fix #77
2013-10-23 19:35:03 -05:00
Piotr Sarnacki
0681e54cf1
Run CORS middleware in development
2013-09-20 12:47:14 +02:00
Piotr Sarnacki
8d1a3b2bea
Bump travis-core (repos?member=:member fix)
2013-09-12 13:52:32 +02:00
Piotr Sarnacki
e587ef0b7f
Add nginx config with CORS support
2013-09-05 22:48:42 +02:00
Mathias Meyer
9d26844eaa
Add tests for /uptime.
2013-08-26 17:29:10 +02:00
Piotr Sarnacki
f19de9d134
Implement jobs/:id/cancel and builds/:id/cancel endpoints
2013-08-08 14:25:20 +02:00
Piotr Sarnacki
383d233d9e
Add missing spec for UserManager (when drop_token is true)
2013-08-02 13:18:54 +02:00
Henrik Hodne
be2c538d9e
Rename metadata => annotations
2013-07-10 16:55:03 -07:00
Henrik Hodne
16a73d9e0b
Add PUT /jobs/:id/metadata endpoint
2013-07-09 18:41:47 -07:00
Henrik Hodne
b103a7ccb1
Add GET /jobs/:job_id/metadata endpoint
2013-07-09 18:15:32 -07:00
Piotr Sarnacki
3508f25bdf
Nullify logins and rename repos owner when updating/creating user
2013-07-10 01:38:10 +02:00
Piotr Sarnacki
b6a351c766
Convert params['ids'] to array
...
Services like find_builds can accept :ids as a param, but it needs to be
an array, string will be passed to find and converted into integer.
2013-07-09 15:18:31 +02:00
Josh Kalderimis
cf66b6bb6d
raise_error(Error) is deprecated
2013-07-08 13:38:50 +02:00
Mathias Meyer
162bf4e3ef
Merge branch 'master' into rkh-metrics
2013-06-18 09:51:13 +02:00
Piotr Sarnacki
29fb7292cb
Fix tests
2013-06-13 15:54:19 +02:00
Mathias Meyer
49015050c1
Merge branch 'master' into rkh-metrics
...
Conflicts:
Gemfile.lock
2013-06-10 08:23:42 +02:00
Henrik Hodne
5f1f189c74
Remove references to "result" in specs
...
This column has now been removed in favor of the state columns.
2013-05-23 15:48:41 +02:00
Mathias Meyer
c75f76aefb
Remove spec for auto-using custom middlewares.
2013-05-18 11:19:15 +02:00
Mathias Meyer
0cd89de38a
Merge branch 'master' into rkh-metrics
...
Conflicts:
Gemfile.lock
2013-05-09 13:37:28 +02:00
Piotr Sarnacki
cdabec540d
Fix scopes and access token specs
2013-05-08 14:11:03 +02:00
Piotr Sarnacki
3b299cfec7
Allow to pass required_params to token
...
required_params will be matched with actual params to check if the token
may be used for authorization. For example if { job_id: 44 } is passed
as a required param, the token will be rejected for GET /jobs/33
2013-05-08 14:11:03 +02:00
Piotr Sarnacki
56d61ed461
Allow to pass extra params for tokens
2013-05-08 14:11:02 +02:00
Piotr Sarnacki
ee64af14d5
Allow to specify more than one scope for an endpoint
2013-05-08 14:11:02 +02:00
Piotr Sarnacki
1340fdb316
Allow to pass additional responders to respond_with
2013-05-08 14:11:02 +02:00
Piotr Sarnacki
01356df26f
Implement expiring access tokens
2013-05-08 14:11:02 +02:00
Konstantin Haase
0d2188b5b2
fix specs
2013-04-24 16:59:26 +02:00
Piotr Sarnacki
be22ff6eda
Ensure that we properly handle 404 formats
2013-04-11 14:47:00 +02: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
637af8aa44
oh and the spec cares too
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
Andre Arko
6940532994
Ensure proper content type for cc.xml
2013-03-25 16:09:15 +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
Konstantin Haase
92be2a3fcd
fix test for new autosync
2013-03-20 19:53:38 +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
c0b9a468d6
Forgot to delete one of the tests
2013-03-11 23:58:58 +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
04bb751b02
When serving image, return proper Last-Modified header
2013-03-11 20:54:24 +01: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
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
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
7b4712c32c
fix after rebase
2013-01-26 20:54:58 +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
c6e3c29a57
Load the data for integration tests upfront
...
We can do it, because we use :transaction strategy with DatabaseCleaner,
which starts transaction before each test and rollbacks after it. That
way data before each test is consistent.
The big advantage of such approach is that tests are fast now - we need
to only load Scenario data once.
One of the drawbacks, on the other hand, is that we need to always load
this data, even if no integration tests need running.
We can try to be smart about it and check if any integration tests are
loaded.
2013-01-26 00:00:42 +01:00
Piotr Sarnacki
36c40da55d
Fix workers tests
2013-01-24 14:37:05 +01:00
Konstantin Haase
07c5f6b61f
add extension that keeps track of route pattern
2013-01-23 15:22:06 +01:00
Piotr Sarnacki
e6899b3ce6
Allow to remove ansi chars from plain text log
2013-01-15 02:27:06 +01:00
Piotr Sarnacki
70cd6ef092
Allow to download logs in plain text
2013-01-15 02:23:02 +01:00
Konstantin Haase
01fe983a0c
pass if scope does not match
2013-01-13 20:08:56 +01:00
Konstantin Haase
cc2a1cd50e
do not require user scope for /auth/github
2013-01-11 17:48:30 +01:00
Konstantin Haase
3d6defe3b1
do not store token from /auth/github
2013-01-11 16:49:08 +01:00
Konstantin Haase
ada6ee0f2c
fix scope check
2013-01-11 16:20:53 +01:00
Konstantin Haase
94d8a3cd2e
fix failing spec
2013-01-07 21:02:00 +01:00
Konstantin Haase
b005047d95
rename token parameter to github_token for /auth/github
2012-12-12 18:30:55 +01:00
Konstantin Haase
bc1c960c20
add travis_token scope
2012-12-12 17:11:25 +01:00
Sven Fuchs
de16fb07f8
test result images based on the content-disposition header, fix content-disposition header
2012-12-12 15:19:27 +01:00
Sven Fuchs
d113833e9a
fix xml responder and result image specs
2012-12-09 16:02:00 +01:00
Sven Fuchs
751e88411b
adapt most specs for new states api, some stuff still failing
2012-12-09 15:16:50 +01:00
Piotr Sarnacki
440dacece3
Add endpoints for key regeneration
...
Enpoints are:
POST /repos/:id/key
and
POST /repos/:owner/:name/key
Both versions will replace current ssl key for given repo with the new
one.
2012-12-03 02:54:01 +01:00
Piotr Sarnacki
65637c5731
Add endpoint for getting repo public key
2012-11-26 02:26:34 +01:00
Sven Fuchs
353b5fa502
use registered services
2012-11-23 21:16:10 +01:00