Skip to content

Push a commit to and open a pull request on pyvideo/pyvideo when new data is merged into main #1184

Open

Description

@jonafato

The current process for updating data in the https://github.com/pyvideo/pyvideo repository (which is where the site is built and deployed from) is a manual update of the git submodule. This almost always follows the same automatable process of create a "fastforward-data-dir" branch -> update the data submodule -> open a pull request on pyvideo/pyvideo to preview changes. While this is not a large task, it's consistent enough that it's worth automating via GitHub Actions. A suitable workflow would look like the following steps triggered by a merge to main (skipping commits where the affected filepaths do not modify any of the site data, e.g. documentation-only changes):

  1. Create a "fastforward-data-directory" branch for pyvideo/pyvideo if one does not already exist, or fetch the existing branch if it does
  2. Update the data submodule to point to the new latest commit (i.e. the merge that triggers the workflow)
  3. Push the branch to the pyvideo/pyvideo repository
  4. Open a pull request if one does not already exist

There are several approaches that can be used for this task, including GitHub actions using the GitHub CLI or off the shelf actions like action-pull-request and action-commit-push. One GitHub limitation to note: a custom GitHub token must be used in order for a commit pushed by an action to trigger another action, so the implementation should support pulling that value from a GitHub secret (there are examples of this in the linked push and pull request actions).

Activity

  1. amyreese commented on May 14, 2025

    @amyreese
    Member

    Is there an update/deployment flow that just gets rid of the need for submodules? Ie, add data/ to the gitignore list, and just force a checkout into that dir as part of the update/build/deploy step?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions