---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# GitHub パイプラインアクション

# GitHub パイプラインアクション {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：14分

GitHubパイプラインでこれらのアクションを使用して、DevOps コンフィグデータモデルを操作します。  
重要:  
Washington DC リリース以降、DevOps コンフィグ は将来の廃止に備えて準備されます。これは非表示になり、新しいインスタンスにはインストールされなくなりますが、引き続きサポートされます。詳細については、Now Support ナレッジベースの「[Deprecation Process (廃止プロセス) \[KB0867184\]](https://support.servicenow.com/kb_view.do?sysparm_article=KB0867184)」の記事を参照してください。

GitHub スクリプト化されたパイプラインと宣言型パイプラインがサポートされています。

特定のパイプライン定義を作成するために、 ServiceNow DevOps コンフィグ検証 (servicenow-devops-config-validate) および DevOps コンフィグエクスポート (servicenow-devops-config-export) GitHub アクションが提供されます。

## DevOps コンフィグ検証 (servicenow-devops-config-validate) {#devops-config-github-integration__section_rsc_wdj_psb}

ServiceNowインスタンスに構成データをアップロードして検証します。

入力引数
:   {#devops-config-github-integration__table_k3q_bf4_tzb__entry__2}

    | Argument | Description (説明) |
    |-|-|
    | instance-url | ServiceNowインスタンスの URL です。 |
    | devops-integration-username | DevOps コンフィグ 統合ユーザー名。 |
    | devops-integration-user-password | DevOps コンフィグ 統合ユーザーパスワード。 |
    | application-name | DevOps コンフィグ アプリケーション名。 |
    | target | 構成ファイルがアップロードされるデータモデルターゲット。 データモデルのターゲットの例を次に示します。 * `component` * `collection` * `展開可能` {#devops-config-github-integration__ul_yrv_h34_tzb} |
    | deployable-name | DevOps コンフィグデータモデル内の展開可能項目名。 |
    | collection-name | (オプション)データモデル内のコレクション名。ターゲットがコレクションの場合は必須です。 |
    | 名前パス | (オプション)名前 構成ファイルがアップロードされるデータモデル内のノードのパス。 |
    | config-file-path | 単一のファイルをアップロードするときのファイルパス、または複数のファイルをデータモデルにアップロードするときの Ant スタイルパターンに基づくファイルパスパターン。Apache Ant.1.10.14 マニュアルドキュメントの Ant スタイルのパターンについては、[ディレクトリベースのタスク](https://ant.apache.org/manual/dirtasks.html)を参照してください。 |
    | データ・フォーマット | 構成ファイルのデータ形式。 データ形式の例は次のとおりです。 * `CSV` * `INI` * `JSON` * `プロパティ` * `RAW` * `XML` * `YAML` {#devops-config-github-integration__ul_vpc_rg4_tzb} |
    | データ形式属性 | (オプション)構成データを解析するための拡張データ形式属性。 |
    | 自動コミット | アップロード成功後に構成データをコミットするためのブール値 (true または false) 入力。 デフォルト値：`True` |
    | 自動検証 | コミット成功後に構成データを検証するためのブール値 (true または false) 入力。 デフォルト値：`True` |
    | 自動公開 | 検証成功後に構成データを公開するためのブール値 (true または false) 入力。 デフォルト値：`True` |
    | 変更セット | (オプション)アップロードアクションに関連付けられたオープン変更セット。指定しない場合、新しい変更セットが作成されます。 |
    | snapshot-validation-timeout | (オプション)アクションが失敗する前に検証が完了する最大時間 (分)。 デフォルト値：`60` |
    | terminate-on-policy-validation-failures | (オプション)ポリシー検証の失敗後に GitHub ワークフローを終了するためのブール値 (true または false) 入力。 デフォルト値：`false` |
    [ ]

    {#devops-config-github-integration__table_k3q_bf4_tzb}

出力
:

    changeset-number

    :   アップロードアクションに関連付けられた変更セット番号。

    snapshot-name

    :   展開可能項目の最新のスナップショットの名前。

    validation-status

    :   スナップショットの検証ステータス。例: `合格`、 `passed_with_exception`、 `不合格`、 `execution_error`、 `not_validated`

    validation-results

    :   スナップショットの JSON 形式の検証結果。

例 --- 展開可能項目への構成ファイルのアップロード{#devops-config-github-integration__example-snapshot}
:

        upload_and_validate_job:
            name: Upload and validate
            needs: <upstream job>
            runs-on: ubuntu-latest
            steps:     
              - name: ServiceNow Devops Config Validate
                uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
                with:
                  instance-url: ${{ secrets.SN_INSTANCE_URL }}
                  devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                  devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                  application-name: PaymentDemo
                  target: deployable
                  deployable-name: Production
                  name-path: web-api-v1.0
                  auto-commit: true
                  auto-validate: true
                  auto-publish: true
                  config-file-path: data/k8s/helm/*.yml
                  data-format: yaml
                  snapshot-validation-timeout: 60
                  terminate-on-policy-validation-failures: true

例 --- コレクションへの構成ファイルのアップロード
:

        upload_and_validate_job:
            name: Upload and validate
            needs: <upstream job>
            runs-on: ubuntu-latest
            steps:     
              - name: ServiceNow Devops Config Validate
                uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
                with:
                  instance-url: ${{ secrets.SN_INSTANCE_URL }}
                  devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                  devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                  application-name: PaymentDemo
                  target: collection
                  deployable-name: Production
                  collection-name: release-1.0
                  name-path: web-api-v1.0
                  auto-commit: true
                  auto-validate: true
                  auto-publish: true
                  config-file-path: data/k8s/helm/*.yml
                  data-format: yaml
                  snapshot-validation-timeout: 60
                  terminate-on-policy-validation-failures: true

例 --- コンポーネントへの構成ファイルのアップロード
:

        upload_and_validate_job:
            name: Upload and validate
            needs: <upstream job>
            runs-on: ubuntu-latest
            steps:     
              - name: ServiceNow Devops Config Validate
                uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
                with:
                  instance-url: ${{ secrets.SN_INSTANCE_URL }}
                  devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                  devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                  application-name: PaymentDemo
                  target: component
                  deployable-name: Production
                  name-path: web-api-v1.0
                  auto-commit: true
                  auto-validate: true
                  auto-publish: true
                  config-file-path: data/k8s/helm/*.yml
                  data-format: yaml
                  snapshot-validation-timeout: 60
                  terminate-on-policy-validation-failures: true

例 --- 1 回のコミットで複数の構成ファイルをアップロードする
:

        upload_and_validate_job:
            name: Upload and validate
            
            needs: <upstream job>
            runs-on: ubuntu-latest
            # Upload an XML file to a component
            steps:     
              - name: ServiceNow Devops Config Validate
                id: upload_and_validate_xml
                uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
                with:
                  instance-url: ${{ secrets.SN_INSTANCE_URL }}
                  devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                  devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                  application-name: PaymentDemo
                  target: component
                  deployable-name: Production
                  name-path: web-api-v1.0
                  auto-commit: false
                  auto-validate: true
                  auto-publish: true
                  config-file-path: data/infra/v1/*.xml
                  data-format: xml
                  snapshot-validation-timeout: 60
                  terminate-on-policy-validation-failures: true

            # Upload a JSON file to the vars folder of a deployable
            steps:     
              - name: ServiceNow Devops Config Validate
                id: upload_and_validate_json
                uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
                with:
                  instance-url: ${{ secrets.SN_INSTANCE_URL }}
                  devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                  devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                  application-name: PaymentDemo
                  target: component
                  deployable-name: Production
                  name-path: web-api-v1.0
                  auto-commit: true
                  auto-validate: true
                  auto-publish: true
                  config-file-path: data/infra/prod/*.json
                  data-format: json
                  snapshot-validation-timeout: 60
                  terminate-on-policy-validation-failures: true
                  changeset : ${{ steps.upload_and_validate_xml.outputs.changeset-number }}

## DevOps コンフィグエクスポート (servicenow-devops-config-export) {#devops-config-github-integration__section_ynh_3nq_11c}

ServiceNow DevOps コンフィグを使用して構成データをエクスポートします。

入力引数
:   {#devops-config-github-integration__table_znh_3nq_11c__entry__2}

    | Argument | Description (説明) |
    |-|-|
    | instance-url | ServiceNowインスタンスの URL です。 |
    | devops-integration-username | DevOps コンフィグ 統合ユーザー名。 |
    | devops-integration-user-password | DevOps コンフィグ 統合ユーザーパスワード。 |
    | application-name | DevOps コンフィグ アプリケーション名。 |
    | deployable-name | DevOps コンフィグデータモデル内の展開可能項目名。 |
    | exporter-name | DevOps コンフィグデータモデルから構成データをエクスポートするエクスポーター名。 |
    | snapshot-name | (オプション)データのエクスポート元のスナップショット。スナップショットが指定されていない場合は、展開可能項目の最新のスナップショットが使用されます。 |
    | exporter-data-format | (オプション)スナップショットデータをエクスポートする形式。 データ形式の例は次のとおりです。 * `CSV` * `INI` * `JSON` * `プロパティ` * `RAW` * `XML` * `YAML` {#devops-config-github-integration__ul_srz_khv_11c} |
    | exporter-arguments | (オプション)エクスポーターとともに使用される引数。値は、文字列として表される JSON オブジェクトである必要があります。 |
    [ ]

    {#devops-config-github-integration__table_znh_3nq_11c}

出力
:

    exporter-content

    :   エクスポーターがエクスポートする構成データ。

例 --- 特定のスナップショットのエクスポート
:

        export:
            name: Export config
            needs: <upstream job>
            runs-on: ubuntu-latest
            steps:
            - name: ServiceNow DevOps Config Export
              uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
              with:
                instance-url: ${{ secrets.SN_INSTANCE_URL }}
                devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                application-name: PaymentDemo
                deployable-name: Production
                exporter-name: returnDataforNodeName-now
                snapshot-name: Production-v1.dpl
                exporter-arguments: '{ "nodeName": "node1" }'

例 --- 最新の展開済みスナップショットを追加のパラメーターとともにエクスポートする
:

        export:
            name: Export config
            needs: <upstream job>
            runs-on: ubuntu-latest
            steps:
            - name: ServiceNow DevOps Config Export
              uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
              with:
                instance-url: ${{ secrets.SN_INSTANCE_URL }}
                devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
                devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
                application-name: PaymentDemo
                deployable-name: Production
                exporter-name: returnDataforNodeName-now
                exporter-arguments: '{ "nodeName": "node1" }'
                exporter-data-format: XML


