GitHubCiAppConfig#
- pydantic settings mobu.config.GitHubCiAppConfig#
Configuration for GitHub CI app functionality if it is enabled.
- Parameters:
_nested_model_default_partial_update (
bool
|None
, default:None
)_env_file (
Union
[Path
,str
,Sequence
[Union
[Path
,str
]],None
], default:PosixPath('.')
)_cli_parse_args (
bool
|list
[str
] |tuple
[str
,...
] |None
, default:None
)_cli_settings_source (
Optional
[CliSettingsSource
[Any
]], default:None
)_cli_shortcuts (
Mapping
[str
,str
|list
[str
]] |None
, default:None
)_secrets_dir (
Union
[Path
,str
,Sequence
[Union
[Path
,str
]],None
], default:None
)values (
Any
)
Show JSON schema
{ "title": "GitHubCiAppConfig", "description": "Configuration for GitHub CI app functionality if it is enabled.", "type": "object", "properties": { "MOBU_GITHUB_CI_APP_ID": { "description": "Found on the GitHub app's settings page (NOT the installation configuration page). For example: https://github.com/organizations/lsst-sqre/settings/apps/mobu-ci-data-dev-lsst-cloud", "examples": [ 123456 ], "title": "Github CI app id", "type": "integer" }, "MOBU_GITHUB_CI_APP_PRIVATE_KEY": { "description": "Generated when the GitHub app was set up. This should NOT be base64 enocded, and will contain newlines. You can find this in 1Password; check the Phalanx mobu values for more details.", "examples": [ "\n-----BEGIN RSA PRIVATE KEY-----\nabc123MeowMeow456abc123MeowMeow456abc123MeowMeow456abc123MeowMeo\nabc123MeowMeow456abc123MeowMeow456abc123MeowMeow456abc123MeowMeo\nabc123MeowMeow456abc123MeowMeow456abc123MeowMeow456abc123MeowMeo\netc, etc\n-----END RSA PRIVATE KEY-----\n" ], "title": "Github CI app private key", "type": "string" }, "MOBU_GITHUB_CI_APP_WEBHOOK_SECRET": { "description": "Generated when the GitHub app was set up. You can find this in 1Password; check the Phalanx mobu values for more details.", "title": "Github CI app webhook secret", "type": "string" }, "users": { "description": "Must be prefixed with 'bot-', like all mobu users. In environments without Firestore, users have to be provisioned by environment admins, and their usernames, uids, and guids must be specified here. In environments with firestore, only usernames need to be specified, but you still need to explicitly specify as many users as needed to get the amount of concurrency that you want.", "items": { "$ref": "#/$defs/User" }, "title": "Environment users for CI jobs to run as.", "type": "array" }, "scopes": { "description": "A list of Gafaelfawr scopes that will be granted to the user when running notebooks for a GitHub CI app check.", "items": { "type": "string" }, "title": "Gafaelfawr Scopes", "type": "array" }, "acceptedGithubOrgs": { "default": [], "description": "Any webhook payload request from a repo in an organization not in this list will get a 403 response.", "items": { "type": "string" }, "title": "Allowed GitHub organizations.", "type": "array" } }, "$defs": { "Group": { "description": "Configuration for the group memberships of a user.", "properties": { "name": { "examples": [ "g_special_users" ], "minLength": 1, "pattern": "^g_", "title": "Name of the group", "type": "string" }, "id": { "examples": [ 123181 ], "title": "Numeric GID of the group", "type": "integer" } }, "required": [ "name", "id" ], "title": "Group", "type": "object" }, "User": { "description": "Configuration for the user whose credentials the monkey will use.", "properties": { "username": { "description": "Must start with 'bot-mobu'", "examples": [ "bot-mobu-testuser" ], "pattern": "^bot-mobu", "title": "Username", "type": "string" }, "uidnumber": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If omitted, Gafaelfawr will assign a UID. (Gafaelfawr UID assignment requires Firestore be configured.)", "examples": [ 60001 ], "title": "Numeric UID" }, "gidnumber": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If omitted but a UID was specified, use a GID equal to the UID. If both are omitted, Gafaelfawr will assign a UID and GID. (Gafaelfawr UID and GID assignment requires Firestore and synthetic user private groups to be configured.)", "examples": [ 60001 ], "title": "Primary GID" }, "groups": { "default": [], "description": "Groups of which the user is a member", "items": { "$ref": "#/$defs/Group" }, "title": "Groups", "type": "array" } }, "required": [ "username" ], "title": "User", "type": "object" } }, "additionalProperties": false, "required": [ "MOBU_GITHUB_CI_APP_ID", "MOBU_GITHUB_CI_APP_PRIVATE_KEY", "MOBU_GITHUB_CI_APP_WEBHOOK_SECRET", "users", "scopes" ] }
- Config:
alias_generator: function = <function to_camel at 0x7ff7ca93a340>
validate_by_name: bool = True
- Fields:
- field accepted_github_orgs: list[str] = [] (alias 'acceptedGithubOrgs')#
Any webhook payload request from a repo in an organization not in this list will get a 403 response.
- field id: int [Required]#
Found on the GitHub app’s settings page (NOT the installation configuration page). For example: organizations/lsst-sqre
- field private_key: str [Required] (alias 'privateKey')#
Generated when the GitHub app was set up. This should NOT be base64 enocded, and will contain newlines. You can find this in 1Password; check the Phalanx mobu values for more details.
- field scopes: list[str] [Required]#
A list of Gafaelfawr scopes that will be granted to the user when running notebooks for a GitHub CI app check.
- field users: list[User] [Required]#
Must be prefixed with ‘bot-’, like all mobu users. In environments without Firestore, users have to be provisioned by environment admins, and their usernames, uids, and guids must be specified here. In environments with firestore, only usernames need to be specified, but you still need to explicitly specify as many users as needed to get the amount of concurrency that you want.
- field webhook_secret: str [Required] (alias 'webhookSecret')#
Generated when the GitHub app was set up. You can find this in 1Password; check the Phalanx mobu values for more details.