Commit Graph
826 Commits
Author SHA1 Message Date
Kamil Trzcinski 73be775cd7 Fix ci_build trace trait 2016-02-19 19:31:57 +01:00
Kamil Trzcinski 55701d9c6c Fix specs 2016-02-19 18:30:43 +01:00
Kamil Trzcinski 921cfb66e6 Introduce API for serving the artifacts archive 2016-02-19 18:30:13 +01:00
Grzegorz Bizon 73c9d80bdc Record user that erased a build through API 2016-02-19 17:24:59 +01:00
Grzegorz Bizon 7d5a182624 Use POST method instead of DELETE when erasing a build
Discussion:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2560#note_3742042
2016-02-19 17:24:59 +01:00
Grzegorz Bizon 293999cabb Fix name of build erasable, remove superfluous method from it 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon 13f92521c2 Move build eraseable API to proper API context 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon df313634d0 Do not allow to modify build if it has been erased 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon 21152d7d51 Use DELETE verb for erasing a build content
Also added API specs for that
2016-02-19 17:24:59 +01:00
Tomasz Maczukin acfe25edc0 Refactorize ci_runner factory and let definitions in runners API spec 2016-02-19 13:18:49 +01:00
Tomasz Maczukin f8f492e589 Remove unnecessary parameters 2016-02-19 13:18:49 +01:00
Tomasz Maczukin a5540b385d Modify expectations for update runner feature 2016-02-19 13:18:48 +01:00
Tomasz Maczukin d38322b895 Change .map{...}.inject{...} to any?{...} for searching shared runners 2016-02-19 13:18:48 +01:00
Tomasz Maczukin 957c4de9b1 Reorganize let statements in spec/requests/api/runners_spec.rb 2016-02-19 13:18:48 +01:00
Tomasz Maczukin b36116f9ad Move :runner_id param to POST body when enabling specific runner in project 2016-02-19 13:18:48 +01:00
Tomasz Maczukin dc182dc50e Add some modifications to spec/requests/api/runners_spec.rb 2016-02-19 13:18:48 +01:00
Tomasz Maczukin 36e7ffea5d Fix runners filtering 2016-02-19 13:18:47 +01:00
Tomasz Maczukin 16b3368af3 Fix runners API spec 2016-02-19 13:18:47 +01:00
Tomasz Maczukin 81ced6f55b Split /runners entrypoint to /runners and /runners/all 2016-02-19 13:18:47 +01:00
Tomasz Maczukin 53f775ae6d Fix runners filtering in API 2016-02-19 13:18:46 +01:00
Tomasz Maczukin d42ced44d9 Add feature to enable/disable runner in project 2016-02-19 13:18:46 +01:00
Tomasz Maczukin 128be3c010 Add basic runners management API
- add feature to list runners
- add feature to show runners details
- add feature to delete runner
- add feature to update runner
2016-02-19 13:18:46 +01:00
Jacob Vosmaer a0ccb0731b Merge branch 'master' of https://gitlab.com/gitlab-org/gitlab-ce into git-archive-refactor 2016-02-17 11:30:42 +01:00
Douwe Maan 0807bd5130 Merge branch 'skakirill/gitlab-ce-api-merge-request-setup-milestone' into 'master'
API: Allow to set or update a merge-request's milestone

_Originally opened at !2107 by @ skakirill._

- - -


See merge request !2755
2016-02-12 08:39:18 +00:00
Rémy Coutable 973a7d040e Merge branch 'Schniz/gitlab-ce-feature/merge-request-closes-issues-in-api' into 'master'
Add merge_requests/:merge_request_id/closes_issues

_Originally opened at !2660 by @Schniz._

- - -

Added `/api/v3/projects/:id/merge_requests/:merge_request_id/closes_issues` route in the API for getting the issues that should be closed when a merge request merged successfully

See merge request !2779
2016-02-11 17:13:36 +00:00
Jacob Vosmaer 34a6f83d3e Fix API 2016-02-11 18:10:14 +01:00
Rémy Coutable b91d1890a8 Pass current_user to merge_request.closes_issues in API ans streamline MR API specs 2016-02-11 09:34:07 +01:00
Gal SchlezingerandRémy Coutable 78e36780be Added '/api/v3/projects/:id/merge_requests/:merge_request_id/closes_issues' route in the API
Added some documentation for it

Added to changelog

Added curl example and an attribute table

