Giter Site home page Giter Site logo

saadmk11 / github-actions-version-updater Goto Github PK

View Code? Open in Web Editor NEW
88.0 7.0 14.0 164 KB

A GitHub Action that Updates All GitHub Actions in a Repository and Creates a Pull Request with the Updates

Home Page: https://github.com/marketplace/actions/github-actions-version-updater

License: MIT License

Python 97.37% Dockerfile 2.63%
action actions github-actions github-api update updater upgrade upgrade-tool update-checker python

github-actions-version-updater's Introduction

GitHub Actions Version Updater

GitHub release (latest by date) GitHub GitHub Marketplace GitHub stars GitHub Workflow Status

GitHub Actions Version Updater is a GitHub Action that is used to Update All GitHub Actions in a Repository and create a pull request with the updates (if enabled). It is an automated dependency updater similar to GitHub's Dependabot but for GitHub Actions.

How Does It Work?

  • GitHub Actions Version Updater first goes through all the workflows in a repository and checks for updates for each of the action used in those workflows.

  • If an update is found and if that action is not ignored then the workflows are updated with the new version of the action being used.

  • If at least one workflow file is updated then a new branch is created with the changes and pushed to GitHub. (If enabled)

  • Finally, a pull request is created with the newly created branch. (If enabled)

Supported Version Fetch Sources

  • release-tag (default): Uses specific release tag from the latest release to update a GitHub Action. (e.g. actions/[email protected])

  • release-commit-sha: Uses the latest release tag commit SHA to update a GitHub Action. (e.g. actions/checkout@c18e2a1b1a95d0c5c63af210857e8718a479f56f)

  • default-branch-sha: Uses default branch (e.g: main, master) latest commit SHA to update a GitHub Action. (e.g. actions/checkout@c18e2a1b1a95d0c5c63af210857e8718a479f56f)

You can use update_version_with input option to select one of them. (e.g. update_version_with: 'default-branch-sha')

Release Types

  • all (default): Actions with any new release will be updated.
  • major: Actions with only new major release will be updated.
  • minor: Actions with only new minor release will be updated.
  • patch: Actions with only new patch release will be updated.

You can use release_types input option to select one/all of them. (e.g. "major, minor")

Usage

We recommend running this action on a schedule event or a workflow_dispatch event.

To integrate GitHub Actions Version Updater on your repository, create a YAML file inside .github/workflows/ directory (e.g: .github/workflows/updater.yaml) add the following lines into the file:

name: GitHub Actions Version Updater

# Controls when the action will run.
on:
  schedule:
    # Automatically run on every Sunday
    - cron:  '0 0 * * 0'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}

      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}

Workflow input options

These are the inputs that can be provided on the workflow.

Name Required Description Default Example
token Yes GitHub Access Token with workflow scope (The Token needs to be added to the actions secrets) null ${{ secrets.WORKFLOW_SECRET }}
committer_username No Name of the user who will commit the changes to GitHub "github-actions[bot]" "Test User"
committer_email No Email Address of the user who will commit the changes to GitHub "github-actions[bot]@users.noreply.github.com" "[email protected]"
commit_message No Commit message for the commits created by the action "Update GitHub Action Versions" "Custom Commit Message"
pull_request_title No Title of the pull requests generated by the action "Update GitHub Action Versions" "Custom PR Title"
pull_request_branch (Experimental) No The pull request branch name. (If provided, the action will force push to the branch) "gh-actions-update-" "github/actions-update"
ignore No A comma separated string of GitHub Actions to ignore updates for null "actions/checkout@v2, actions/cache@v2"
skip_pull_request No If "true", the action will only check for updates and if any update is found the job will fail and update the build summary with the diff (Options: "true", "false") "false" "true"
update_version_with No Use The Latest Release Tag/Commit SHA or Default Branch Commit SHA to update the actions (options: "release-tag", "release-commit-sha", "default-branch-sha"') "release-tag" "release-commit-sha"
release_types No A comma separated string of release types to use when updating the actions. By default, all release types are used to update the actions. Only Applicable for "release-tag", "release-commit-sha" (Options: "major", "minor", "patch" [one or many seperated by comma]) "all" "minor, patch"
pull_request_user_reviewers No A comma separated string (usernames) which denotes the users that should be added as reviewers to the pull request null "octocat, hubot, other_user"
pull_request_team_reviewers No A comma separated string (team slugs) which denotes the teams that should be added as reviewers to the pull request null "justice-league, other_team"
pull_request_labels No A comma separated string (label names) which denotes the labels which will be added to the pull request null "dependencies, automated"
extra_workflow_locations No A comma separated string of file or directory paths to look for workflows. By default, only the workflow files in the .github/workflows directory are checked updates null "path/to/directory, path/to/workflow.yaml"

Workflow with all options

name: GitHub Actions Version Updater

# Controls when the action will run.
on:
  # can be used to run workflow manually
  workflow_dispatch:
  schedule:
    # Automatically run on every Sunday
    - cron:  '0 0 * * 0'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}

      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}
          committer_username: 'Test'
          committer_email: '[email protected]'
          commit_message: 'Commit Message'
          pull_request_title: 'Pull Request Title'
          ignore: 'actions/checkout@v2, actions/cache@v2'
          skip_pull_request: 'false'
          update_version_with: 'release-tag'
          release_types: "minor, patch"
          pull_request_user_reviewers: "octocat, hubot, other_user"
          pull_request_team_reviewers: "justice-league, other_team"
          pull_request_labels: "dependencies, automated"
          extra_workflow_locations: "path/to/directory, path/to/workflow.yaml"
          # [Experimental]
          pull_request_branch: "actions-update"

