@@ -2,17 +2,17 @@ package github
22
33import (
44 "context"
5- "fmt"
65 "net/url"
76
87 "github.com/google/go-github/v81/github"
98
9+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1010 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1111)
1212
1313func dataSourceGithubActionsEnvironmentSecrets () * schema.Resource {
1414 return & schema.Resource {
15- Read : dataSourceGithubActionsEnvironmentSecretsRead ,
15+ ReadContext : dataSourceGithubActionsEnvironmentSecretsRead ,
1616
1717 Schema : map [string ]* schema.Schema {
1818 "full_name" : {
@@ -55,20 +55,18 @@ func dataSourceGithubActionsEnvironmentSecrets() *schema.Resource {
5555 }
5656}
5757
58- func dataSourceGithubActionsEnvironmentSecretsRead (d * schema.ResourceData , meta any ) error {
59- ctx := context .Background ()
58+ func dataSourceGithubActionsEnvironmentSecretsRead (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
6059 client := meta .(* Owner ).v3client
6160 owner := meta .(* Owner ).name
6261 var repoName string
6362
6463 envName := d .Get ("environment" ).(string )
65- escapedEnvName := url .PathEscape (envName )
6664
6765 if fullName , ok := d .GetOk ("full_name" ); ok {
6866 var err error
6967 owner , repoName , err = splitRepoFullName (fullName .(string ))
7068 if err != nil {
71- return err
69+ return diag . FromErr ( err )
7270 }
7371 }
7472
@@ -77,23 +75,23 @@ func dataSourceGithubActionsEnvironmentSecretsRead(d *schema.ResourceData, meta
7775 }
7876
7977 if repoName == "" {
80- return fmt .Errorf ("one of %q or %q has to be provided" , "full_name" , "name" )
78+ return diag .Errorf ("one of %q or %q has to be provided" , "full_name" , "name" )
8179 }
8280
8381 repo , _ , err := client .Repositories .Get (ctx , owner , repoName )
8482 if err != nil {
85- return err
83+ return diag . FromErr ( err )
8684 }
8785
8886 options := github.ListOptions {
89- PerPage : 100 ,
87+ PerPage : maxPerPage ,
9088 }
9189
9290 var all_secrets []map [string ]string
9391 for {
94- secrets , resp , err := client .Actions .ListEnvSecrets (ctx , int (repo .GetID ()), escapedEnvName , & options )
92+ secrets , resp , err := client .Actions .ListEnvSecrets (ctx , int (repo .GetID ()), url . PathEscape ( envName ) , & options )
9593 if err != nil {
96- return err
94+ return diag . FromErr ( err )
9795 }
9896 for _ , secret := range secrets .Secrets {
9997 new_secret := map [string ]string {
@@ -109,8 +107,15 @@ func dataSourceGithubActionsEnvironmentSecretsRead(d *schema.ResourceData, meta
109107 options .Page = resp .NextPage
110108 }
111109
112- d .SetId (buildTwoPartID (repoName , envName ))
113- _ = d .Set ("secrets" , all_secrets )
110+ if id , err := buildID (repoName , escapeIDPart (envName )); err != nil {
111+ return diag .FromErr (err )
112+ } else {
113+ d .SetId (id )
114+ }
115+
116+ if err := d .Set ("secrets" , all_secrets ); err != nil {
117+ return diag .FromErr (err )
118+ }
114119
115120 return nil
116121}
0 commit comments