GitHubでパーソナル・アクセス・トークンを生成したので、それを使ってクリデンシャルを作成します。
また、今回はAPEXのエクスポート処理をPL/SQLのプロシージャとして実装します。APEXアプリケーションからはAPEX 22.2の新機能であるAPI呼び出しを使って、プロシージャを呼び出します。
クリデンシャルの作成
GitHubの操作に使用するクリデンシャルは、DBMS_CLOUD.CREATE_CREDENTIALを呼び出して作成します。そのため、APEXのワークスペース・スキーマにパッケージDBMS_CLOUDの実行権限を与えます。また、後で作成するプロシージャが使用するパッケージDBMS_CLOUD_REPOの実行権限も与えておきます。
grant execute on dbms_cloud to <ワークスペース・スキーマ名>;
grant execute on dbms_cloud_repo to <ワークスペース・スキーマ名>;
ワークスペース名がAPEXDEVの場合、ワークスペース・スキーマ名は通常、先頭にWKSP_が付加されWKSP_APEXDEVのようになります。
grant execute on dbms_cloud to wksp_apexdev;
grant execute on dbms_cloud_repo to wksp_apexdev;
データベース・アクションに管理者ユーザーADMINで接続し、SQLより実行します。
以下のコマンドを実行します。
begin
dbms_cloud.create_credential(
credential_name => 'GITHUB_CRED'
, username => 'GitHubのユーザー名'
, password => 'GitHubのPersonal access token'
);
end;
作成するクリデンシャルの名前はGITHUB_CREDとしました。
プロシージャEXPORT_APEX_APP_TO_GITHUBの作成
APEXアプリケーションをGitHubへエクスポートするプロシージャEXPORT_APEX_APP_TO_GITHUBを作成します。
以下のSQLを実行します。
SQLワークショップのSQLコマンドより実行します。
APEXアプリケーションのエクスポートは、2回実行しています。最初にAPEXアプリケーションとしてインポート可能なZIP形式でのエクスポート、2回目は人間が読めるYAML形式でエクスポートしています。