Skip to content

Playground

You can use the playground below to create and evaluate resource snippets to include in your jsonnet configuration:

output.json

Resource functions and default values

The following snippets illustrate the functions to create the supported resources with default values as defined in the default configuration used at the Eclipse Foundation.

orgs.newOrg('<github-id>') = {
  settings                          : {
    billing_email                     : "webmaster@eclipse-foundation.org",
    blog                              : null,
    company                           : null,
    default_branch_name               : "main",
    default_repository_permission     : "none",
    dependabot_alerts_enabled_for_new_repositories : true,
    dependabot_security_updates_enabled_for_new_repositories : true,
    dependency_graph_enabled_for_new_repositories : true,
    description                       : null,
    discussion_source_repository      : null,
    email                             : null,
    has_discussions                   : false,
    has_organization_projects         : true,
    has_repository_projects           : true,
    location                          : null,
    members_can_change_project_visibility : true,
    members_can_change_repo_visibility : false,
    members_can_create_private_repositories : false,
    members_can_create_public_pages   : true,
    members_can_create_public_repositories : false,
    members_can_create_teams          : false,
    members_can_delete_issues         : false,
    members_can_delete_repositories   : false,
    members_can_fork_private_repositories : false,
    name                              : null,
    packages_containers_internal      : true,
    packages_containers_public        : true,
    plan                              : "enterprise",
    readers_can_create_discussions    : true,
    security_managers                 : [
      "eclipsefdn-security",
    ],
    twitter_username                  : null,
    two_factor_requirement            : true,
    web_commit_signoff_required       : true,
    workflows                         : {
      actions_can_approve_pull_request_reviews : true,
      allow_action_patterns             : [],
      allow_github_owned_actions        : true,
      allow_verified_creator_actions    : true,
      allowed_actions                   : "all",
      default_workflow_permissions      : "read",
      enabled_repositories              : "all",
      selected_repositories             : [],
    },
  },
},
orgs.newOrgWebhook('<url>') = {
  active                            : true,
  content_type                      : "form",
  events                            : [],
  insecure_ssl                      : "0",
  secret                            : null,
  url                               : "<url>",
},
orgs.newOrgSecret('<name>') = {
  name                              : "<name>",
  selected_repositories             : [],
  value                             : null,
  visibility                        : "public",
},
orgs.newOrgVariable('<name>') = {
  name                              : "<name>",
  selected_repositories             : [],
  value                             : null,
  visibility                        : "public",
},
orgs.newRepo('<repo-name>') = {
  allow_auto_merge                  : false,
  allow_forking                     : true,
  allow_merge_commit                : false,
  allow_rebase_merge                : true,
  allow_squash_merge                : true,
  allow_update_branch               : true,
  archived                          : false,
  auto_init                         : true,
  branch_protection_rules           : [],
  default_branch                    : "main",
  delete_branch_on_merge            : true,
  dependabot_alerts_enabled         : true,
  dependabot_security_updates_enabled : false,
  description                       : null,
  environments                      : [],
  fork_default_branch_only          : true,
  forked_repository                 : null,
  gh_pages_build_type               : "disabled",
  gh_pages_source_branch            : null,
  gh_pages_source_path              : null,
  has_discussions                   : false,
  has_issues                        : true,
  has_projects                      : true,
  has_wiki                          : true,
  homepage                          : null,
  is_template                       : false,
  merge_commit_message              : "PR_TITLE",
  merge_commit_title                : "MERGE_MESSAGE",
  name                              : "<repo-name>",
  private                           : false,
  private_vulnerability_reporting_enabled : false,
  rulesets                          : [],
  secret_scanning                   : "enabled",
  secret_scanning_push_protection   : "enabled",
  secrets                           : [],
  squash_merge_commit_message       : "COMMIT_MESSAGES",
  squash_merge_commit_title         : "COMMIT_OR_PR_TITLE",
  template_repository               : null,
  topics                            : [],
  variables                         : [],
  web_commit_signoff_required       : true,
  webhooks                          : [],
  workflows                         : {
    actions_can_approve_pull_request_reviews : true,
    allow_action_patterns             : [],
    allow_github_owned_actions        : true,
    allow_verified_creator_actions    : true,
    allowed_actions                   : "all",
    default_workflow_permissions      : "read",
    enabled                           : true,
  },
},
orgs.newBranchProtectionRule('<pattern>') = {
  allows_deletions                  : false,
  allows_force_pushes               : false,
  blocks_creations                  : false,
  bypass_force_push_allowances      : [],
  bypass_pull_request_allowances    : [],
  dismisses_stale_reviews           : false,
  is_admin_enforced                 : false,
  lock_allows_fetch_and_merge       : false,
  lock_branch                       : false,
  pattern                           : "<pattern>",
  push_restrictions                 : [],
  require_last_push_approval        : false,
  required_approving_review_count   : "2",
  required_deployment_environments  : [],
  required_status_checks            : [
    "eclipse-eca-validation:eclipsefdn/eca",
  ],
  requires_code_owner_reviews       : false,
  requires_commit_signatures        : false,
  requires_conversation_resolution  : false,
  requires_deployments              : false,
  requires_linear_history           : false,
  requires_pull_request             : true,
  requires_status_checks            : true,
  requires_strict_status_checks     : false,
  restricts_pushes                  : false,
  restricts_review_dismissals       : false,
  review_dismissal_allowances       : [],
},
orgs.newRepoRuleset('<name>') = {
  allows_creations                  : false,
  allows_deletions                  : false,
  allows_force_pushes               : false,
  allows_updates                    : false,
  bypass_actors                     : [],
  dismisses_stale_reviews           : true,
  enforcement                       : "active",
  exclude_refs                      : [],
  include_refs                      : [],
  name                              : "<name>",
  required_approving_review_count   : "2",
  required_deployment_environments  : [],
  required_status_checks            : [
    "eclipse-eca-validation:eclipsefdn/eca",
  ],
  requires_code_owner_review        : false,
  requires_commit_signatures        : true,
  requires_deployments              : false,
  requires_last_push_approval       : true,
  requires_linear_history           : false,
  requires_pull_request             : true,
  requires_review_thread_resolution : true,
  requires_status_checks            : true,
  requires_strict_status_checks     : false,
},
orgs.newRepoWebhook('<url>') = {
  active                            : true,
  content_type                      : "form",
  events                            : [],
  insecure_ssl                      : "0",
  secret                            : null,
  url                               : "<url>",
},
orgs.newRepoSecret('<name>') = {
  name                              : "<name>",
  value                             : null,
},
orgs.newRepoVariable('<name>') = {
  name                              : "<name>",
  value                             : null,
},
orgs.newEnvironment('<name>') = {
  branch_policies                   : [],
  deployment_branch_policy          : "all",
  name                              : "<name>",
  reviewers                         : [],
  wait_timer                        : "0",
},