Skip to content

Commit 89d708b

Browse files
committed
Adding nil check for repo.Owner
1 parent 0927341 commit 89d708b

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

github/resource_github_repository.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,9 @@ func resourceGithubRepositoryRead(d *schema.ResourceData, meta any) error {
838838
_ = d.Set("topics", flattenStringList(repo.Topics))
839839
_ = d.Set("node_id", repo.GetNodeID())
840840
_ = d.Set("repo_id", repo.GetID())
841-
_ = d.Set("owner", repo.GetOwner().GetLogin())
841+
if repo.Owner != nil {
842+
_ = d.Set("owner", repo.Owner.GetLogin())
843+
}
842844

843845
// GitHub API doesn't respond following parameters when repository is archived
844846
if !d.Get("archived").(bool) {

github/resource_github_repository_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2068,6 +2068,44 @@ func TestAccGithubRepository_fork(t *testing.T) {
20682068
})
20692069
}
20702070

2071+
func TestGithubRepositoryOwnerNilHandling(t *testing.T) {
2072+
d := schema.TestResourceDataRaw(t, resourceGithubRepository().Schema, map[string]any{
2073+
"name": "test-repo",
2074+
})
2075+
d.SetId("test-repo")
2076+
2077+
repo := &github.Repository{
2078+
Name: github.String("test-repo"),
2079+
FullName: github.String("test-org/test-repo"),
2080+
Owner: nil,
2081+
}
2082+
2083+
if repo.Owner != nil {
2084+
_ = d.Set("owner", repo.Owner.GetLogin())
2085+
}
2086+
2087+
owner, ok := d.GetOk("owner")
2088+
if ok && owner != "" {
2089+
t.Errorf("Expected owner to be empty when repo.Owner is nil, got: %v", owner)
2090+
}
2091+
2092+
repo.Owner = &github.User{
2093+
Login: github.String("test-owner"),
2094+
}
2095+
2096+
if repo.Owner != nil {
2097+
_ = d.Set("owner", repo.Owner.GetLogin())
2098+
}
2099+
2100+
owner, ok = d.GetOk("owner")
2101+
if !ok {
2102+
t.Error("Expected owner to be set when repo.Owner is not nil")
2103+
}
2104+
if owner != "test-owner" {
2105+
t.Errorf("Expected owner to be 'test-owner', got: %v", owner)
2106+
}
2107+
}
2108+
20712109
func createForkedRepository(repositoryName string) error {
20722110
config := Config{BaseURL: "https://api.github.com/", Owner: testOrganizationFunc(), Token: testToken}
20732111
meta, err := config.Meta()

0 commit comments

Comments
 (0)