この投稿では、git forges fancy GitLab の柔軟性によってさらに思い出すかもしれない、まったく新しい種類のソフトウェアが作成されたという信念を探りたいと思います。および GitHub。 私はもはや信じられないことを真実として受け入れません. しかし、それが価格分担を考慮した注目を集める方法論であることは間違いありません。それは、調査と git forges の使用に関する斬新な方法論を提供するからです。
Git forges git リポジトリ Web Web ホーム ホスティングをコアに提供し、それに関連するファンシー プル リクエスト、ウィキ、アリーナ トラッカー、静的 Web ホーム Web Web ホーム ホスティング、適切な統合などを追加します。 これらは結局のところ、ホストされた git リポジトリの最初の信念から離れた長期にわたる方法論であり、そこにコードを追加することもできます。 彼らはむしろもっと起源を持っています。 それらは フォン ノイマン アーキテクチャ を持ち、 チューリング トータル です。
git forge アプリ
(GFA) は git forge 上で動作するソフトウェアです。 ホストされた git リポジトリは、ソース コードを作成して助長するための本物のマップではなくなりました。 アプリ が実行される場所
- です。 おそらく、Git forge をキャリアとしてのプラットフォーム (PaaS) または
- サーバーレス コンピューティング
プロバイダーと見なす可能性が高いでしょう。 git forge 自体が実行環境であるため、アプリケーションをさまざまな場所にデプロイする必要はありません。 )
- 課題の詳細.
- 販売店詳細.
- 共働き
これは、典型的なコンピュータ アプリケーションです。発する。 Git forges は true として受け入れ、これを生成するのに不可欠な適切なものに変更します。
次に言及する問題: リポジトリをフォークすると、GFA がインスタンス化されます。 GFA は現在、git forge のナラティブの下で実行されています。 蓄積インターフェイスは、https://
.gitlab.com/ にあります。 / および HTTP POST 要求は、ソフトウェアに関与するために消滅することさえあります。 GFA は一般に、todo リスト、RSS リーダー、ウェブログ、およびその他の負荷です。 蓄積されたホームの顧客には、すべての多様な Web ソフトウェアが派手に見えますが、すべてのことが git forge 内で発生し、多様な Web Web ホーム ホスティング プロバイダーは必須ではありません. 抽選で期待しましょう。さらに、アプリの実行環境として git forge を使用することを思い出してください。
Processing Records
ビジネスの最初の通知は、ソフトウェアが詳細を理解できるようにコードを実行することです。 実行可能なジョブを解釈するために、設定ファイルが正確に git リポジトリに配置されます。 git forges が搭載するジョブ実行システムは GitLab CI と です。 GitHub Actions、それぞれ。 ジョブがトリガーされると、一時的な環境で実行されます。Linux コンテナー イメージを採用します。 これにより、Git リポジトリでホストされているコードをサーバーのどこかで一時的に忙しくすることができます。 おそらく、何時間もの無給の実行時間を認める無料手当があるかもしれません。 GFA の詳細は次のとおりです。
たとえば、RSSリーダー. 私たちのレポは、
rss-reader/ .gitlab-ci. yml - ジョブ構成ファイル fetch-fresh-feeds.sh - RSS フィードをダウンロードし、最新の投稿に注意してください
.gitlab-ci.yml ファイルには fetch-fresh- を実行するスケジュールされたパイプライン feeds.sh 15分ごと
記録の保存
保存したい機能詳細を何度も。 git forge でこれを行う主な方法は、詳細を git リポジトリ自体に保存することです。 変更可能な詳細は、details として知られる別のブランチに保持されるだけかもしれません。 そしておそらく、単に強制的に押し出されて、レポジトリのサイズが増加するのを止めずに回避することもできます。
これは、すべての git ブランチに公平なコミット履歴があるため機能します。 小売店が持つファイルの名前空間は、多様化した支店から完全に自律的なものに変わります。 この方法論は、 上の GFA のコードで真であると受け入れるために、おそらくさらに思い出すかもしれません。 predominant ブランチ に詳細を保存する詳細 優勢な branch.
レコード ストレージは、ジョブの操作が許可されているため、ジョブに割り当てられています。認証トークンのおかげで、非常に git リポジトリがあります。 GitHub で GITHUB_TOKENジョブが git リポジトリにプッシュできるようにします。 これにより、詳細を保存する方法論がジョブに提供されます。
git リポジトリ以外にも、さまざまな形式の詳細ストレージがあります。 アーティファクトは、ジョブによって生成される詳細です。 URLでダウンロード。 アーティファクトは、有効期限とファイル サイズの境界の舞台です。 キャッシングは仕事の合間にすぐにストアの詳細を手元に
この時点で、これはキャンディーであると考えることができますが、現在は何もない可能性があります。 git リポジトリが公開されている場合、内部のほとんどの詳細を保存するための方法論はもうありません。 Git フォージは、ジョブ実行のある段階で、変数をプライベートに保持し、完全に手元に置くことができる秘密のメカニズムを提供します。 これは、暗号化されているにもかかわらず、記録が公開されているように暗号化キーを隠しておくことで絶滅する可能性があります. 誰かが暗号化された詳細をダウンロードできますが、それを復号化することを望んでいる場合、彼らはもはや真実であると認めないかもしれません. アプリケーションによっては、クライアント側の暗号化と の非公開収益も含まれている可能性があります。準同型暗号.
外界とのやり取り
Git フォージは、
- として知られる屋外の世界と関わるための豊富な戦略を提供します。トリガー 。 HTTP POST 要求が行われると、トリガーによってジョブが忙殺される可能性があります。 一般に、POST リクエストには トリガー トークン が必要です。認証のために、トリガーされたジョブが誰でも呼び出せるように安定している場合、そのトークンは単に印刷されるだけかもしれません。 各ブラウザクライアントと Webhook HTTP POST リクエストによってトリガーを呼び出すことができます。
たとえば、RSS リーダー アプリで、教えられたとおりにフィードを保持する API が必要であるとします。 keep-feed-be teacher.sh を実行する HTTP POST トリガーを解釈します。 に保持されているフィードを更新するスクリプト) 詳細 支店。 git リポジトリの所有者は完全にこのトリガーを呼び出す準備ができている必要があるため、トリガー トークンを発行しません。 代わりに、リポジトリで暗号化されたままになり、ユーザーはこの秘密を解読するためのパスフレーズを提供します.
この時点でさらに、オンライン インターフェイスを提示する方が優れています。 これは、 として知られる静的ページ Web Web ホーム ホスティングの特徴のおかげで、おそらくさらに思い出すかもしれないことです。 GitLab ページ
および GitHub ページ. HTML、JavaScript、CSS、およびショットを特定のブランチにプッシュすると、静的 Web ホームが https://.gitlab.com/ /. ほとんどのセグメント GFA は非同期である可能性があるため、HTTP 応答を出力するオンライン ソフトウェアのような HTTP 要求に同期的に取り組むことはもうありません。 着信 HTTP 要求は、後で忙しくする GFA ジョブのタイム テーブルにすぎません。 これには一対の戦略があります。 ブラウザーは、XMLHttpRequest( を使用して結果をポーリングできます。 または関連する戦略。 別の方法として、GFA は何分間も実行されるジョブを起動することができますが、ジョブで実行されているオンライン ソフトウェアと連絡を取り合うための究極の方法があるかどうかを調査することはありません (着信 HTTPS を保護するのは難しいに違いありません)。 .
トリガーは、これまでに説明したものよりもストレスのない負荷を提供します。 Wiki ページの作成と変更、問題、プル アスク フィードバックに返信できます。 この方法論は、戸外の世界と対話するためにこれらのエンティティを使用することをさらに思い出すかもしれません. GFA は、アリーナ トラッカーのチャット ボットとしても機能する可能性があります。
障害物
Git フォージは GFA 用に設計されていません。 しかし、それらは完全にチューリングされ、屋外の世界と関わるための戦略を提供するように設計された最初で不可欠なものではありませんでした. これは、その機能に対する需要が高まるにつれて、段階的に追加されていました。 たぶん、git forges は、今日のクラウド Web Web ホーム ホスティング サービスに匹敵する、充実したサーバーレス Web Web ホーム ホスティングに進化するでしょう。 CI ジョブ、および git forge でアプリケーションを処理する独創的な方法論の Webhook。 結局のところ、より優れたGFAを構築することは、いくつかの課題に直面しているようです:
同期要求はありません - 強制的な検索クエリと多様な動的習慣を GFA に配置するのは面倒です。主に非同期です (そしてゆっくりと!)。 この制限は、特定のクラスのアプリケーションで発生します。 この欠点を補うために、多くのことがクライアント側で行われることもあります。 しかし、おそらく誰でも GFA で同期要求を発信することができます。輪郭を描いた詳細を手元に公開し、同様に暗号化して、gitリポジトリの所有者が完全にプレーンテキストを見ることができるようにします。 ほとんどの内部 Web アプリケーションにはこれで十分ですが、マルチユーザー アプリケーションにはもはや十分ではありません。 おそらく、git forges は GFA で機能する認証の発明を提供するため、複数のユーザーが 1 回の GFA で内部のほとんどの詳細を保存できます (git リポジトリの所有者は、おそらくすべてのユーザーの詳細を確認することもできますが、多様化したユーザーは、おそらくもはやそうではないかもしれません) . 無料の利用層 - ジョブの実行時間、ストレージ スキル、およびアスク スロットリングにより、使用方法が制限されます便利なリソース集約型の GFA は、無料利用枠を超えてしまい、有料利用枠でさえ終了するよりも早くなる可能性があります。 GFA の第一世代はおそらく慎重に設計されたすべてのジョブでゼロから書かれています。 その後、第 2 世代の GFA が、同様の時代遅れの API とナレッジ ファッションとの最近の git forge 統合を抽象化するフレームワークのプライム上に構築される可能性があります。 たとえば、Vue.js フロントエンドはおそらくキー/キープ ストア API も使用する可能性があり、要素全体が単に GFA としてホストされる可能性もあります
GFA にもかかわらずgit forges が最終的に機能させるための適切な需要がなくなった可能性があるため、元の要素は要素に変換されなくなりました。この方法論について git forges を思い出すように視点を変更することは優れています。 たとえば、私は tr として受け入れます サーバーにデプロイし、出力の詳細をオンライン サーバー ホストにプッシュするコンテナー イメージを構築するための git リポジトリを使用します。 これらすべては、ジョブを実行して GitLab Pages に公開する git リポジトリを使用して変更することもできます。 これにより、物事が簡素化され、インフラストラクチャを主張することから解放されます.
結論
Git フォージは、詳細を処理するためのジョブ、詳細を保存するための git リポジトリとアーティファクト、および屋外の世界とやり取りするためのトリガーを提供します。 git forge 上の git リポジトリとして完全に存在するアプリケーションをアセンブルすることは、おそらくさらに思い出すかもしれません。 git forge 自体は重要なアプリケーションを処理するのに不可欠であるため、コードをデプロイしたいというようなことはもうないかもしれません。 私はこれがどのように進化し、停止中にgit forgeがふっくらとしたクラウドサービスサービスに変わるかどうかを楽しみにしています. 𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