Moved the api route definition from "lib/api/issues.rb" to "lib/api/merge_requests.rb"

Fixed the attributes and changed the documentation to be at "merge_requests.md" too

Changed generic titles to more specific titles

added an underscore

added tests. it depends on a newer version of gitlab-test project
I'm doing a  since I need to add a branch to the `gitlab-test` repo

removed the before

using 'iid' instead of 'id' in the description to reference the issues. that makes the tests pass

Removed the 'closes-issues' key from test_env. so it should pass the tests

Moved the two initializations to the describe block

Changed the changelog
2016-02-11 09:34:07 +01:00
Robert Speicher 7ea60fbfc8 Merge remote-tracking branch 'dev/master' into 'master' 2016-02-09 12:13:58 -05:00
Douwe Maan 6b0801d4f3 Merge branch 'develop7/add-merge_status-to-merge-request-in-api' into 'master'
Expose MergeRequest#merge_status

_Originally opened at !2478 by @develop7._

- - -

This enables API users to see whether a merge request can be merged without conflicts.

See merge request !2756
2016-02-09 16:01:20 +00:00
Rémy Coutable 2d59a0ff44 Add a spec for setting/updating a MR's milestone via the API 2016-02-09 10:06:26 +01:00
Rémy Coutable f6a666bdc2 Add an API spec for MergeRequest#merge_status and properly document this resource 2016-02-08 17:18:44 +01:00
Kamil Trzcinski 311f407651 Fix commit status tests 2016-02-06 15:01:37 +01:00
Kamil Trzcinski 6fea7c386f Merge remote-tracking branch 'origin/master' into ci-permissions
# Conflicts:
#	app/views/projects/builds/index.html.haml
2016-02-04 13:16:48 +01:00
Grzegorz Bizon bf6d694837 Extract shared context level up in build specs
Also improve performance of specs by joining some of examples.
2016-02-04 10:24:14 +01:00
Grzegorz BizonandGrzegorz Bizon 020623f3bb Improve CI API specs related to operations on build
Conflicts:
	spec/factories/ci/builds.rb
2016-02-04 10:13:58 +01:00
Robert Speicher 8a85906a74 Merge branch 'support-akismet' into 'master'
Support Akismet spam checking for creation of issues via API

Currently any spam detected by Akismet for non-members via API will
be logged in a separate table in the admin page.

Closes #5612

See merge request !2266
2016-02-03 01:26:30 +00:00
Rémy Coutable 070a3079fc Add a spec for the API pagination Link header 2016-02-02 15:26:29 +01:00
Douglas Barbosa Alexandre eefc46e0d5 Fix rubocop offenses 2016-02-02 11:25:44 -02:00
Douglas Barbosa Alexandre a2bbf00477 Refactor spam filtering on issues API 2016-02-02 11:25:44 -02:00
Stan HuandDouglas Barbosa Alexandre d20e75a8d8 Support Akismet spam checking for creation of issues via API
Currently any spam detected by Akismet by non-members via API will be logged
in a separate table in the admin page.

Closes #5612
2016-02-02 11:25:44 -02:00
Kamil Trzcinski 055afab5c7 Make the CI permission model simpler
This MR simplifies CI permission model:
- read_build: allows to read a list of builds, artifacts and trace
- update_build: allows to cancel and retry builds
- create_build: allows to create builds from gitlab-ci.yml (not yet implemented)
- admin_build: allows to manage triggers, runners and variables
- read_commit_status: allows to read a list of commit statuses (including the overall of builds)
- create_commit_status: allows to create a new commit status using API

Remove all extra methods to manage permission.
Made all controllers to use explicitly the new permissions.
2016-02-02 09:18:08 +01:00
Dmitriy Zaporozhets dfb8803c1c Improve consistency and duplication for Merge Request API
* Follow REST for merge request API route
* Remove repeating comments API for MR

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-01-28 14:26:12 +01:00
Kamil Trzcinski 95d2f0fb51 Fix CI runner version not being properly updated when asking for a build
Due to broken implementation of attribute_for_keys the runner information was not updated correctly.

This MR adds test to check that such scenario will never happen again.
2016-01-27 12:04:54 +01:00
Josh Frye ae6080c791 Add specs. Adjust filter. 2016-01-19 09:57:00 -05:00
Douwe Maan c19795dff5 Merge branch 'ci/build_dependencies' into 'master'
Let the CI runner know about builds that this build depends on

