Skip to content

feat: Add github_organization_security_configuration and github_enterprise_security_configuration resource - #3284

Open
sprioriello wants to merge 56 commits into
integrations:mainfrom
sprioriello:feat/organization-security-configuration
Open

feat: Add github_organization_security_configuration and github_enterprise_security_configuration resource#3284
sprioriello wants to merge 56 commits into
integrations:mainfrom
sprioriello:feat/organization-security-configuration

Conversation

@sprioriello

@sprioriello sprioriello commented Mar 16, 2026

Copy link
Copy Markdown

This commit adds a new resource github_organization_security_configuration & github_enterprise_security_configuration to manage Code Security Configurations at the organization & enterprise level respectively. It includes:

  • Resource implementation.
  • Acceptance tests.
  • Documentation.
  • Provider registration.

Resolves #2412


Before the change?

  • Resource not available.

After the change?

  • Implement code security configuration resource on organizational level.

Pull request checklist

  • Schema migrations have been created if needed (example)
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)

Does this introduce a breaking change?

Please see our docs on breaking changes to help!

  • Yes
  • No

Tests

==> Running acceptance tests on branch: 🌿 feat/organization-security-configuration 🌿...
TF_ACC=1 CGO_ENABLED=0 go test ./github/... -v -run '^TestAcc' -run='TestAccGithubOrganizationSecurityConfiguration'  -timeout 120m -count=1
=== RUN   TestAccGithubOrganizationSecurityConfiguration
=== RUN   TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_without_error
=== RUN   TestAccGithubOrganizationSecurityConfiguration/imports_organization_security_configuration_without_error
=== RUN   TestAccGithubOrganizationSecurityConfiguration/updates_organization_security_configuration_without_error
=== RUN   TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_options
=== RUN   TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_minimal_config
=== RUN   TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_delegated_bypass_options
--- PASS: TestAccGithubOrganizationSecurityConfiguration (67.76s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_without_error (13.93s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/imports_organization_security_configuration_without_error (11.92s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/updates_organization_security_configuration_without_error (15.15s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_options (8.70s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_minimal_config (8.84s)
    --- PASS: TestAccGithubOrganizationSecurityConfiguration/creates_organization_security_configuration_with_delegated_bypass_options (9.21s)
PASS
ok      github.com/integrations/terraform-provider-github/v6/github     68.139s
==> Running acceptance tests on branch: 🌿 feat/organization-security-configuration 🌿...
TF_ACC=1 CGO_ENABLED=0 go test ./github/... -v -run '^TestAcc' -run='TestAccGithubEnterpriseSecurityConfiguration'  -timeout 120m -count=1
=== RUN   TestAccGithubEnterpriseSecurityConfiguration
=== RUN   TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_without_error
=== RUN   TestAccGithubEnterpriseSecurityConfiguration/imports_enterprise_security_configuration_without_error
=== RUN   TestAccGithubEnterpriseSecurityConfiguration/updates_enterprise_security_configuration_without_error
=== RUN   TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_with_options
=== RUN   TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_with_minimal_config
--- PASS: TestAccGithubEnterpriseSecurityConfiguration (53.47s)
    --- PASS: TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_without_error (11.07s)
    --- PASS: TestAccGithubEnterpriseSecurityConfiguration/imports_enterprise_security_configuration_without_error (10.70s)
    --- PASS: TestAccGithubEnterpriseSecurityConfiguration/updates_enterprise_security_configuration_without_error (14.06s)
    --- PASS: TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_with_options (8.78s)
    --- PASS: TestAccGithubEnterpriseSecurityConfiguration/creates_enterprise_security_configuration_with_minimal_config (8.85s)
PASS
ok      github.com/integrations/terraform-provider-github/v6/github     53.817s

@github-actions

Copy link
Copy Markdown

👋 Hi! Thank you for this contribution! Just to let you know, our GitHub SDK team does a round of issue and PR reviews twice a week, every Monday and Friday! We have a process in place for prioritizing and responding to your input. Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labeled with Status: Up for grabs. You & others like you are the reason all of this works! So thank you & happy coding! 🚀

@github-actions github-actions Bot added the Type: Feature New feature or request label Mar 16, 2026
@sprioriello sprioriello changed the title feat: Add github_organization_security_configuration and github_enter… feat: Add github_organization_security_configuration and github_enterprise_security_configuration resource Mar 16, 2026
sprioriello and others added 4 commits March 17, 2026 19:31
…prise_security_configuration resources

Adds two new resources to manage Code Security Configurations:

- github_organization_security_configuration: manages code security
  configurations at the organization level
- github_enterprise_security_configuration: manages code security
  configurations at the enterprise level

Both resources include:
- Full CRUD operations using GitHub's Code Security Configurations API
- Composite IDs (org/enterprise + config ID)
- 404-tolerant delete
- tflog structured logging throughout
- All optional fields use GetOk to avoid sending unset values
- Custom import support
- Shared expandCodeSecurityConfigurationCommon helper to avoid duplication
- All 4 delegated fields on enterprise: code_scanning_delegated_alert_dismissal,
  secret_scanning_delegated_bypass, secret_scanning_delegated_bypass_options,
  secret_scanning_delegated_alert_dismissal
- Fix flattenCodeScanningDefaultSetupOptions runner_type empty string drift

Acceptance tests (5 per resource):
- creates without error (with import verification)
- updates without error
- creates with nested options (runner, autosubmit)
- creates with minimal config (with import verification)
- creates with delegated bypass options

Documentation added for both resources.

Resolves integrations#2412

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ppers

- Add setCodeSecurityConfigurationState() to util_security_configuration.go,
  replacing ~83 identical d.Set() lines duplicated across both Read functions
- Remove expandCodeSecurityConfiguration() and expandEnterpriseCodeSecurityConfiguration()
  one-liner wrappers; callers now call expandCodeSecurityConfigurationCommon() directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove fmt.Sprintf from all tflog calls; use static messages with
  structured fields map for dynamic data (28 instances fixed)
- Add configuration_id Computed field to both resources so the numeric
  config ID is stored separately in state
- Update/Delete now read enterprise_slug and configuration_id from
  state via d.Get() instead of parsing the composite ID
- Update enterprise docs with configuration_id attribute

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…n_id

- Add missing organization_security_configuration documentation
- Fix enterprise docs: description is Optional not Required
- Add configuration_id assertions to both test files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sprioriello
sprioriello force-pushed the feat/organization-security-configuration branch from 8b5e69b to 20f4c17 Compare March 17, 2026 08:38
…view feedback

- Upgrade go-github imports from v83 to v84 across all feature files
- Remove secret_scanning_delegated_bypass from enterprise resource (org-only API)
- Fix reviewer_type enum casing to TEAM/ROLE to match GitHub API
- Wire expandSecretScanningDelegatedBypass into org Create/Update
- Remove hardcoded "disabled" defaults for code_security/secret_protection
- Use GetOk for description field in expand (consistency with other Optional fields)
- Add unit tests for all flatten utility functions (deiga requested)
- Add missing ImportState steps to acceptance tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sprioriello

sprioriello commented Mar 17, 2026

Copy link
Copy Markdown
Author

@deiga ready for review. Thanks for your patience!

I have allowed edits by maintainers.

@deiga deiga left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Partial review.

Please take some time and look at lately merged PRs to understand what kind of structures we are looking for.
I don't have the energy to review thousands of lines of code, when you haven't put in the work to adhere to the standards of the repo

Comment thread github/resource_github_organization_security_configuration_test.go Outdated
Comment thread github/resource_github_organization_security_configuration_test.go
Comment thread github/resource_github_organization_security_configuration_test.go Outdated
Comment thread github/resource_github_organization_security_configuration.go Outdated
Comment thread github/resource_github_organization_security_configuration.go Outdated
Comment thread github/resource_github_organization_security_configuration.go Outdated
Comment thread github/resource_github_organization_security_configuration.go Outdated
…nventions

- Add custom importer functions so Read doesn't parse from ID
- Read fetches org/enterprise and configuration_id from state
- Create/Update return nil instead of calling Read directly
- Use diags.HasError() instead of diags != nil
- Use testResourcePrefix in all test resource names
- Extract import tests into separate t.Run blocks
- Inline test HCL templates instead of shared tmpl variables
… Read

Create and Update functions now set state directly from the API response
via setCodeSecurityConfigurationState, rather than only setting
configuration_id. Enterprise Update also captures the API response
instead of discarding it.
…escription

- Add CheckDestroy functions to all acceptance tests for both org and
  enterprise security configuration resources
- Cast configuration.GetID() to int to match schema.TypeInt
- Fix redundant "code security configuration for the code security
  configuration" description on the code_security field
@sprioriello

sprioriello commented Mar 23, 2026

Copy link
Copy Markdown
Author

Reviewed and looking at the recent PRs to add in the changes the maintainers are implementing to try and make it consistent. I hope we are much closer this time.

@sprioriello
sprioriello requested a review from deiga March 25, 2026 21:43
Comment thread github/resource_github_enterprise_security_configuration_test.go Outdated
Comment thread github/resource_github_organization_security_configuration.go Outdated
Comment thread github/util_security_configuration_test.go
Use single template string in enterprise update test, remove superfluous
buildID/SetId in import functions, refactor util tests to table-driven arrays.
@sprioriello
sprioriello requested a review from deiga March 26, 2026 22:12
Adds table-driven tests for expandCodeSecurityConfigurationCommon and
expandSecretScanningDelegatedBypass, covering minimal input, all string
fields, nested block options, and delegated bypass with reviewers.
Comment thread github/resource_github_organization_security_configuration.go Outdated
Drop the org name from the compound resource ID since it was never used —
Read/Update/Delete all get the org from meta.(*Owner).name. This aligns
with the convention used by other org-scoped resources (organization_ruleset,
organization_webhook, organization_custom_role, etc.).
@sprioriello
sprioriello requested a review from deiga April 11, 2026 11:17
@sprioriello

Copy link
Copy Markdown
Author

@deiga Thank you for taking the time to review this PR and for the detailed feedback across each round. All comments have been addressed. Looking forward to getting this feature out for the GitHub community!

@deiga deiga added this to the v6.13.0 Release milestone Apr 14, 2026
main has moved go-github from v88 to v89 (integrations#89.0.0). The security
configuration resources, helpers, and unit test were the only files
still importing v88, which broke the build once the branch was merged
with main (compile, CodeQL, strict linting, and docs generation all
failed with "no required module provides package .../v88/github").

Bump the import path to v89 in all four files; the API surface used is
unchanged. Build, vet, gofmt, golangci-lint (default + strict), and
tfplugindocs are all clean, with no docs drift.
@casey-robertson-paypal

casey-robertson-paypal commented Jul 20, 2026

Copy link
Copy Markdown

Thanks @stevehipwell — the automation failures were all one root cause: main bumped go-github v88 → v89, and this branch (34 commits behind) still imported v88 in the security-configuration files, so the merged-with-main build couldn't resolve the module. That cascaded into CI, CodeQL/Analyze (go), strict linting, and the docs job.

Fixed in sprioriello#10: merged main into the branch (bringing go.mod/go.sum and the rest of the repo to v89) and migrated the four remaining security-config files to v89. Validated locally — go build, go vet, gofmt, golangci-lint (default + strict), and tfplugindocs are all clean with no docs drift.

@sprioriello once the PR is merged the branch will be current with main and the checks should go green.

fix: update branch to main and migrate security-config to go-github v89
@sprioriello
sprioriello requested a review from stevehipwell July 20, 2026 11:04
@sprioriello

Copy link
Copy Markdown
Author

Thanks again @casey-robertson-paypalsprioriello#10 is now merged into feat/organization-security-configuration, so the branch is current with main (go-github v89) and the automation checks are green again.

@stevehipwell the CI / CodeQL (Analyze go) / strict-lint / docs failures you flagged traced back to that single v88→v89 root cause and are now resolved — the branch is green and mergeable. It's ready for another review whenever you have a moment. Thanks for the thorough passes!

Comment thread github/resource_github_enterprise_security_configuration.go Fixed
Comment thread github/resource_github_organization_security_configuration.go Fixed
Now that the branch builds on go-github v89, the strict "new code" lint
and CodeQL analysis run for the first time and flag the security
configuration code:

- forcetypeassert: every unchecked type assertion on d.Get/d.GetOk and
  the flatten unit-test results. Switch to the comma-ok form used
  elsewhere in the repo, and collapse the repetitive optional-string
  expansion into a shared expandOptionalString helper.
- CodeQL "incorrect integer conversion" (G115): the import functions
  parsed configuration_id with strconv.ParseInt (int64) then converted
  to int without a bound check. Use strconv.Atoi, which yields an int
  directly and matches the schema.TypeInt attribute.

Build, vet, gofmt, unit tests, and golangci-lint (default, strict, and
the generated new-code config) are all clean.
@casey-robertson-paypal

casey-robertson-paypal commented Jul 21, 2026

Copy link
Copy Markdown

Thanks @stevehipwell — you were right that these validate locally. Now that the branch builds on go-github v89, the strict "new code" linter and CodeQL ran for the first time and surfaced two things, both fixed in sprioriello#11:

  1. forcetypeassert — switched every d.Get/d.GetOk and unit-test assertion to the comma-ok form used elsewhere in the repo, and collapsed the repetitive optional-string expansion into a small shared helper.
  2. CodeQL "incorrect integer conversion" (G115) — the import functions did int(strconv.ParseInt(..., 64)); replaced with strconv.Atoi, which returns an int directly and matches the TypeInt attribute.

I reproduced CI locally by generating the same .golangci.new.yml the lint-new job uses — golangci-lint (default, strict, and new-code), go build/vet/gofmt, unit tests, and tfplugindocs are all clean now, with no docs drift.

@sprioriello once sprioriello#11 is merged the remaining checks should go green. Sorry about all the iterations! So close. I'll do better to align future PRs with lessons learned from this one.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

These provider review instructions are being used.

Adds organization- and enterprise-level resources for managing GitHub Code Security Configurations. Blocking findings involve incomplete imported state, unsupported runner_type = "not_set", and missing permission documentation.

Changes:

  • Implements CRUD, import, schemas, and shared conversion helpers.
  • Adds provider registration and automated tests.
  • Adds examples, import commands, templates, and generated documentation.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
github/resource_github_organization_security_configuration.go Implements the organization resource.
github/resource_github_organization_security_configuration_test.go Adds organization acceptance tests.
github/resource_github_enterprise_security_configuration.go Implements the enterprise resource.
github/resource_github_enterprise_security_configuration_test.go Adds enterprise acceptance tests.
github/util_security_configuration.go Adds shared flattening helpers.
github/util_security_configuration_test.go Tests shared conversion behavior.
github/provider.go Registers both resources.
templates/resources/organization_security_configuration.md.tmpl Adds organization documentation template.
templates/resources/enterprise_security_configuration.md.tmpl Adds enterprise documentation template.
docs/resources/organization_security_configuration.md Adds generated organization documentation.
docs/resources/enterprise_security_configuration.md Adds generated enterprise documentation.
examples/resources/github_organization_security_configuration/resource_1.tf Demonstrates organization usage.
examples/resources/github_organization_security_configuration/import.sh Demonstrates CLI import.
examples/resources/github_organization_security_configuration/import-by-string-id.tf Demonstrates declarative import.
examples/resources/github_enterprise_security_configuration/resource_1.tf Demonstrates enterprise usage.
examples/resources/github_enterprise_security_configuration/import.sh Demonstrates enterprise CLI import.
examples/resources/github_enterprise_security_configuration/import-by-string-id.tf Demonstrates enterprise declarative import.

Comment thread github/resource_github_organization_security_configuration.go
Comment thread github/resource_github_enterprise_security_configuration.go
Comment thread github/resource_github_organization_security_configuration.go Outdated
Comment thread github/resource_github_enterprise_security_configuration.go Outdated
Comment thread templates/resources/organization_security_configuration.md.tmpl Outdated
Comment thread templates/resources/enterprise_security_configuration.md.tmpl Outdated
@casey-robertson-paypal

Copy link
Copy Markdown

@stevehipwell Copilot's review here is advisory — a quick triage, deferring to your guidance on all of it:

  • Import / Optional+Computed (2 comments): this would reverse the Optional-only design we landed earlier (recovering unset values via the planned data source [FEAT]: Data sources for code security configurations #3505), so I've left it as-is unless you'd prefer to revisit.
  • runner_type = "not_set" (2 comments): accurate — the REST docs list not_set for both org and enterprise. Happy to add it to the validation + docs if you'd like.
  • Token scopes / security managers in docs (2 comments): also accurate (write:org + security managers for org, admin:enterprise for enterprise). Happy to add these notes.

Glad to push a small follow-up for the last two if you want them in this PR, or leave them for later — your call. Worth noting all CI checks are green now.

Addresses the remaining Copilot review comments on integrations#3284.

code_scanning_default_setup_options.runner_type rejected "not_set", which
the REST API accepts for both the organization and enterprise endpoints, so
there was no way to reset a previously configured runner selection: removing
the block only omits it from the PATCH. Widen the validation to include it.

go-github declares RunnerType as a plain string with `json:"runner_type"` and
no omitempty, so declaring the block without runner_type serialised
"runner_type": "" and the API rejected the request. Default to "not_set" so
that path is valid.

The doc templates named only "organization admin" / "enterprise admin" access
and no token scope. The org endpoints also permit security managers and need
write:org for classic PATs; the enterprise endpoints need admin:enterprise.
State the role and scope and link to the REST reference for the full list,
per the "Permissions and Scopes" guidance in docs.instructions.md.

Docs regenerated with tfplugindocs.
@sprioriello

sprioriello commented Jul 30, 2026

Copy link
Copy Markdown
Author

@casey-robertson-paypal thanks for the triage — took your read on it and pushed f5139b05, landing two of your three buckets.

runner_type = "not_set" — validation is now standard | labeled | not_set on both resources, confirmed against the REST reference. Also added Default: "not_set", which wasn't in Copilot's comment: go-github declares RunnerType string with no omitempty, so declaring the block without runner_type was sending "runner_type": "" and the API rejected it. The two changes are independent if @stevehipwell wants it kept minimal.

Token scopes / security managers — both templates now name the role and classic-PAT scope (write:org / admin:enterprise) and link to the REST reference for the full list rather than duplicating it, per the "Permissions and Scopes" guidance in docs.instructions.md. Docs regenerated.

Import / Optional+Computed — left as-is per your call; it would reverse the design in this comment. Replied on both threads and left them unresolved. Flagged there for @stevehipwell that schema-and-state.instructions.md ("Read functions must populate every state attribute … so terraform import works from the resource ID alone") is what generates this finding, so Copilot will re-raise it every round until that's settled either way.

CI/CodeQL are in action_required — fork pushes need maintainer approval before they'll report.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@sprioriello

Copy link
Copy Markdown
Author

@stevehipwell this is ready for another review when you have a moment.

Since your last pass:

  • Branch is current with main (f8f74c92) — merged cleanly, no conflicts, now 0 behind.
  • runner_type = "not_set" added to both resources, confirmed against the REST reference. Also added Default: "not_set", since go-github declares RunnerType string with no omitempty and the block without runner_type was sending "runner_type": "". The two changes are independent if you'd rather keep it minimal.
  • Token scopes documented in both templates — role plus classic-PAT scope (write:org / admin:enterprise) inline, linking to the REST reference for the full list per the "Permissions and Scopes" guidance in docs.instructions.md.

Build, vet, unit tests, golangci-lint (default + strict) and tfplugindocs generate/validate are all clean locally with no doc drift.

One thing that needs your call, on the two review threads I left unresolved: Copilot wants Optional + Computed with full state population in Read for import, which would reverse the Optional-only design you asked for in this comment. I've left it as-is. Worth noting it's the repo's own schema-and-state.instructions.md generating the finding — "Read functions must populate every state attribute from API responses so terraform import works from the resource ID alone" — so it'll come back every review round until either that rule gets a carve-out for Optional-only resources or these resources conform. Happy to implement whichever you prefer.

Also, CI and CodeQL are sitting in action_required — fork pushes need your approval before they'll run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated no new comments.

Suppressed comments (4)

github/resource_github_organization_security_configuration.go:485

  • github.CodeSecurityConfiguration.Description is a non-pointer field tagged as json:"description", so this conditional does not omit the field: an unset Terraform value is still sent as "description":"". Updating any other setting after import or out-of-band edits will therefore erase a remote description that this Optional-only design otherwise treats as unmanaged. Preserve the current description when it is absent from configuration, or use a PATCH payload that can truly omit it.
	if val, ok := d.GetOk("description"); ok {
		config.Description, _ = val.(string)
	}

github/resource_github_enterprise_security_configuration.go:435

  • github.CodeSecurityConfiguration.Description is a non-pointer field tagged as json:"description", so this conditional does not omit the field: an unset Terraform value is still sent as "description":"". Updating any other setting after import or out-of-band edits will therefore erase a remote description that this Optional-only design otherwise treats as unmanaged. Preserve the current description when it is absent from configuration, or use a PATCH payload that can truly omit it.
	if val, ok := d.GetOk("description"); ok {
		config.Description, _ = val.(string)
	}

github/resource_github_organization_security_configuration_test.go:90

  • These API-facing acceptance scenarios only assert configuration_id, so they would still pass if the configured security settings and nested options were dropped by expansion or refresh. Add state checks for representative scalar and nested values, plus an update step that verifies those values round-trip; the delegated-bypass scenario should also assert its reviewer fields.
					Config: config,
					ConfigStateChecks: []statecheck.StateCheck{
						statecheck.ExpectKnownValue("github_organization_security_configuration.test", tfjsonpath.New("configuration_id"), knownvalue.NotNull()),
					},

github/resource_github_enterprise_security_configuration_test.go:92

  • These API-facing acceptance scenarios only assert configuration_id, so they would still pass if the configured security settings and nested options were dropped by expansion or refresh. Add state checks for representative scalar and nested values and an update step that verifies those values round-trip.
					Config: config,
					ConfigStateChecks: []statecheck.StateCheck{
						statecheck.ExpectKnownValue("github_enterprise_security_configuration.test", tfjsonpath.New("configuration_id"), knownvalue.NotNull()),
					},

@casey-robertson-paypal

Copy link
Copy Markdown

@stevehipwell Good day Steve! Anything myself or @sprioriello can do to help move this one forward? Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New resource Type: Feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT]: Code Security Configuration

6 participants