Admin Token API: Revoke Runner authentication token
-
Please check this box if this contribution uses AI-generated content (including content generated by GitLab Duo features) as outlined in the GitLab DCO & CLA. As a benefit of being a GitLab Community Contributor, you receive complimentary access to GitLab Duo.
What does this MR do and why?
This MR adds support for runner authentication tokens to the Admin Token API
. It deletes the runner when trying to revoke a runner authentication token.
References
- Issue: #514936 (closed)
- Epic: &15777
- Docs: https://docs.gitlab.com/ee/api/admin/token.html
MR acceptance checklist
MR Checklist ( @nwittstruck)
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the javascript style guides -
Conforms to the database guides
How to set up and validate locally
- Enable the feature flag with
rails c
:
Feature.enable(:api_admin_token_revoke)
-
You'll need to create a
personal access token
to access the token and therunner authentication
token that you'd like to query: -
Now you can retrieve information about this token:
curl -k --request POST \
--url 'https://gdk.test:3443/api/v4/admin/token' \
--header 'Authorization: Bearer <Admin Token from Step 2.>' \
--header 'Content-Type: application/json' \
--data '{"token": "glrt-token-from-step-2-2"}'
- Now, revoke the token:
curl -k --request DELETE \
--url 'https://gdk.test:3443/api/v4/admin/token \
--header 'Authorization: Bearer <Admin Token from Step 1.>' \
--header 'Content-Type: application/json' \
--data '{"token": "glrt-token-from-step-2-2"}'
- Query the token again - you should now see that the status changed to
Not Found
, as the runner no longer exists. You can also see this is in theAdmin UI
.
Related to #514936 (closed)
Edited by Nicholas Wittstruck