{
  "organization": "armbian",
  "repository": "build",
  "actions": [
    {
      "name": "Create Jira ticket",
      "filename": "data-jira-ticket.yml",
      "category": "Data",
      "description": "Creates a Jira ticket based on newly opened GitHub issues, syncing relevant information such as the issue title and number. It utilizes a GitHub Action to facilitate the transfer of data from GitHub to Jira, ensuring that issues are tracked in both systems.",
      "execution_method": "Triggered on issues opened",
      "status_link": "https://github.com/armbian/build/actions/workflows/data-jira-ticket.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/data-jira-ticket.yml",
      "filelength": 605,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-16T16:16:46Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 34,
      "last_run_duration_seconds": 34,
      "total_runs": 8,
      "cron_schedule": null
    },
    {
      "name": "Sync board list",
      "filename": "data-sync-board-list.yml",
      "category": "Data",
      "description": "Updates the board JSON in the armbian/armbian.github.io repository based on changes to board configuration files. Sends a repository dispatch event to trigger further processing for generating a build engine inventory.",
      "execution_method": "push on config/boards/*.*",
      "status_link": "https://github.com/armbian/build/actions/workflows/data-sync-board-list.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/data-sync-board-list.yml",
      "filelength": 594,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-19T19:14:22Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 7,
      "last_run_duration_seconds": 7,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Sync labels",
      "filename": "data-sync-labels.yml",
      "category": "Data",
      "description": "Syncs labels from a YAML file to issues and pull requests based on modifications. Applies labels automatically when changes are detected in the specified YAML file, enhancing issue and PR management. Supports a dry-run mode for pull requests to preview label changes before application.",
      "execution_method": "workflow_dispatch, push to main branch, pull_request for .github/labels.yml",
      "status_link": "https://github.com/armbian/build/actions/workflows/data-sync-labels.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/data-sync-labels.yml",
      "filelength": 958,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": null,
      "last_run_status": null,
      "retry_count": 0,
      "total_run_time_seconds": null,
      "last_run_duration_seconds": null,
      "total_runs": 0,
      "cron_schedule": null
    },
    {
      "name": "Sync maintainers",
      "filename": "data-sync-maintainers.yml",
      "category": "Data",
      "description": "Syncs maintainers' information from a contacts database to board configuration files, updating the BOARD_MAINTAINER property. If changes are detected, it creates a Pull Request to reflect these updates. The process includes downloading a JSON file, parsing it, and modifying configuration files accordingly.",
      "execution_method": "schedule, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/data-sync-maintainers.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/data-sync-maintainers.yml",
      "filelength": 4346,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-20T19:29:48Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 52,
      "last_run_duration_seconds": 52,
      "total_runs": 10,
      "cron_schedule": "at 0 minutes past the hour"
    },
    {
      "name": "Sync tools",
      "filename": "data-sync-tools.yml",
      "category": "Data",
      "description": "Updates versions of specified tools in scripts by checking the latest releases from their respective repositories and creating a pull request if an update is necessary. This workflow acts as a self-created dependabot for tools that cannot be updated by standard methods. New tools can be added easily by modifying the matrix configuration.",
      "execution_method": "workflow_dispatch, schedule",
      "status_link": "https://github.com/armbian/build/actions/workflows/data-sync-tools.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/data-sync-tools.yml",
      "filelength": 5655,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-16T04:39:22Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 16,
      "last_run_duration_seconds": 16,
      "total_runs": 1,
      "cron_schedule": "at 42 minutes past the hour, at 3:00, on day 16"
    },
    {
      "name": "Dispatch to fork",
      "filename": "infrastructure-dispatch-to-fork.yml",
      "category": "Infrastructure",
      "description": "Dispatches events to forked repositories based on various GitHub actions. It sends a repository dispatch event with details about the triggering event, including references and SHA. This operation is conditioned to run only on forked repositories and requires a valid secret for authentication.",
      "execution_method": "push, release, deployment, pull_request, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/infrastructure-dispatch-to-fork.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/infrastructure-dispatch-to-fork.yml",
      "filelength": 1107,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-20T17:38:07Z",
      "last_run_status": "skipped",
      "retry_count": 0,
      "total_run_time_seconds": 1,
      "last_run_duration_seconds": 1,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Mirror to Codeberg",
      "filename": "infrastructure-mirror-to-codeberg.yml",
      "category": "Infrastructure",
      "description": "Pushes the contents of the repository to the Codeberg mirror, ensuring that the latest changes are reflected in the external repository. It checks out the full history of the repository before mirroring to maintain complete commit history.",
      "execution_method": "push, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/infrastructure-mirror-to-codeberg.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/infrastructure-mirror-to-codeberg.yml",
      "filelength": 858,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-20T15:30:52Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 45,
      "last_run_duration_seconds": 45,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Announce merge",
      "filename": "maintenance-announce-merge.yml",
      "category": "Maintenance",
      "description": "Announces merges to the main branch by sending a notification to Discord with details about the merge, including the repository, actor, and commit message.",
      "execution_method": "push to main branch",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-announce-merge.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-announce-merge.yml",
      "filelength": 939,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-20T15:30:19Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 12,
      "last_run_duration_seconds": 12,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Announce PR",
      "filename": "maintenance-announce-pr.yml",
      "category": "Maintenance",
      "description": "Announces pull requests labeled for maintenance on Discord for review, providing details about the PR and the author. It sends a formatted message including the repository name, author, and a link to the PR.",
      "execution_method": "pull_request (labeled)",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-announce-pr.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-announce-pr.yml",
      "filelength": 1147,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-20T02:03:50Z",
      "last_run_status": "skipped",
      "retry_count": 0,
      "total_run_time_seconds": 2,
      "last_run_duration_seconds": 2,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Auto-label PR",
      "filename": "maintenance-auto-label.yml",
      "category": "Maintenance",
      "description": "Automatically labels pull requests based on size, file categories, and creation date, while also removing the 'Ready to merge' label when a PR is updated. It categorizes PRs using a predefined configuration and assigns size labels based on the number of changed lines. Additionally, it tracks PRs by assigning quarterly labels based on their creation month.",
      "execution_method": "pull_request_target",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-auto-label.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-auto-label.yml",
      "filelength": 3919,
      "edited": "2026-03-23T06:31:05.000Z",
      "executed": "2026-04-20T17:38:18Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 13,
      "last_run_duration_seconds": 13,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Build artifacts",
      "filename": "maintenance-build-artifacts.yml",
      "category": "Maintenance",
      "description": "Generates build artifacts for pull requests labeled with 'Build' by authorized members of the 'Release manager' team. It checks user membership before proceeding to compile the artifacts, ensuring only eligible contributors can trigger the build process.",
      "execution_method": "pull_request_target",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-build-artifacts.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-build-artifacts.yml",
      "filelength": 1436,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-20T17:38:15Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 10,
      "last_run_duration_seconds": 10,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Check board assets",
      "filename": "maintenance-check-board-assets.yml",
      "category": "Maintenance",
      "description": "Verifies assets for newly added board configurations in pull requests by checking for the existence of required board images and vendor logos in a specified repository. It generates a comment listing any missing assets and instructions for adding them. The workflow ensures that all necessary files are present to maintain the integrity of the board display in the Armbian Imager.",
      "execution_method": "pull_request_target",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-check-board-assets.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-check-board-assets.yml",
      "filelength": 6286,
      "edited": "2026-04-10T07:11:15.000Z",
      "executed": "2026-04-20T17:38:40Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 35,
      "last_run_duration_seconds": 35,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Analyze kernel security",
      "filename": "maintenance-check-kernel-security.yml",
      "category": "Maintenance",
      "description": "Analyzes Linux kernel options for security hardening by checking configuration files against security standards. It identifies potential security issues in kernel configurations and summarizes the findings in the GitHub Actions job summary. The process excludes RISC-V configurations due to lack of support.",
      "execution_method": "workflow_dispatch, pull_request",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-check-kernel-security.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-check-kernel-security.yml",
      "filelength": 2105,
      "edited": "2026-04-20T06:03:23.000Z",
      "executed": "2026-04-20T17:38:40Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 34,
      "last_run_duration_seconds": 34,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Clean workflow logs",
      "filename": "maintenance-clean-workflow-logs.yml",
      "category": "Maintenance",
      "description": "Cleans up old workflow logs by deleting runs older than a specified number of days. It can be executed on a defined schedule or manually through workflow dispatch with customizable parameters for the age of logs to delete.",
      "execution_method": "schedule, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-clean-workflow-logs.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-clean-workflow-logs.yml",
      "filelength": 757,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-20T00:57:42Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 70,
      "last_run_duration_seconds": 70,
      "total_runs": 3,
      "cron_schedule": "at 0 minutes past the hour, at 0:00, on Mon"
    },
    {
      "name": "Label PR on approval",
      "filename": "maintenance-label-on-approval.yml",
      "category": "Maintenance",
      "description": "Labels pull requests as 'Ready to merge' when they receive approval from committers, and removes specific review-related labels. It fetches the pull request number from a previous workflow run and performs actions based on the approval status. Additionally, it provides a comment confirming the approval status.",
      "execution_method": "workflow_run",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-label-on-approval.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-label-on-approval.yml",
      "filelength": 2028,
      "edited": "2026-04-10T07:11:15.000Z",
      "executed": "2026-04-20T17:45:47Z",
      "last_run_status": "skipped",
      "retry_count": 0,
      "total_run_time_seconds": null,
      "last_run_duration_seconds": 0,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Lint scripts",
      "filename": "maintenance-lint-scripts.yml",
      "category": "Maintenance",
      "description": "Runs ShellCheck on all scripts to analyze shell script quality and generate a report as a build artifact. It checks for errors in modified files, focusing on specific directories and file types while ensuring proper context for the analysis.",
      "execution_method": "workflow_dispatch, pull_request",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-lint-scripts.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-lint-scripts.yml",
      "filelength": 1722,
      "edited": "2026-04-20T06:03:23.000Z",
      "executed": "2026-04-20T17:38:56Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 50,
      "last_run_duration_seconds": 50,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Listen PR review",
      "filename": "maintenance-listen-review.yml",
      "category": "Maintenance",
      "description": "Saves the pull request number when a review is approved and uploads it as an artifact. This facilitates tracking and referencing approved pull requests in subsequent processes.",
      "execution_method": "pull_request_review",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-listen-review.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-listen-review.yml",
      "filelength": 543,
      "edited": "2026-04-13T04:34:49.000Z",
      "executed": "2026-04-20T17:45:45Z",
      "last_run_status": "skipped",
      "retry_count": 0,
      "total_run_time_seconds": 1,
      "last_run_duration_seconds": 1,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Rewrite kernel configs",
      "filename": "maintenance-rewrite-kernel-configs.yml",
      "category": "Maintenance",
      "description": "Builds dynamic matrices for kernel configuration rewrites and executes the rewrite process for each configuration. Collects changes, aggregates them, and opens a pull request summarizing the modifications made across multiple boards and branches. Ensures that only relevant changes are included in the final output, providing a clear summary of the updates.",
      "execution_method": "schedule, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-rewrite-kernel-configs.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-rewrite-kernel-configs.yml",
      "filelength": 11030,
      "edited": "2026-04-13T04:34:49.000Z",
      "executed": "2026-04-20T06:18:13Z",
      "last_run_status": "failure",
      "retry_count": 5,
      "total_run_time_seconds": 21399,
      "last_run_duration_seconds": 21399,
      "total_runs": 4,
      "cron_schedule": "at 0 minutes past the hour, at 0:00, on MON"
    },
    {
      "name": "Rewrite patches",
      "filename": "maintenance-rewrite-kernel-patches.yml",
      "category": "Maintenance",
      "description": "Rewrites kernel or U-Boot patches for a specified board and branch, updating the repository and compiling changes. It checks for modifications, generates a pull request if changes are detected, and provides a summary of the changes made. Temporary files are cleaned up after the process completes.",
      "execution_method": "workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-rewrite-kernel-patches.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-rewrite-kernel-patches.yml",
      "filelength": 4396,
      "edited": "2026-02-09T10:50:24.000Z",
      "executed": null,
      "last_run_status": null,
      "retry_count": 0,
      "total_run_time_seconds": null,
      "last_run_duration_seconds": null,
      "total_runs": 0,
      "cron_schedule": null
    },
    {
      "name": "Security scan",
      "filename": "maintenance-security-scan.yml",
      "category": "Maintenance",
      "description": "Runs security scans using Scorecards to analyze the repository for vulnerabilities and best practices. Publishes results to the code-scanning dashboard and uploads them as artifacts for further review. This process helps maintain the security posture of the codebase.",
      "execution_method": "branch_protection_rule, schedule (cron: '30 1 * * 6'), push (branches: [main])",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-security-scan.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-security-scan.yml",
      "filelength": 2390,
      "edited": "2026-04-13T04:34:49.000Z",
      "executed": "2026-04-20T15:31:30Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 83,
      "last_run_duration_seconds": 83,
      "total_runs": 10,
      "cron_schedule": "at 30 minutes past the hour, at 1:00, on Sat"
    },
    {
      "name": "Validate board configs",
      "filename": "maintenance-validate-board-configs.yml",
      "category": "generic",
      "description": "Validates changed board configuration files in pull requests by running a Python script that checks for errors and emits GitHub Actions annotations on the PR diff. Blocks the merge if validation errors are found, ensuring only valid configurations are merged. It specifically targets files in the 'config/boards/' directory and related scripts.",
      "execution_method": "pull_request",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-validate-board-configs.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-validate-board-configs.yml",
      "filelength": 2511,
      "edited": "2026-04-17T07:21:36.000Z",
      "executed": "2026-04-20T17:38:37Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 31,
      "last_run_duration_seconds": 31,
      "total_runs": 10,
      "cron_schedule": null
    },
    {
      "name": "Watchdog",
      "filename": "maintenance-watchdog.yml",
      "category": "Maintenance",
      "description": "Monitors and reruns failed jobs for specified workflows, ensuring stability in CI/CD processes. It checks the latest run status and triggers a rerun if the previous attempt failed and hasn't exceeded the maximum retry limit. This helps maintain the reliability of automated workflows.",
      "execution_method": "schedule, workflow_dispatch",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-watchdog.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-watchdog.yml",
      "filelength": 3104,
      "edited": "2026-01-16T14:55:01.000Z",
      "executed": "2026-04-20T19:24:19Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 8,
      "last_run_duration_seconds": 8,
      "total_runs": 10,
      "cron_schedule": "every 30 minutes"
    },
    {
      "name": "Welcome first-time issue contributor",
      "filename": "maintenance-welcome-issue.yml",
      "category": "Maintenance",
      "description": "Welcomes first-time issue contributors by sending a personalized message and labeling their issue as 'Good first issue'. It encourages engagement with the project and provides a link for sharing contact preferences. This enhances community involvement and support for new contributors.",
      "execution_method": "Triggered on issues opened",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-welcome-issue.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-welcome-issue.yml",
      "filelength": 1097,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-16T16:16:21Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 9,
      "last_run_duration_seconds": 9,
      "total_runs": 8,
      "cron_schedule": null
    },
    {
      "name": "Welcome first-time PR contributor",
      "filename": "maintenance-welcome-pr.yml",
      "category": "Maintenance",
      "description": "Welcomes first-time pull request contributors by sending a personalized message. It acknowledges their contribution and encourages further engagement with the project. The message includes a link for sharing contact preferences and a reminder to star the repository.",
      "execution_method": "pull_request_target",
      "status_link": "https://github.com/armbian/build/actions/workflows/maintenance-welcome-pr.yml",
      "script_link": "https://github.com/armbian/build/blob/main/.github/workflows/maintenance-welcome-pr.yml",
      "filelength": 1097,
      "edited": "2026-03-05T12:47:09.000Z",
      "executed": "2026-04-20T13:31:15Z",
      "last_run_status": "success",
      "retry_count": 0,
      "total_run_time_seconds": 8,
      "last_run_duration_seconds": 8,
      "total_runs": 10,
      "cron_schedule": null
    }
  ]
}
