Install a GitHub Action workflow file in one or more repositories.
There are two key steps: (1) creating the workflow
and (2) installing it, a.k.a,
submitting it as pull request(s) to one or more packages.
Some workflows have convenient helpers:
julia> workflow = MassInstallAction.compat_helper() # workflow for https://github.com/JuliaRegistries/CompatHelper.jl
julia> workflow = MassInstallAction.tag_bot() # workflow for https://github.com/JuliaRegistries/TagBot
or you can create your own:
workflow = MassInstallAction.Workflow("MyWorkflow", "workflow_filename.yml" => read("/home/me/template_workflow_file.yml", String))
where you replace:
"/home/me/template_workflow_file.yml"
with the path to the local file you've prepared with the desired contents of the workflow;"workflow_filename.yml"
with the name you want the file to have in the repositories'.github/workflows
directory;"MyWorkflow"
with the name used to identify this workflow when Actions runs.
You can add multiple workflow files simultaneously or even delete files, see ?MassInstallAction.Workflow
.
First make sure that you have an environment variable
named MY_GITHUB_TOKEN
that contains a GitHub personal
access token (see below), and then run the following code.
Replace
MY_ORGANIZATION
with the name of your GitHub
organization.
Replace MY_USERNAME
, ANOTHER_ORG_ADMIN
, etc. with your username and the
usernames of other administrators in your GitHub
organization.
julia> using MassInstallAction
julia> workflow = MassInstallAction.compat_helper()
julia> MassInstallAction.install(workflow,
"MY_ORGANIZATION";
token = ENV["MY_GITHUB_TOKEN"],
cc = ["MY_USERNAME", "ANOTHER_ORG_ADMIN"])
First make sure that you have an environment variable
named MY_GITHUB_TOKEN
that contains a GitHub personal
access token, and then run the following code.
Replace MY_USERNAME
with your GitHub username.
julia> using MassInstallAction
julia> workflow = MassInstallAction.compat_helper()
julia> MassInstallAction.install(workflow,
"MY_USERNAME";
token = ENV["MY_GITHUB_TOKEN"],
cc = ["MY_USERNAME"])
This package uses and interacts with GitHub.jl. In addition to the options above, you can MassInstallAction.install(workflow, repo::GitHub.Repo)
directly. This may be the easiest approach if you want to filter repositories based on specific criteria. See ?MassInstallAction.install
for more information.
To generate the GitHub personal access token, follow the instructions from this official link.
You should give these access in your GitHub token: