Skip to content

Commit

Permalink
[#116] Made retrieval of organization setting readers_can_create_disc…
Browse files Browse the repository at this point in the history
…ussions optional.
  • Loading branch information
netomi committed Oct 9, 2023
1 parent 6fa0405 commit 09e0a44
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@

### Fixed

- Made retrieval of organization setting `readers_can_create_discussions` optional as it's not available for empty organizations. ([#116](https://gitlab.eclipse.org/eclipsefdn/security/otterdog/-/issues/116))
- Fixed resetting apply operation when running it on multiple organizations at the same time.
- Fixed retrieving repository secrets for temporary private clone repositories.

Expand Down
4 changes: 4 additions & 0 deletions otterdog/providers/github/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def _retrieve_settings(self, org_id: str, included_keys: set[str], page: Page) -

for setting_def in page_def:
setting = setting_def["name"]
optional = setting_def["optional"]
utils.print_trace(f"checking setting '{setting}'")

if setting not in included_keys:
Expand Down Expand Up @@ -115,6 +116,9 @@ def _retrieve_settings(self, org_id: str, included_keys: set[str], page: Page) -
utils.print_trace(f"retrieved setting for '{setting}' = '{value}'")

except Exception as e:
if optional:
continue

if utils.is_debug_enabled():
page_name = page_url.split("/")[-1]
screenshot_file = f"screenshot_{page_name}.png"
Expand Down
20 changes: 11 additions & 9 deletions otterdog/resources/github-web-settings.jsonnet
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
local newInput(type, valueSelector, name, inputName = name) = {
local newInput(type, valueSelector, name, inputName = name, optional = false) = {
name: name,
type: type,
optional: optional,
preSelector: null,
valueSelector: valueSelector,
selector: 'input[type="%s"][name="%s"]' % [type, inputName],
save: 'form:has(%s) button[type="submit"]' % self.selector
};

local newCheckbox(name, inputName = name) =
newInput('checkbox', 'checked', name, inputName);
local newCheckbox(name, inputName = name, optional = false) =
newInput('checkbox', 'checked', name, inputName, optional);

local newTextInput(name, inputName = name) =
newInput('text', 'value', name, inputName);
local newTextInput(name, inputName = name, optional = false) =
newInput('text', 'value', name, inputName, optional);

local newRadioInput(name, inputName = name) =
newInput('radio', 'value', name, inputName);
local newRadioInput(name, inputName = name, optional = false) =
newInput('radio', 'value', name, inputName, optional);

local newSelectMenuInput(name, inputName, saveInputName, preSelector = null) = {
local newSelectMenuInput(name, inputName, saveInputName, preSelector = null, optional = false) = {
name: name,
optional: optional,
type: 'select-menu',
preSelector: preSelector,
valueSelector: 'innerText',
Expand All @@ -31,7 +33,7 @@ local newSelectMenuInput(name, inputName, saveInputName, preSelector = null) = {
newCheckbox('members_can_change_repo_visibility'),
newCheckbox('members_can_delete_repositories'),
newCheckbox('members_can_delete_issues'),
newCheckbox('readers_can_create_discussions'),
newCheckbox('readers_can_create_discussions', optional = true),
newCheckbox('members_can_create_teams')
],

Expand Down

0 comments on commit 09e0a44

Please sign in to comment.