Important Note

GitHub does not allow updating workflow files inside a workflow run. The token generated by GitHub in every workflow (${{secrets.GITHUB_TOKEN}}) does not have permission to update a workflow. That's why you need to create a Personal Access Token

For Personal Access Token (Classic):

You need to create a classic Personal Access Token with these scopes:

  • repo (To Push Changes to the Repository and Create Pull Requests)
  • workflow (To Update GitHub Action workflow files)

For Fine-grained Personal Access Token:

You need to create a Fine-grained Personal Access Token with these Repository permissions:

  • Contents: Read and write (To Push Changes to the Repository)
  • Workflows: Read and write (To Update GitHub Action workflow files)
  • Pull requests: Read and write (To Create Pull Requests)
  • Metadata: Read-only (Required by Above Permissions)

After creating the token, you need to add it to your repository actions secrets and use it in the workflow. To know more about how to pass a secret to GitHub actions you can Read GitHub Docs

A note about Git Large File Storage (LFS)

If your repository uses Git LFS, you will need to manually remove the LFS-related hook files, otherwise the action will fail because Git will not be able to create a branch because the lfs executable is not installed inside the container used by this action.

To work around this, just remove the hook files manually as an extra step before this action executes:

# ...
jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          token: ${{ secrets.WORKFLOW_SECRET }}
          lfs: false

      - name: Remove LFS hooks
        # This repository uses Git LFS, but it not being
        # in the container causes the action to fail to create a new branch.
        # Removing the hooks manually is harmless and works around this issue.
        run: |
          rm .git/hooks/post-checkout
          rm .git/hooks/pre-push

      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        with:
          # ...

Outputs

Output Name Description
GHA_UPDATE_PR_NUMBER The number of the created pull request.

Example Workflow

name: GitHub Actions Version Updater

# Controls when the action will run.
on:
  # can be used to run workflow manually
  workflow_dispatch:
  schedule:
    # Automatically run on every Sunday
    - cron:  '0 0 * * 0'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}

      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        # Required to get the PR number
        id: gha-update
        with:
          # [Required] Access token with `workflow` scope.
          token: ${{ secrets.WORKFLOW_SECRET }}
          skip_pull_request: 'false'
      - name: Get PR Number
        run: echo "The PR Number is ${{ steps.gha-update.outputs.GHA_UPDATE_PR_NUMBER }}"

Alternative

You can also use Dependabot to update your GitHub Actions.

GitHub Actions Version Updater in Action

GitHub Actions Version Updater Demo

License

The code in this project is released under the MIT License.

github-actions-version-updater's People

Contributors

github-actions[bot] avatar jmlemetayer avatar kevinneville avatar mondeja avatar nicoddemus avatar pre-commit-ci[bot] avatar ptmkenny avatar saadmk11 avatar thehedgefrog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

github-actions-version-updater's Issues

Appending minor/patch when already added

It looks like v.0.8.0 is now appending on minor/patch versions for upgrades? First, I'm not sure if that's intended behavior, but if so it's also appending minor/patch to versions which already list them. You can see an example here

Feature request: return the number of the PR created as an output

From what I can tell, this is already available in the code, so it should hopefully be fairly easy to return it as an output.

