Add package_registry_access_level attribute to gitlab_project resource
## Summary The `gitlab_project` resource currently supports `container_registry_access_level` and `model_registry_access_level` attributes, but lacks `package_registry_access_level`. The GitLab API now supports this attribute (merged in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170122), with values: `disabled`, `private`, `enabled`, `public`. The `public` value enables "Allow anyone to pull from Package Registry" per project. ## Use case We host a custom Terraform provider in a private GitLab project and publish binaries to the Generic Package Registry. Terraform needs anonymous HTTP access to download provider archives during `terraform init`. Setting `package_registry_access_level = "public"` allows anonymous download while keeping the project itself private. Currently this can be configured via: - **UI**: Settings → General → Visibility → Package Registry → "Allow anyone to pull from Package Registry" - **API**: `PUT /api/v4/projects/:id` with `{"package_registry_access_level": "public"}` (available since MR !170122) - **Terraform**: not yet supported ← this issue ## Proposal Add `package_registry_access_level` attribute to `gitlab_project` resource, following the same pattern as existing attributes: ```hcl resource "gitlab_project" "example" { name = "example" package_registry_access_level = "public" # disabled, private, enabled, public } ``` ## References - GitLab MR that added API support: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170122 - Similar attributes already in provider: `container_registry_access_level`, `model_registry_access_level` - Original GitLab issue for API endpoint: https://gitlab.com/gitlab-org/gitlab/-/work_items/454759 ## Implementation Guide - Follow the `CONTRIBUTING.md` guide for setting up your local development environment. - Clone the community fork of this project. - Add a new attribute called `package_registry_access_level` to `internal/provider/sdk/data_source_gitlab_projects.go`, `internal/provider/datasource_gitlab_project.go` and `internal/provider/sdk/resource_gitlab_project.go`. Look at the attribute `container_registry_access_level` to see where it needs to be added. - Update the acceptances tests to use the new attribute.
issue