:calls: `PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name} `_
(self, secret_name: str, unencrypted_value: str)
| 162 | return github.PublicKey.PublicKey(self._requester, headers, data, completed=True) |
| 163 | |
| 164 | def create_secret(self, secret_name: str, unencrypted_value: str) -> Secret: |
| 165 | """ |
| 166 | :calls: `PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name} <https://docs.github.com/en/rest/secrets#get-a-repository-secret>`_ |
| 167 | """ |
| 168 | assert isinstance(secret_name, str), secret_name |
| 169 | assert isinstance(unencrypted_value, str), unencrypted_value |
| 170 | public_key = self.get_public_key() |
| 171 | payload = public_key.encrypt(unencrypted_value) |
| 172 | put_parameters = { |
| 173 | "key_id": public_key.key_id, |
| 174 | "encrypted_value": payload, |
| 175 | } |
| 176 | quoted_secret_name = urllib.parse.quote(secret_name, safe="") |
| 177 | url = f"{self.url}/secrets/{quoted_secret_name}" |
| 178 | self._requester.requestJsonAndCheck("PUT", url, input=put_parameters) |
| 179 | return github.Secret.Secret( |
| 180 | self._requester, |
| 181 | url=url, |
| 182 | attributes={"name": secret_name}, |
| 183 | completed=False, |
| 184 | ) |
| 185 | |
| 186 | def get_secrets(self) -> PaginatedList[Secret]: |
| 187 | """ |
nothing calls this directly
no test coverage detected