Skip to content

Improve gradle QA scenario

David Fernandez requested to merge 10io-qa-add-pull-test-for-gradle into master

🦀 What does this MR do?

  • This MR adds a pull package part to the existing gradle QA scenario

While at it, I added some additional changes regarding

test improvements:

  • When pulling, we only tested personal access tokens for the authentication. I updated that part and created 3 different examples that will pull the package using: a personal access token, a project deploy token and the ci job token. I used a table based spec for that.

potential problems:

  • I noticed that the scenario logs in twice. Once for creating the runner, once for creating a personal access token. I login in a before block to avoid this duplicate action
  • The personal access token is created twice. Once to create the project (via creating the runner) and once for the scenario. I removed the one from the scenario and simply re-used the one set up when creating the runner.
  • The package was removed through UI actions whereas there is a #remove_via_api! function implemented in the package resource. That function had a ~bug that I fixed. This way, there is no need to delete the package using the UI 💪
  • The deploy token resource did not support the read_package_registry scope. I added that.
  • The project's visibility hosting the package should be private. A public visibility can result in false positives because the permission logic can sometimes allow an access with wrong credentials because the accessed resource is public.

🔮 Possible follow ups

I'm not happy with the current state of the scenario. When running the whole file, we have 3 examples to go through:

  1. create a project and a package
  2. pull pacakge

(1.) could be done only once for all 3 examples and the package could be re-used across examples = faster execution time 🚀. I tried to add that but ended up with too many changes and I was using instance variables, something I'd like to avoid in a spec.

I left this problem for a potential follow up.

🖼 Screenshots (strongly suggested)

n / a

📏 Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by David Fernandez

Merge request reports