/github-action-repo-sync

Github Action to sync repo metadata from code to repo

Primary LanguageShellMIT LicenseMIT

github-action-file-sync

Github Action to sync files across repos

Build Status

Use Cases

Keep the github metadata in sync with your code! Metadata is now configuration as code, and can be validated with a Pull Request.

Setup

Create a new file called /.github/workflows/repo-sync.yml that looks like so:

name: Repo Sync

on:
  push:
    branches:
      - master
  schedule:
    - cron: 0 0 * * *

jobs:
  repo_sync:
    runs-on: ubuntu-latest
    steps:
      - name: Fetching Local Repository
        uses: actions/checkout@master
      - name: Repo Sync
        uses: kbrashears5/github-action-repo-sync@v1.0.0
        with:
          TYPE: npm
          PATH: package.json
          TOKEN: ${{ secrets.ACTIONS }}

Parameters

Parameter Required Description
TYPE true Type of repo. See below for supported repo types
PATH true Path to the repo type's metadata file
TOKEN true Personal Access Token with Repo scope

Supported Repo Types

Repo Type File Description
npm package.json package.json for repo
nuget ProjectName.csproj csproj file for project

Tips

For repo types that aren't listed above (like this one), you can still use this action, just have to get creative.

For example (and I would recommend), you can create a file called metadata.json, choose the npm type, and make the file look like so:

{
  "description": "Repo description",
  "homepage": "https://github.com/kbrashears5/github-action-repo-sync",
  "keywords": [
    "sync",
    "repo",
    "metadata"
  ]
}

For example, see .github/workflows/repo-sync.yml & metadata.json in this repo