DATALAD-CREATE-SIBLING-GITHUB(1)
π datalad create-sibling-github
okay bestie, real talk: this is a page from the General Commands Manual, and it's about datalad create-sibling-github. Yes, the command name is a whole mouthful. No, we're not shortening it. It's iconic like that. π
β¨ NAME β¨
datalad create-sibling-github β create a dataset sibling on GitHub.org (or an enterprise deployment, if your org is fancy like that πΌ).
π¦ SYNOPSIS π¦
datalad create-sibling-github [-h] [--dataset DATASET] [-r] [-R LEVELS]
[-s NAME] [--existing {skip|error|reconfigure|replace}]
[--github-login TOKEN] [--credential NAME] [--github-
organization NAME] [--access-protocol {https|ssh|https-ssh}]
[--publish-depends SIBLINGNAME] [--private]
[--description DESCRIPTION] [--dryrun] [--dry-run] [--api URL]
[--version] [<org-name>/]<repo-(base)name>
πΈ DESCRIPTION πΈ
So GitHub is, like, the popular commercial solution for code hosting and collaborative development. Everyone and their group chat is on it. But here's the tea π΅: GitHub cannot host dataset content (but see LFS, http://handbook.datalad.org/r.html?LFS β there's a whole handbook page about it, go read it, iykyk).
However!! In combination with other data sources and siblings, publishing a dataset to GitHub can facilitate distribution and exchange, while still allowing any dataset consumer to obtain actual data content from alternative sources. It's giving β¨ teamwork β¨.
In order to be able to use this command, a personal access token has to be generated on the platform. The path is literally this, follow it exactly:
Account->Settings->Developer Settings->Personal access tokens->Generate new token
(not me having to navigate that every single time π)
This command can be configured with "datalad.create-sibling-ghlike.extra-remote-settings.NETLOC.KEY=VALUE" in order to add any local KEY = VALUE configuration to the created sibling in the local .git/config file. NETLOC is the domain of the Github instance to apply the configuration for. This leads to a behavior that is equivalent to calling datalad's siblings('configure', ...)||siblings configure command with the respective KEY-VALUE pair after creating the sibling. The configuration, like any other, could be set at user- or system level, so users do not need to add this configuration to every sibling created with the service at NETLOC themselves. big slay for not repeating yourself π
Changed in version 0.16
The API has been aligned with the some create-sibling-... commands of other GitHub-like services, such as GOGS, GIN, GitTea.
Deprecated in version 0.16
The --dryrun option will be removed in a future release, use the renamed --dry-run option instead.
The --github-login option will be removed in a future release, use the --credential option instead.
The --github-organization option will be removed in a future release, prefix the repository name with <org>/ instead.
heads up bestie β "deprecated" means it's on its way out. like a trends cycle. don't build your whole vibe on it π«Ά
π§ Examples
Use a new sibling on GIN as a common data source that is auto-available when cloning from GitHub:
% datalad create-sibling-gin myrepo -s gin
# the sibling on GitHub will be used for collaborative work
% datalad create-sibling-github myrepo -s github
# register the storage of the public GIN repo as a data source
% datalad siblings configure -s gin --as-common-datasrc gin-storage
# announce its availability on github
% datalad push --to github
π₯ OPTIONS π₯
[<org-name>/]<repo-(base)name>β the repository name. optionally you can slap an'<organization>/'prefix on the front if the repository shall not reside under a user's namespace. and when you're operating recursively, a suffix will be appended to this name for each subdataset (cute, right?). Constraints: value must be a string.-h,--help,--help-npβ show this help message.--help-npforcefully disables the use of a pager for displaying the help message (so it just dumps it straight to your terminal, nolesssituation).--dataset DATASET,-d DATASETβ the dataset to create the publication target for. If not given, an attempt is made to identify the dataset based on the current working directory. Constraints: Value must be a Dataset or a valid identifier of a Dataset (e.g. a path) or value must be NONE.-r,--recursiveβ if set, recurse into potential subdatasets. down the rabbit hole we go π-R LEVELS,--recursion-limit LEVELSβ limit recursion into subdatasets to the given number of levels. Constraints: value must be convertible to type'int'or value must be NONE.-s NAME,--name NAMEβ name of the sibling in the local dataset installation (remote name). Constraints: value must be a string or value must be NONE. [Default:'github']--existing {skip|error|reconfigure|replace}β behavior when already existing or configured siblings are discovered: skip the dataset ('skip'), update the configuration ('reconfigure'), or fail ('error'). Constraints: value must be one of ('skip','error','reconfigure','replace'). [Default:'error']
DEPRECATED DANGER ZONE π¨ With'replace', an existing repository will be irreversibly removed, re-initialized, and the sibling (re-)configured (thus implies'reconfigure'). REPLACE could lead to data loss! In interactive sessions a confirmation prompt is shown, an exception is raised in non-interactive sessions. The'replace'mode will be removed in a future release. bestie I am begging you, read that twice π
--github-login TOKENβ Deprecated, use the credential parameter instead. If given must be a personal access token. Constraints: value must be a string or value must be NONE.--credential NAMEβ name of the credential providing a personal access token to be used for authorization. The token can be supplied via configuration setting'datalad.credential.<name>.token', or environment variableDATALAD_CREDENTIAL_<NAME>_TOKEN, or will be queried from the active credential store using the provided name. If none is provided, the host-part of the API URL is used as a name (e.g.'https://api.github.com'->'api.github.com'). Constraints: value must be a string or value must be NONE.--github-organization NAMEβ Deprecated, prepend a repo name with an'<orgname>/'prefix instead. Constraints: value must be a string or value must be NONE.--access-protocol {https|ssh|https-ssh}β access protocol/URL to configure for the sibling. With'https-ssh'SSH will be used for write access, whereas HTTPS is used for read access. Constraints: value must be one of ('https','ssh','https-ssh'). [Default:'https'] β honestly'https-ssh'is the main character here π--publish-depends SIBLINGNAMEβ add a dependency such that the given existing sibling is always published prior to the new sibling. This equals setting a configuration item'remote.SIBLINGNAME.datalad-publish-depends'. This option can be given more than once to configure multiple dependencies. Constraints: value must be a string or value must be NONE.--privateβ if set, create a private repository. π no peeking.--description DESCRIPTIONβ Brief description, displayed on the project's page. Constraints: value must be a string or value must be NONE.--dryrunβ Deprecated. Use the renamed--dry-runparameter.--dry-runβ if set, no repository will be created, only tests for sibling name collisions will be performed, and would-be repository names are reported for all relevant datasets. it's giving preview mode β¨ nothing happens, you just get to look.--api URLβ URL of the GitHub instance API. Constraints: value must be a string or value must be NONE. [Default:'https://api.github.com']--versionβ show the module and its version which provides the command.
π AUTHORS π
datalad is developed by The DataLad Team and Contributors <team@datalad.org>.
and that's the whole page, bestie π«Ά this was datalad create-sibling-github, version 1..., dated 2025-06-15, straight from the datalad cr...ling-github(1) manual. go forth and create siblings responsibly πβ¨π
π¦ where this page comes from
- debian trixie: datalad 1.1.5-2.1 Β· MIT
- ubuntu resolute: datalad 1.1.5-2.1 Β· MIT
- ubuntu stonking: datalad 1.1.5-2.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms