You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
nextstrain run: third-party pathogen repo support #449
Better support nextstrain setup and nextstrain run for third-party repositories, including private ones.
Two avenues to consider for such support.
Indirectly with local support, i.e. workflow users git clone the private repo and point nextstrain setup/run to the local path. The downside here is the need to interact with git.
Both approaches require some form of authentication to download the repo contents, which inevitably requires some external interaction with the repo host. For repos hosted on GitHub, gh auth login simplifies the process.
and special-casing such URLs so we handle them like our repos (i.e. knowing we can interact with them via the GitHub API (well, via nextstrain.org) and not fetching the source from the given URL directly).
Benefits of this approach:
Provides GitHub preferential treatment (i.e. ease of use), but without excluding preferential treatment for other sources/providers in the future (i.e. like my-org/my-pathogen@version would do).
The URL itself provides a convenient place to specify hard-coded credentials if desired, e.g. https://user:api_key@github.com/my-org/my-pathogen. We would adjust nextstrain version --pathogens --verbose output to mask the secret part of the URL.
It allows for colocating versions of a forked pathogen repo under the same name, e.g. name@nextstrain-version and name@your-version=https://github.com/your/repo (unlike your/repo@your-version).
I considered the alternative of namespacing, e.g. something like
nextstrain setup github:your/repo
but I think inventing up prefixes/URLs like that is less clear than using common URLs already out there that people can see in their browser. (There's precedent for this approach in nextstrain remote too.)
Activity
[-]`nextstrain run`: private pathogen repo support[/-][+]`nextstrain run`: third-party pathogen repo support[/+]tsibley commentedon Sep 17, 2025
Reviewing this again today, I'm leaning towards something like
and special-casing such URLs so we handle them like our repos (i.e. knowing we can interact with them via the GitHub API (well, via nextstrain.org) and not fetching the source from the given URL directly).
Benefits of this approach:
my-org/my-pathogen@versionwould do).https://user:api_key@github.com/my-org/my-pathogen. We would adjustnextstrain version --pathogens --verboseoutput to mask the secret part of the URL.name@nextstrain-versionandname@your-version=https://github.com/your/repo(unlikeyour/repo@your-version).I considered the alternative of namespacing, e.g. something like
but I think inventing up prefixes/URLs like that is less clear than using common URLs already out there that people can see in their browser. (There's precedent for this approach in
nextstrain remotetoo.)