Skip to content

kty1965/add-github-meta-ips-to-allowlist

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date
Feb 14, 2024
Feb 29, 2024
Feb 29, 2024
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Feb 14, 2024
Feb 16, 2024
Feb 15, 2024
Feb 14, 2024
Feb 16, 2024
Feb 16, 2024
Feb 16, 2024

Repository files navigation

add-github-meta-ips-to-allowlist

A GitHub Action that will load Enterprise IP Allow List Entries from the GitHub meta API.

Prerequisite

  • Make Github PAT(classic) which has admin:enterprise permission

  • In first, process this workflow need to disable ip allowlist in Enterprise setting

Inputs

name required description
github_token true A GitHub Access Token that has the admin:enterprise permission. Required
enterprise_slug true The slug for the enterprise account to be modified. Required
metadata_key false Check the meta API, dependabot, actions, importer, pages, packages, github_enterprise_importer, git, api, web, hooks
additional_cidr_entries false additional cidr entries with yaml string names
scope false default: @scope, select prefix of name
mode false default: sync, mode sync, delete available

Environments

name description
API_CONCURRENCY using request to github graphql concurrency

Examples

if you change input scope already created allowlist does not changed. The scope groups only the allowList that we want to manage.

  • only metadata actions

    - name: Add Actions to IP Allow List
      uses: kty1965/[email protected]
      with:
        github_token: ${{ secrets.ENTERPRISE_ACCESS_PAT }}
        enterprise_slug: ENTERPRISE_NAME
        metadata_key: actions
  • only additional_cidr_entries

    - name: Add additional cidr entries to IP Allow List
      uses: kty1965/[email protected]
      with:
        github_token: ${{ secrets.ENTERPRISE_ACCESS_PAT }}
        enterprise_slug: ENTERPRISE_NAME
        additional_cidr_entries: |
          - name: internal-vpc-a
            cidr: 10.0.0.0/16
            isActive: true
          - name: internal-vpc-b
            cidr: 10.1.0.0/16
            isActive: false
  • everyday sync & trigger on github web

    on:
      push:
        branches:
          - main
      # https://api.github.com/meta ip cidrs can change, so every day sync
      schedule:
        - cron: '0 20 * * *'
      # workflow can trigger on github web
      workflow_call:
    
    concurrency:
      group: ${{ github.workflow }}
      cancel-in-progress: false
    
    jobs:
      github-ip-allow-list-sync:
        runs-on: ubuntu-22.04
        steps:
          - name: Add Custom CIDRs to IP Allow List
            env:
              UV_THREADPOOL_SIZE: 32
            uses: kty1965/[email protected]
            with:
              github_token: ${{ secrets.ENTERPRISE_ACCESS_PAT }}
              enterprise_slug: modusign
              metadata_key: actions
              scope: '@scope'
              mode: 'sync'
              additional_cidr_entries: |
                - name: internal-vpc-a
                  cidr: 10.0.0.0/16
                  isActive: true
                - name: internal-vpc-b
                  cidr: 10.1.0.0/16
                  isActive: false

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published