- 16 Dec, 2016 23 commits
-
-
Timothy Andrew authored
- Don't define "allowed environment variables" in two places. - Dispatch to different arities of `Popen.open` without an if/else block. - Use `described_class` instead of explicitly stating the class name within a - spec. - Remove `git_environment_variables_validator_spec` and keep the validation inline.
-
Timothy Andrew authored
-
Timothy Andrew authored
Previously, we were calling out to `popen` without asserting on the returned exit-code. Now we raise a `RuntimeError` if the exit code is non-zero.
-
Timothy Andrew authored
The list of environment variables in `Gitlab::Git::RevList` need to be validate to make sure that they don't reference any other project on disk. This commit mixes in `ActiveModel::Validations` into `Gitlab::Git::RevList`, and validates that the environment variables are on the level (using a custom validator class). If the validations fail, the force push is still executed without any environment variables set. Add specs for the validation using shared examples.
-
Timothy Andrew authored
1. Starting version 2.11, git changed the way the pre-receive flow works. - Previously, the new potential objects would be added to the main repo. If the pre-receive passes, the new objects stay in the repo but are linked up. If the pre-receive fails, the new objects stay orphaned in the repo, and are cleaned up during the next `git gc`. - In 2.11, the new potential objects are added to a temporary "alternate object directory", that git creates for this purpose. If the pre-receive passes, the objects from the alternate object directory are migrated to the main repo. If the pre-receive fails the alternate object directory is simply deleted. 2. In our workflow, the pre-recieve script (in `gitlab-shell) calls the `/allowed` endpoint, which calls out directly to git to perform various checks. These direct calls to git do _not_ have the necessary environment variables set which allow access to the "alternate object directory" (explained above). Therefore these calls to git are not able to access any of the new potential objects to be added during this push. 3. We fix this by accepting the relevant environment variables (GIT_ALTERNATE_OBJECT_DIRECTORIES, GIT_OBJECT_DIRECTORY) on the `/allowed` endpoint, and then include these environment variables while calling out to git. 4. This commit includes (whitelisted) these environment variables while making the "force push" check. A `Gitlab::Git::RevList` module is extracted to prevent `ForcePush` from being littered with these checks.
-
Rémy Coutable authored
EE: Resolve "Add a doorkeeper scope suitable for authentication" - EE counterpart for gitlab-org/gitlab-ce!5951 - Related to gitlab-org/gitlab-ce#20492 See merge request !946
-
Nick Thomas authored
Fix reconfigure link on doc/pages/administration.md The link had an extra `../` in it and wasn't working on https://docs.gitlab.com/ee/pages/administration.html#nginx-configuration See merge request !967
-
Timothy Andrew authored
The CE merge request renamed the `Oauth2::AccessTokenValidationService` and converted it from a module to a class. There are two invocations of this module/class that are EE-only, which needed to be updated.
-
Timothy Andrew authored
If we leave this as a regular migration, we could have the following flow: 1. Application knows nothing about scopes. 2. First migration runs, all existing personal access tokens have `api` scope 3. Application still knows nothing about scopes. 4. Second migration runs, all tokens created after this point have no scope 5. Application still knows nothing about scopes. 6. Tokens created at this time _should have the API scope, but instead have no scope_ 7. Application code is reloaded, application knows about scopes 8. Tokens created after this point only have no scope if the user deliberately chooses to have no scopes. Point #6 is the problem here. To avoid this, we move the second migration to a "post" migration, which runs after the application code is deployed/reloaded.
-
Timothy Andrew authored
`valid_api_token?` is a better name. Scopes are just (potentially) one facet of a "valid" token.
-
Timothy Andrew authored
- Previously, AccessTokenValidationService was a module, and all its public methods accepted a token. It makes sense to convert it to a class which accepts a token during initialization. - Also rename the `sufficient_scope?` method to `include_any_scope?` - Based on feedback from @rymai
-
Timothy Andrew authored
- The `scopes_form` partial can be used in the `admin/applications` view as well - Don't allow partials to access instance variables directly. Instead, pass in the instance variables as local variables, and use `local_assigns.fetch` to assert that the variables are passed in as expected. - Change a few instances of `render :partial` to `render` - Remove an instance of `required: false` in a view, since this is the default - Inline many instances of a local variable (`ip = 'ip'`) in `auth_spec`
-
Timothy Andrew authored
Split the existing feature spec into both feature and controller specs. Feature specs assert on browser DOM, and controller specs assert on database state.
-
Timothy Andrew authored
- Use whitespace to separate the setup, expectation and teardown phases.
-
Timothy Andrew authored
- Based on @dbalexandre's review - Extract token validity conditions into two separate methods, for personal access tokens and OAuth tokens.
-
Timothy Andrew authored
- The list of scopes that's displayed while creating a personal access token is identical to the list that's displayed while creating an OAuth application. Extract these into a partial. - The list of scopes that's displayed while in the show page for an OAuth token in the profile settings and admin settings are identical. Extract these into a partial.
-
Timothy Andrew authored
- Mainly whitespace changes. - Require the migration adding the `scope` column to the `personal_access_tokens` table to have downtime, since API calls will fail if the new code is in place, but the migration hasn't run. - Minor refactoring - load `@scopes` in a `before_action`, since we're doing it in three different places.
-
Timothy Andrew authored
-
Timothy Andrew authored
- This module is used for git-over-http, as well as JWT. - The only valid scope here is `api`, currently.
-
Timothy Andrew authored
- Move the `Oauth2::AccessTokenValidationService` class to `AccessTokenValidationService`, since it is now being used for personal access token validation as well. - Each API endpoint declares the scopes it accepts (if any). Currently, the top level API module declares the `api` scope, and the `Users` API module declares the `read_user` scope (for GET requests). - Move the `find_user_by_private_token` from the API `Helpers` module to the `APIGuard` module, to avoid littering `Helpers` with more auth-related methods to support `find_user_by_private_token`
-
Timothy Andrew authored
-
Timothy Andrew authored
-
Rémy Coutable authored
The issue was arising when `#current_user` was called a second time after a user was impersonated: the `User#is_admin?` check would be performed on it and it would fail. Signed-off-by: Rémy Coutable <remy@rymai.me>
-
- 15 Dec, 2016 9 commits
-
-
Fatih Acet authored
Adds hoverstates for collapsed Issue/Merge Request sidebar for Time tracking Icon This MR is part 2/2 of https://gitlab.com/gitlab-org/gitlab-ce/issues/25011 This adds the hover state for the time tracking icon, which is only in EE. ![2016-11-28_00.09.54](/uploads/a1ae70e10ad847c4980fa9eca3dcfe18/2016-11-28_00.09.54.gif) Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/25011 See merge request !918
-
James Edwards-Jones authored
-
Sean McGivern authored
Add user activities API Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/1311 See merge request !962
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
- 14 Dec, 2016 8 commits
-
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-