環境拡張機能

Updated 2 years ago by Admin

環境拡張機能を使用して、パイプラインステップにカスタム環境変数を提供できます。さらに、この拡張機能を使用して、デフォルトのシークレットまたはデフォルトのプラグインパラメータをパイプラインに挿入できます(シークレットとプラグインパラメータは環境変数としてパイプラインに渡されます)


構成

次の構成パラメーターを提供することで、拡張機能をランナーに登録できます。

  • DRONE_ENV_PLUGIN_ENDPOINT
    拡張機能へのhttpリクエストを行うために使用されるエンドポイントを提供します。
  • DRONE_ENV_PLUGIN_TOKEN
    拡張機能へのhttpリクエストを認証するために使用されるトークンを提供します。このトークンは、サーバと拡張機能の間で共有されます。


使い方

ランナーは、HTTPポストリクエストを作成して、各パイプラインステップに挿入される環境変数のマップを取得します。


リクエスト

環境拡張機能は、環境変数のマップを返すHTTPリクエストを受け取ります。 JSONでエンコードされた要求本文には、リポジトリとビルド情報が含まれます。

リクエストボディの定義:

1 class Request {
2 repo: Repository;
3 build: Build;
4 }

1 class Repository {
2 id: int64;
3 uid: int64;
4 user_id: int64;
5 namespace: string;
6 name: string;
7 slug: string;
8 scm: string;
9 git_http_url: string;
10 git_ssh_url: string;
11 link: string;
12 default_branch: string;
13 private: boolean;
14 visibility: string;
15 active: boolean;
16 config: string;
17 trusted: boolean;
18 protected: boolean;
19 ignore_forks: boolean;
20 ignore_pulls: boolean;
21 cancel_pulls: boolean;
22 timeout: int64;
23 counter: int64;
24 synced: int64;
25 created: int64;
26 updated: int64;
27 version: int64;
28 }

1  class Build {
2 id: int64;
3 repo_id: int64;
4 number: int64;
5 parent: int64;
6 status: string;
7 error: string
8 event: string;
9 action: string;
10 link: string;
11 timestamp: int64;
12 title: string;
13 message: string;
14 before: string;
15 after: string;
16 ref: string;
17 source_repo: string;
18 source: string;
19 target: string;
20 author_login: string;
21 author_name: string;
22 author_email: string;
23 author_avatar: string;
24 sender: string;
25 params: [string][string];
26 cron: string;
27 deploy_to: string;
28 deploy_id: int64;
29 started: int64;
30 finished: int64;
31 created: int64;
32 updated: int64;
33 version: int64;
34 }


レスポンス

環境拡張機能は、200のレスポンスコードとJSON形式の環境変数のリストで要求にレスポンスする必要があります。

レスポンス例:

1  [
2 {
3 "name": "keyb",
4 "data": "valuea",
5 "mask": false
6 },
7 {
8 "name": "keyb",
9 "data": "valueb",
10 "mask": false
11 }
12 ]


承認

httpリクエストは、共有シークレットを使用するhttp signaturesドラフト仕様に従って署名されます。受信者は、署名を使用してウェブフックの信頼性と整合性を検証する必要があります。


スタータープロジェクト

環境拡張機能の作成に興味がある場合は、スタータープロジェクトをベースとして開発を開始することをお勧めします。


How did we do?