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