This allows us to implement artifacts passing: runner will download artifacts from all prior builds. It will happen automatically, and always, as long as artifacts are enabled.

## The changes:

This MR exposes list of prior builds in CI::API::Builds.

**The API response when asking for builds**

```json
{
  "id": 48584,
  "ref": "0.1.1",
  "tag": true,
  "sha": "d63117656af6ff57d99e50cc270f854691f335ad",
  "status": "success",
  "name": "pages",
  "token": "9dd60b4f1a439d1765357446c1084c",
  "stage": "test",
  "project_id": 479,
  "project_name": "test",
  "commands": "echo commands",
  "repo_url": "http://gitlab-ci-token:token@gitlab.example/group/test.git",
  "before_sha": "0000000000000000000000000000000000000000",
  "allow_git_fetch": false,
  "options": {
    "image": "docker:image",
    "artifacts": {
      "paths": [
        "public"
      ]
    },
    "cache": {
      "paths": [
        "vendor"
      ]
    }
  },
  "timeout": 3600,
  "variables": [
    {
      "key": "CI_BUILD_TAG",
      "value": "0.1.1",
      "public": true
    }
  ],
  "dependencies": {
    "builds": [
      {
        "id": 48584,
        "ref": "0.1.1",
        "tag": true,
        "sha": "d63117656af6ff57d99e50cc270f854691f335ad",
        "status": "success",
        "name": "build",
        "token": "9dd60b4f1a439d1765357446c1084c",
        "stage": "build",
        "project_id": 479,
        "project_name": "test",
        "artifacts_file": {
          "filename": "artifacts.zip",
          "size": 0
        }
      }
    ]
  }
}
```

## How it will work?

**Example:**
```
build:
  type: build
  script:
  - echo TEST > test_file
  artifacts:
    untracked: true

rspec:
  type: test
  script:
  - test-my-project

staging:
  type: deploy
  script:
  - scp test_file root@server.com:
```

**The flow:**
1. We run `build`. The `build` creates a file `test_file`. This file gets archived and send us build artifacts.
2. We run `rspec`. The `rspec` downloads build artifacts from `build`. Uses the `test_file`.
3. We run `staging`. The `staging` downloads build artifacts from `build` and `rspec`, but since the `rspec` doesn't have build artifacts we skip that build. Deploys the `test_file`.

This partially implements the https://gitlab.com/gitlab-org/gitlab-ce/issues/3423.

In the next release we will introduce option to configure what artifacts are received.

/cc @grzesiek @DouweM @sytse @rspeicher


See merge request !2437
2016-01-15 15:54:35 +00:00
Kamil Trzcinski 1ce766367e Change dependencies.builds to depends_on_builds 2016-01-15 15:35:33 +01:00
Tomasz Maczukin 768721dc58 Merge branch 'master' into ci/api-triggers
* master: (150 commits)
  fixes margin and padding
  Update mailroom/postfix documentation [ci skip]
  Fix css mess around git clone panel. Align it properly
  Fix missing padding for user/group pages
  Fix parse_gollum_tags matcher
  Update documentation on Banzai::Filter::GollumTagsFilter
  Add tests for the wiki pipeline
  Refactoring Banzai::Filter::GollumTagsFilter
  Make sure the .git is at the end on Gitlab::GithubImport::WikiFormatter
  Remove GollumTagsPipeline
  Refactoring Gitlab::GithubImport::Importer
  Remove unnecessary brackets on WIKI_SLUG_ID route constraints
  Move js function to removing accents to vendor/assets/javascripts
  Update CHANGELOG
  Use the WikiPipeline when rendering the wiki markdown content
  Add Banzai::Filter::GollumTagsFilter for parsing Gollum's tags in HTML
  Relax constraints for wiki slug
  Import GitHub wiki into GitLab
  Move Ci::Build#available_statuses to AVAILABLE_STATUSES constant in CommitStatus
  Revert changes to how the notes are paginated in the API
  ...

Conflicts:
	doc/api/README.md
	lib/api/entities.rb
2016-01-14 21:58:17 +01:00
Kamil Trzcinski ac652d82f1 Let the CI runner know about builds that this build depends on
This allows us to implement artifacts passing: runner will download artifacts from all prior builds
2016-01-14 19:45:55 +01:00
Douwe Maan ba42b03348 Merge branch 'ci/api-builds' into 'master'
Add builds API

References #4264

See merge request !2207
2016-01-14 16:29:15 +00:00