API Reference

PkgFactory.Credential — Type

Explicit GitHub and optional Codecov credentials; display always redacts secrets. This type never reads environment variables or starts an interactive login.

source
PkgFactory.PackagePlan — Type

An immutable snapshot of validated settings and the exact files to commit. Construct with plan_package. Planning performs no network requests.

source
PkgFactory.PackageSpec — Type

Validated package settings. Secrets are supplied separately in Credential. name accepts a Julia package name with or without the .jl repository suffix.

source
PkgFactory.create_package — Method

Execute an immutable plan using explicit credentials. Creation and resume share one implementation. Failures report a safe, typed CreationError with the stopped stage. Inspect repository_status before resuming. Operations on the same repository are excluded within this process.

source
PkgFactory.package_spec — Method

Decode settings from a string-keyed mapping using the shared defaults and validation. package_name is accepted as an alias for name for existing Web API clients.

source
PkgFactory.Templates.generate_template_files_dict — Method
generate_template_files_dict(
    owner_name::String,
    repo_name::String,
    author_names::Vector{String},
    package_description::String,
    template_name::String;
    package_uuid,
    citation_authors
) -> Dict{String, String}
paths_and_contents = PkgFactory.Templates.generate_template_files_dict(
  "ohno",
  "MyPkg.jl",
  ["Shuhei Ohno"],
  "My special package",
  "all-in-one"
)

Use citation_authors = [(family_names = "Ohno", given_names = "Shuhei")] to provide explicit CFF name parts, in the same order as author_names. Each entry requires family_names and may include given_names and orcid. Without this keyword, full display names are preserved in family-names; review the name parts in CITATION.cff before release.

source
PkgFactory.Templates.list_files — Method
list_files(template_path::String) -> Vector{String}
path_dir = PkgFactory.Templates.get_template_path("all-in-one")
path_files = PkgFactory.Templates.list_files(path_dir)
source
PkgFactory.Templates.read_file — Method
read_file(path::String) -> String
path_dir   = PkgFactory.Templates.get_template_path("all-in-one")
path_files = PkgFactory.Templates.list_files(path_dir)
path_file  = path_files[findfirst(occursin("README.md", path_file) for path_file in path_files)]
text = PkgFactory.Templates.read_file(path_file)
source
PkgFactory.Templates.update_template — Method
Warning

This function is only for developers. This function updates the template files in the PkgFactory.jl/template directory.

Signature:

update_template(
    owner_name::String,
    repo_name::String,
    author_names::Vector{String}
)

Example:

PkgFactory.update_template("OWNER_NAME", "template", ["AUTHOR1", "AUTHOR2"])
source
PkgFactory.Templates.write_file — Method
write_file(path::String, content::String) -> Bool
path_dir   = PkgFactory.Templates.get_template_path("all-in-one")
path_files = PkgFactory.Templates.list_files(path_dir)
path_file  = path_files[findfirst(occursin("README.md", path_file) for path_file in path_files)]
text = PkgFactory.Templates.read_file(path_file)
source