Skip to content

Bug: Repositories.UpdateRulesetClearBypassActor serializes bypass_actors as null (expects empty array) #3726

@MathieuSevegny

Description

@MathieuSevegny

The method Repositories.UpdateRulesetClearBypassActor constructs a rulesetClearBypassActors instance with the BypassActors field left at its zero value. In Go, the zero value for a slice (such as []*BypassActor) is nil, not an empty slice. When serialized, a nil slice becomes null in JSON, which violates the GitHub API’s requirement for bypass_actors to be an array. As a result, the API returns a 422 error:

PUT https://api.github.com/repos/<organization>/<repo>/rulesets/<ruleset_id>: 422 Invalid request.

Invalid property /bypass_actors: data cannot be null. []

Here's the current code :

rsClearBypassActor := rulesetClearBypassActors{}

To comply with the API’s expectations, we can initialize BypassActors as an empty slice so it serializes to [] instead of null:

rsClearBypassActor := rulesetClearBypassActors{
    BypassActors: []*BypassActor{},
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions