a2ce5188fb
Allow creating Personal Access Tokens through the website Related to #2979 - Allow a user to create personal access tokens, and use them to authenticate - Refactor `API::Helpers` into `API::Helpers::Core` and `API::Helpers::Authentication` # Tasks - [ ] #2979 (!3749) - Personal Access Tokens - [x] Basic Implementation - [x] Add UI to add "Personal Access Tokens" - [x] Reload `lib/api` on every request - [x] Respect these tokens for API requests - [x] Just a param or a header too? - [x] Allow revoking tokens - [x] Expire tokens - [x] Left bar should have a "PAT" icon - [x] Scopes? - [x] Copy to Clipboard - [x] Show active/inactive tokens separately - [x] No need to check for expired/revoked in the appropriate places - [x] Why does regular ApplicationController check for private token? - [x] Support non-API requests - [x] Revert (or work on) `lib/api` eager loading - [x] Create MR - [x] Refactoring - [x] Fix tests - [x] Write more tests - [x] Add screenshots to MR - [x] Add description of query performance to MR - [x] Limit the number of queries in the `personal_access_tokens` page - [x] Wait for CI to pass - [x] Fix merge issues in schema.rb - [x] Assign MR to endboss - [x] Wait for feedback - [x] Fix feedback - [x] Wait for CI to pass - [x] Assign to @rspeicher - [x] Fix @rspeicher's comments - [x] Wait for CI to pass - [x] Assign back to @rspeicher - [x] Write documentation and ping @axil - [x] Wait for Axil to respond - [x] Assign to endboss - [x] Address Douwe's feedback - [x] Use the `private_token` or `authentication_token` param instead of `personal_access_token` - [x] Ditto for the header - [x] Assign to endboss - [x] Make sure CI is green - [x] Address Douwe's feedback - [x] Don't go through the `authenticate_user_from_private_token!` method, if a private token is supplied (or combine them) - [x] In `authenticate_user_from_personal_access_token!` don't hit DB if `token_string` is `nil` - [x] Use `current_user.personal_access_tokens.build` in the controller - [x] Remove the "We aren't using `personal_access_token` as the root param" comment - [x] `No need for = "...", we can just have the Inactive ... #{...} on the next line` in the view - [x] Render dates in a (more) human format - [x] CSS issue with table - [x] Don't show the tokens in the UI indefinitely - [x] How to implement scopes? Add-on to current impl? Doorkeeper? - [x] Wait for @DouweM's comments about scopes - [x] Address @DouweM's second review - [x] Try not using `native['innerHTML']` - [x] use contexts for all "when ..." - [x] Ensure consistency (styling) with other pages for "You don't have any tokens" message - [x] "Actions" table column doesn't need a label - [x] %td can be moved outside of the if/else statement - [x] The header title should be "Profile Settings" - [x] Can this be a `before_create`, so we don't need to use `generate`? - [x] If it couldn't be revoked, will we show an error? - [x] If it couldn't be saved, will we show an error? - [x] Merge master - [x] Update CHANGELOG entry - [x] Add tests for form errors? - [x] Post screenshots - [x] Tag @jschatz1 for review - [x] Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/0dff6fd/builds) to pass - [x] Respond to @jschatz1's comments - [x] Hardcoded colors should be variables - [x] Should not be allowed to chose a date in the past - [x] Use the same table as in the Applications tab - [x] button should say "Create Personal Access Token" - [x] Float the revoke to the right on the `a` - [x] Change revocation message. "Are you sure you want to revoke this certificate? This action cannot be undone." - [x] Date stays selected and looks selected even though date is set as "never". - [x] ~~hover on the calendar button shifts~~ (not caused by this MR - happens on `milestones#new` as well) - [x] Don't use the panel for the created token - [x] Use a normal flash for "Your new personal access token has been created" - [x] Show the input (with the token) below it full width. - [x] Put the "Make sure you save it - you won't be able to access it again." message near the input - [x] Have the input highlight all on single click - [x] Update screenshots - [x] Merge master in + conflicts - [x] Assign to @jschatz1 again - [x] Respond to @jschatz1's comments - [x] No button for clipboard, only link - [x] text-danger - [x] highlight fade on that area where the token was created - [x] Make sure [build]( |
||
---|---|---|
.. | ||
administration | ||
api | ||
ci | ||
container_registry | ||
customization | ||
development | ||
downgrade_ee_to_ce | ||
gitlab-basics | ||
hooks | ||
incoming_email | ||
install | ||
integration | ||
intro | ||
legal | ||
logs | ||
markdown | ||
migrate_ci_to_ce | ||
monitoring | ||
operations | ||
permissions | ||
profile | ||
project_services | ||
public_access | ||
raketasks | ||
security | ||
ssh | ||
system_hooks | ||
update | ||
web_hooks | ||
workflow | ||
README.md |
README.md
Documentation
User documentation
- API Automate GitLab via a simple and powerful API.
- CI GitLab Continuous Integration (CI) getting started,
.gitlab-ci.yml
options, and examples. - GitLab as OAuth2 authentication service provider. It allows you to login to other applications from GitLab.
- GitLab Basics Find step by step how to start working on your commandline and on GitLab.
- Importing to GitLab.
- Markdown GitLab's advanced formatting system.
- Migrating from SVN Convert a SVN repository to Git and GitLab
- Permissions Learn what each role in a project (external/guest/reporter/developer/master/owner) can do.
- Profile Settings
- Project Services Integrate a project with external services, such as CI and chat.
- Public access Learn how you can allow public and internal access to projects.
- Container Registry Learn how to use GitLab Container Registry.
- SSH Setup your ssh keys and deploy keys for secure access to your projects.
- Webhooks Let GitLab notify you when new code has been pushed to your project.
- Workflow Using GitLab functionality and importing projects from GitHub and SVN.
Administrator documentation
- Authentication/Authorization Configure external authentication with LDAP, SAML, CAS and additional Omniauth providers.
- Custom git hooks Custom git hooks (on the filesystem) for when webhooks aren't enough.
- Install Requirements, directory structures and installation from source.
- Restart GitLab Learn how to restart GitLab and its components
- Integration How to integrate with systems such as JIRA, Redmine, Twitter.
- Issue closing Customize how to close an issue from commit messages.
- Libravatar Use Libravatar for user avatars.
- Log system Log system.
- Environment Variables to configure GitLab.
- Operations Keeping GitLab up and running
- Raketasks Backups, maintenance, automatic webhook setup and the importing of projects.
- Repository checks Periodic Git repository checks
- Security Learn what you can do to further secure your GitLab instance.
- System hooks Notifications when users, projects and keys are changed.
- Update Update guides to upgrade your installation.
- Welcome message Add a custom welcome message to the sign-in page.
- Reply by email Allow users to comment on issues and merge requests by replying to notification emails.
- Migrate GitLab CI to CE/EE Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE.
- Git LFS configuration
- Housekeeping Keep your Git repository tidy and fast.
- GitLab Performance Monitoring Configure GitLab and InfluxDB for measuring performance metrics
- Monitoring uptime Check the server status using the health check endpoint
- Sidekiq Troubleshooting Debug when Sidekiq appears hung and is not processing jobs
- High Availability Configure multiple servers for scaling or high availability
- Container Registry Configure Docker Registry with GitLab
Contributor documentation
- Documentation styleguide Use this styleguide if you are contributing to documentation.
- Development Explains the architecture and the guidelines for shell commands.
- Legal Contributor license agreements.