@@ -208,29 +208,21 @@ def add_dependabot_secret(token, target_repository, secret_name, secret_value, r
208208def update_dependabot_secret (token , target_repository , secret_name , secret_value , repoOwner ):
209209 repo_name = target_repository .name
210210 repo_owner = repoOwner
211- key_id , key = get_repo_public_key (token , repo_owner , repo_name )
212- query_url = f"https://api.github.com/repos/{ repo_owner } /{ repo_name } /dependabot/secrets"
213- headers = {'Authorization' : f'token { token } ' }
214- r = requests .get (query_url , headers = headers )
215- response = r .json ()
216- try :
217- secret_names = flatten_secrets_dict (response ["secrets" ])
218- except :
219- secret_names = []
220- if secret_name not in secret_names :
221- # patch call update repo secrets to dependabot secrets
222- url = f"https://api.github.com/repos/{ repo_owner } /{ repo_name } /dependabot/secrets/{ secret_name } "
211+ headers = {
212+ 'Authorization' : f'token { token } ' ,
213+ 'Accept' : 'application/vnd.github+json'
214+ }
223215
224- data = {
225- "encrypted_value" : encrypt ( key , secret_value ),
226- "key_id" : key_id
227- }
228- response = requests .patch ( url , headers = headers , data = json . dumps ( data ) )
229- print (f"Response Code: { response .status_code } " )
230- if response .status_code == 204 :
231- print (f"dependabot Secret \" { secret_name } \" updated in { repo_name } " )
232- else :
233- print (f"dependabot Secret \" { secret_name } \" could NOT be updated in { repo_name } " )
216+ key_id , key = get_repo_public_key ( token , repo_owner , repo_name )
217+ put_url = f"https://api.github.com/repos/ { repo_owner } / { repo_name } /dependabot/secrets/ { secret_name } "
218+ encrypted_value = encrypt ( key , secret_value )
219+ body = { "encrypted_value" : encrypted_value , "key_id" : key_id }
220+ put_resp = requests .put ( put_url , headers = headers , json = body )
221+ print (f"Create (update) Response Code: { put_resp .status_code } " )
222+ if put_resp .status_code in ( 201 , 204 ) :
223+ print (f"dependabot Secret \" { secret_name } \" updated in { repo_name } " )
224+ else :
225+ print (f"dependabot Secret \" { secret_name } \" could NOT be updated in { repo_name } . Response: { put_resp . text } " )
234226
235227def delete_dependabot_secret (token , target_repository , secret_name , repoOwner ):
236228 repo_name = target_repository .name
@@ -307,4 +299,4 @@ def delete_dependabot_secret(token, target_repository, secret_name, repoOwner):
307299 repo .delete_secret (inp .secret_names [i ])
308300 print (f"Secret \" { inp .secret_names [i ]} \" removed from { repo .name } " )
309301 except UnknownObjectException :
310- print (f"The provided token does not have permission to manage { repo .name } , it is being skipped" )
302+ print (f"The provided token does not have permission to manage { repo .name } , it is being skipped" )
0 commit comments