pull_request_number = create_pull_request(

How to specify that an Action has outputs: https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions
End-to-end example including how to set the output: https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action

Use case: I have a process that needs to run on the PR that was created by this action. Right now I do:

prnumber=$(gh search prs --repo ${{ github.repository }} --state open --match title "$PR_TITLE" --json number --jq '.[].number')

... which works but is kinda janky. It'd be great if this action would just return the number of the PR that was created so I wouldn't have to do this extra step.

This action sometimes suggests downgrades

Sometimes actions backport some features to previous major versions, and this action is offering them in the PRs, essentially meaning it would downgrade the version if merged.

As far as I understand this is due to not parsing the version and just looking at the latest release in terms of date. I recommend parsing the version and comparing them numerically to decide whether a version is newer or not.

Configuration class has mutable default fields

Hello!

I noticed that the Configuration class has several default field values which are mutable (empty sets, and the ALL_RELEASE_TYPES).

In the (admittedly probably uncommon for Github Actions usage) case where multiple Configuration are instantiated, and they didn't have these fields overwritten by user input, they would all share mutations, similar to the "function parameter default value is mutable" issue.

Here's an example:

>>> import src.config as c
>>>
>>> j = c.Configuration()
>>> j.ignore_actions
set()
>>>
>>> k = c.Configuration.create({'INPUT_PULL_REQUEST_LABELS': 'label1,label2'})
>>> k.ignore_actions
set()
>>> k.ignore_actions.add('ignore1')
>>> j.ignore_actions    # `j`'s copy should still be empty
{'ignore1'}
>>>
>>> k.pull_request_labels
{'label1', 'label2'}
>>> j.pull_request_labels
set()
>>> j.pull_request_labels.add('another_label')
>>> k.pull_request_labels
{'label1', 'label2'}    # This is fine because `k` got a new set when parsing user input
>>>
>>>
>>> # The shared reference to `ALL_RELEASE_TYPES` has the same issue:
>>> j.release_types
['major', 'minor', 'patch']
>>> k.release_types.remove('minor')
>>> j.release_types
['major', 'patch']

pylint has an open issue for adding a warning about this: pylint-dev/pylint#3716

Resolution

I think two approaches to resolving this could be to either

  • use empty frozenset() as defaults, instead of empty set(). This would mean that users of Configuration would no longer be able to call, for example, config.ignore_actions.add(...), if they were doing that.

  • or convert Configuration from a NamedTuple into a @dataclass(frozen=True). Dataclass fields can have a factory function to return a new empty set for each instance, which would solve the reference sharing while maintaining internal mutability, if that's what you want.

Allow to configure the branch name

I have configured the version updater action on my project and it works perfectly. Thanks for your project.

But as it is executed every day and with a new branch name each time, if I don't check my projects every day, I end up with several pull requests for the same patch.

On my workflow:

on:                                                                                                                                                                                                            
  schedule:                                                                                                                                                                                                    
    - cron: '0 0 * * *'

On main.py :

new_branch_name = f"gh-actions-update-{int(time.time())}"

I think it will be good to have a fix branch name (at least as an option), So that the pull request can be updated each time (with a force push).

Best regards,
Jean-Marie

Version update of gh-actions incorrectly placed

Hi,

Thank you very much for this useful package! I'm trying to bring it to (gh-)action, but the version of the checkout action seems to be determined or pasted incorrectly.

The GitHub-actions version updater wants to change:

- uses: actions/[email protected]
+ uses: actions/[email protected]

which is not a valid version in the repo or marketplace.

Please have a look at the current failing action as an example. But it also failed already earlier when the version was still v2

I appreciate any help/hints/work-arounds.

question: update GitHub actions without pull request

Hello, I'm trying to figure out if I can use this actions to only update files locally and then use different action for creating PR

I have similar workflow for updating pre-commit version update, with less permissions and it works just fine

Desired workflow:

permissions:
  pull-requests: write
  contents: read

jobs:
  auto-update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
            
      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        with:
          skip_pull_request: true

      - uses: peter-evans/create-pull-request@v5
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          branch: update/github-actions
          title: "chore: update github actions to latest version"
          commit-message: "chore: update github action"
          body: Update versions of github actions to latest version.

Dry run mode

I recently discovered this action and considered using it in my own projects.

For now, it seems to always generate a pull request if there are changes. While this is perfectly fine for most use cases, I would like to use this as a check only, id est an action which reports the corresponding action versions to update inside each workflow and fails if there are updates, without creating a corresponding pull request.

With the current updater class, this seems to be tricky: I would either have to subclass this in some code of mine and overwrite the complete run method - or monkey-patch at least create_pull_request.

Is there any chance of providing some sort of "dry run" mode natively, which just performs the check instead of sending a pull request as well?

Document fine grained access token permissions

Hi and thanks for this useful action. I just got it working and it does exactly what I wanted.

I did have a slight stumbling block though which is that I initially tried to use GitHub's new "fine grained" access token feature which allows limiting the access of the secret to a single repo:
https://github.blog/2022-10-18-introducing-fine-grained-personal-access-tokens-for-github/

With the fine grained token it seems that "workflow" scope is not enough and the workflow failed to push to a branch in the repo:

Create New Branch (refs/heads/main -> gh-actions-update-1677328662)
Commit Changes
  
  [gh-actions-update-167732[86](https://github.com/oscarbenjamin/protosym/actions/runs/4270016606/jobs/7433570757#step:4:95)62 ff18142] Update GitHub Action Versions
   4 files changed, 11 insertions(+), 11 deletions(-)
  
  Error: remote: Permission to oscarbenjamin/protosym.git denied to oscarbenjamin.
  fatal: unable to access 'https://github.com/oscarbenjamin/protosym/': The requested URL returned error: 403

https://github.com/oscarbenjamin/protosym/actions/runs/4270016606/jobs/7433570757

I was able to fix this by using a "classic" token with workflow scope. I would prefer to use a fine grained token but it is not clear what permissions I would need to give to that token when looking through the list of options.

There does not seem to be any mention of this in the README so I was wondering if you know what the scope for a fine grained token should be.

Unable to push branch

Hi!
I'm currently trying to implement your workflow in voxpupuli/vox-pupuli-tasks#479

from the workflow config:

  github-action-updater:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
        token: ${{ secrets.SAADMK11_GITHUB_ACTIONS_VERSION_UPDATER_VPT }}
    - name: GitHub Actions Version Updater
      uses: saadmk11/[email protected]
      with:
        token: ${{ secrets.SAADMK11_GITHUB_ACTIONS_VERSION_UPDATER_VPT }}

This fails with:

Create New Branch
  error: pathspec 'refs/pull/479/merge' did not match any file(s) known to git
  Switched to a new branch 'gh-actions-update-1655896430'
  [gh-actions-update-1655896430 7cbc18e] Update GitHub Action Versions
   3 files changed, 14 insertions(+), 14 deletions(-)
  To https://github.com/voxpupuli/vox-pupuli-tasks
   ! [remote rejected] gh-actions-update-1655896430 -> gh-actions-update-1655896430 (shallow update not allowed)
  error: failed to push some refs to 'https://github.com/voxpupuli/vox-pupuli-tasks'
Create Pull Request
  Warning: Could not create a pull request on voxpupuli/vox-pupuli-tasks, status code: [422]

and a couple of questions:

  • Does the token for actions/checkout@v2 actually needs the workflow scope?
  • The action is marked as successful, even when the push failed. I think that should be changed?

Delete previous pull request

I have around 20 repositories where I use your package.

When I do not check the repository for a while, I sometimes have 5-6 PRs. Would be nice to have a flag to automatically delete the old pull requests.

Workflow always fails at the "Create New Branch" stage

Hi!

First of all thanks for writing this action and making it publicly available. 👍

I'm trying to make it to work, however for me it always fails at the Create New Branch stage, and unfortunately I can't see the reason for that from the output:

Create New Branch (refs/heads/main -> gh-actions-update-1669032900)
  Error: Note: checking out 'refs/heads/main'.
  
  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.
  
  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:
  
    git checkout -b <new-branch-name>
  
  HEAD is now at 3acfbc3 Set explicit permissions in update gh actions workflow
  
  This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/post-checkout'.

Using version 0.7.1.

I did try to disable Git LFS (even though doesn't seem like that would be a problem), with the same results.

Any hints?

Thanks

Do not update "azure/login" to last version

Hello,

I ran the composite action updater and I noticed the tool proposed to update the action "azure/login" to the version v1.4.6 although the version was already the last v1.4.7
So It is proposing a downgrade because from v1.4.7 to v1.4.6

image

Regards
Hme

Custom commit message and pull request title won't work

I am using this action as follows:

- uses: saadmk11/[email protected]
  with:
    commit_message: "chore: update github action versions"
    pull_request_title: "chore: update github action versions"
    token: ${{ secrets.WORKFLOW_SCOPED_ACCESS_TOKEN }}

It gives the following warning:

Unexpected input(s) 'commit_message', 'pull_request_title', valid inputs are ['entryPoint', 'args', 'committer_username', 'committer_email', 'ignore', 'token']

And I get the default pull request title and commit message instead.

Downgrades are being proposed

There seems to be something off with resolving the actual version changes:

Found new version for "actions/checkout"
  Updating "actions/checkout@v3" with "actions/[email protected]"
  Found new version for "saadmk11/github-actions-version-updater"
  Updating "saadmk11/github-actions-version-updater@main" with "saadmk11/[email protected]"
  Found new version for "actions/setup-python"
  Updating "actions/setup-python@v4" with "actions/[email protected]"

The specific issues I see here:

  • v2.5.0 is considered more recent than version v3 for actions/checkout.
  • v0.5.6 is considered more recent than main, although main references the latest unreleased code from the default branch.
  • v4.3.0 is being proposed for the short syntax v4, although I would assume that v4 will always use the latest release of the v4 major version (currently being v4.3.0 for actions/setup-python). I am not sure about this though, as I could not find any information on which version is being picked by GitHub Actions in this case.

Include release tag in comment when using `release-commit-sha`

When using release-commit-sha, it would be helpful to be able to see what the corresponding release tag is. Changing from one SHA to another isn't immediately human-meaningful, but seeing a tag go from something like 0.3.1 to 1.0.0 is very human-meaningful:

Before:

-      - uses: actions/checkout@8f4b7f848...
+      - uses: actions/checkout@8e5e7e5ab...

After:

-      - uses: actions/checkout@8f4b7f848...  # 0.3.1
+      - uses: actions/checkout@8e5e7e5ab...  # 1.0.0

I think the tag names must already be known when using release-commit-sha, they're just not getting included in the changes to the yaml, so hopefully this would be easy to implement?

Thanks for your consideration and for maintaining this useful action!

0.7.0 fails even if there is no error

When running this action, the workflows fails, even if there's no evident error and all the actions are checked:

image

The job is configured like this:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          # Access token with `workflow` scope is required
          token: ${{ secrets.ACTION_GITHUB_TOKEN }}

      - name: Run GitHub Actions Version Updater
        uses: saadmk11/[email protected]
        with:
          # Optional, This will be used to configure git
          # defaults to `github-actions[bot]` if not provided
          #committer_username: 'test'
          #committer_email: '[email protected]'
          # Optional, allows customizing the commit message and pull request title
          # Both default to 'Update GitHub Action Versions'
          commit_message: 'Github Actions versions have changed'
          pull_request_title: 'Github Actions versions have changed'
          # Access token with `workflow` scope is required
          token: ${{ secrets.ACTION_GITHUB_TOKEN }}
          release_types: major

Not updating to new versions

Please see this PR

It lists 2 actions that have new versions but does not include the version bump in the PR code changes

The 2 actions are

google-github-actions/auth@v0
google-github-actions/deploy-cloudrun@v0

And they should have been set to

google-github-actions/[email protected]
google-github-actions/[email protected]

Add Option to Let Users Specify Custom Workflow Locations

We are currently using GitHub's API (which always returns .github/workflows/*.y(a)ml files) to find the workflow locations, This works in most cases but if a repository has workflow files in different locations then those files are not checked.

Originally Posted By: @villelahdenvuo
Ref: #29

for iterating the workflow files.
By default it will look in .github/workflows/*.y(a)ml for files.

Not my code, but I'm using this fork because I have some workflows in different folders that I would also like to keep up to date, but the fork is lacking the latest updates.

Feature Request: Add the option to add labels to the created PR

This seems like a fairly standard practice for GitHub Actions that create issues and PRs for you so I was surprised to find this wasn't an option here. We've got a couple of very PR-heavy repos so being able to add labels like "automated" and "dependencies" is very helpful for filtering bot-generated PRs from ones created by humans, especially for reminders and notifications.

Feature Request: be able to scan actions defined within a composite actions

Since composite actions are a alternative method to make the workflows more reusable, i think it would be good to add a way to check if the actions defined within have a new version.

Today, a composite action can be defined in two ways:

  • In a public repository
    Then, can be used in a workflow like another Github Action in the marketplace (ex: uses: actions/checkout@v3). For this case, the version updater will work without problems.

  • In a private repository
    For this case, you need to checkout the repo that contains the composite action using a PAT token. Then in the step, the action need be specified specified without the version (@x.x.x). The version of the composite action is determined by the ref input of the checkouted step of the composite action repo.


The problem is, in both cases, there is no way to check the versions of the actions used in the composite actions. Our projects uses a lot of these composite actions in the workflows. We used this approach because Github Actions does not support using reusable workflows from private repositores, only composite actions. There is a way to add this feature? Maybe scan the composite action file, instead of the workflow itself...

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.