[{"data":1,"prerenderedAt":1766},["ShallowReactive",2],{"/ja-jp/blog/automating-agile-workflows-with-the-gitlab-triage-gem":3,"navigation-ja-jp":984,"banner-ja-jp":1413,"footer-ja-jp":1421,"blog-post-authors-ja-jp-GitLab":1663,"blog-related-posts-ja-jp-automating-agile-workflows-with-the-gitlab-triage-gem":1678,"blog-promotions-ja-jp":1704,"next-steps-ja-jp":1757},{"id":4,"title":5,"authors":6,"body":8,"category":962,"date":963,"description":964,"extension":965,"externalUrl":966,"faq":966,"featured":967,"heroImage":968,"meta":969,"navigation":230,"path":970,"seo":971,"slug":975,"stem":976,"tags":977,"template":981,"updatedDate":982,"__hash__":983},"blogPosts/ja-jp/blog/automating-agile-workflows-with-the-gitlab-triage-gem.md","gitlab-triage gemを使ったアジャイルワークフローの自動化",[7],"GitLab",{"type":9,"value":10,"toc":952},"minimark",[11,18,31,35,38,43,72,78,83,120,130,133,136,142,167,173,201,207,214,395,398,410,415,418,456,480,484,497,544,568,583,586,591,607,619,628,764,771,779,785,788,794,797,803,835,844,847,875,881,885,891,894,899,903,906,948],[12,13,14],"p",{},[15,16,17],"em",{},"「GitLab入門」シリーズへようこそ。このシリーズでは新たにGitLabを使い始める方向けに、GitLab\nDevSecOpsプラットフォームに慣れ親しむために役立つ内容をお届けします。",[12,19,20,21,30],{},"今回の記事では、",[22,23,26],"a",{"href":24,"rel":25},"https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage",[],[27,28,29],"code",{},"gitlab-triage","\ngemを取り上げます。この非常に強力なツールを使用すると、アジャイルワークフローを自動化するボットを作成できます。自動化により、手作業を排除して作業効率を向上させましょう。",[32,33,34],"h2",{"id":34},"ワークフローを自動化すべき理由",[12,36,37],{},"ソフトウェア開発では効率性は重要です。イシューやマージリクエストのトリアージなどの繰り返し発生するタスクを自動化できれば、チームの貴重な時間を確保し、一番重要な作業である「素晴らしいソフトウェアの開発」に集中できるようになります。",[12,39,40,42],{},[27,41,29],{},"を使用すれば、次のことを実現できます。",[44,45,46,54,60,66],"ul",{},[47,48,49,53],"li",{},[50,51,52],"strong",{},"一貫性の確保","：定義済みのルールに基づいて、自動的にラベルを適用し、イシューを自動的に割り当てる",[47,55,56,59],{},[50,57,58],{},"レスポンスタイムの短縮","：新たなイシューやマージリクエストに関するフィードバックを即座に得られる",[47,61,62,65],{},[50,63,64],{},"手作業の削減","：手作業でトリアージや更新を行う必要がなくなる",[47,67,68,71],{},[50,69,70],{},"生産性の向上","：チームが、コーディング作業やイノベーションの創出に集中できるようになる",[32,73,75,77],{"id":74},"gitlab-triageのご紹介",[27,76,29],{},"のご紹介",[12,79,80,82],{},[27,81,29],{},"\ngemは、GitLabプロジェクトとやり取りするボットを作成できるRubyのライブラリです。作成したボットを使用すると、次のようなさまざまなアクションの実行を自動化できます。",[44,84,85,91,97,103,109,115],{},[47,86,87,90],{},[50,88,89],{},"ラベル付け","：イシューやマージリクエストを自動的に分類する",[47,92,93,96],{},[50,94,95],{},"コメントの追加","：最新情報やフィードバックの提供、または情報の提供依頼を行う",[47,98,99,102],{},[50,100,101],{},"割り当て","：イシューやマージリクエストを適切なチームメンバーに割り当てる",[47,104,105,108],{},[50,106,107],{},"クローズ","：解決済み、または古くなったイシューやマージリクエストをクローズする",[47,110,111,114],{},[50,112,113],{},"作成","：特定のイベントや条件に基づいて新しいイシューを作成する",[47,116,117],{},[50,118,119],{},"ほかにもさまざまなことを行えます！",[12,121,122,123,129],{},"ぜひ",[22,124,126,128],{"href":24,"rel":125},[],[27,127,29],{},"\ngemリポジトリ","をチェックしてみてください。",[32,131,132],{"id":132},"トリアージボットのセットアップ",[12,134,135],{},"では、最初のトリアージボットをセットアップして動かしてみましょう！",[137,138,139],"ol",{},[47,140,141],{},"gemをインストールします。（注：gemコマンドは、プログラミング言語のRubyがインストールされている場合に利用できます）。",[143,144,149],"pre",{"className":145,"code":146,"language":147,"meta":148,"style":148},"language-bash shiki shiki-themes github-light","gem install gitlab-triage\n","bash","",[27,150,151],{"__ignoreMap":148},[152,153,156,160,164],"span",{"class":154,"line":155},"line",1,[152,157,159],{"class":158},"s7eDp","gem",[152,161,163],{"class":162},"sYBdl"," install",[152,165,166],{"class":162}," gitlab-triage\n",[137,168,170],{"start":169},2,[47,171,172],{},"GitLab APIトークンを取得します。",[44,174,175,183,190,196],{},[47,176,7,177,182],{},[22,178,181],{"href":179,"rel":180},"https://gitlab.com/-/profile/preferences",[],"プロファイル設定","に移動します。",[47,184,185,186,189],{},"「",[50,187,188],{},"アクセストークン","」に移動します。",[47,191,192,195],{},[27,193,194],{},"api","スコープを指定して、新しいトークンを作成します。",[47,197,198],{},[50,199,200],{},"作成したトークンを安全な場所に保存し、このガイドがいつ頃終わるかに基づいて有効期限を設定します。",[137,202,204],{"start":203},3,[47,205,206],{},"トリアージポリシーを定義します。",[12,208,209,210,213],{},"プロジェクトのルートディレクトリに",[27,211,212],{},".triage-policies.yml","という名前のファイルを作成します。このファイルには、ボットの動作を制御するルールを含めます。以下に簡単な例をご紹介します。",[143,215,219],{"className":216,"code":217,"language":218,"meta":148,"style":148},"language-yaml shiki shiki-themes github-light","---\n\n- name: \"Apply 'WIP' label\"\n  condition:\n    draft: true\n  action:\n    labels:\n      - status::wip\n\n- name: \"Request more information on old issue\"\n  condition:\n   date:\n    attribute: updated_at\n    condition: older_than\n    interval_type: months\n    interval: 12\n  action:\n    comment: |\n      {{author}} This issue has been open for more than 12 months, is this still an issue?\n\n","yaml",[27,220,221,226,232,248,257,269,277,285,294,299,311,318,326,337,348,359,370,377,389],{"__ignoreMap":148},[152,222,223],{"class":154,"line":155},[152,224,225],{"class":158},"---\n",[152,227,228],{"class":154,"line":169},[152,229,231],{"emptyLinePlaceholder":230},true,"\n",[152,233,234,238,242,245],{"class":154,"line":203},[152,235,237],{"class":236},"sgsFI","- ",[152,239,241],{"class":240},"shJU0","name",[152,243,244],{"class":236},": ",[152,246,247],{"class":162},"\"Apply 'WIP' label\"\n",[152,249,251,254],{"class":154,"line":250},4,[152,252,253],{"class":240},"  condition",[152,255,256],{"class":236},":\n",[152,258,260,263,265],{"class":154,"line":259},5,[152,261,262],{"class":240},"    draft",[152,264,244],{"class":236},[152,266,268],{"class":267},"sYu0t","true\n",[152,270,272,275],{"class":154,"line":271},6,[152,273,274],{"class":240},"  action",[152,276,256],{"class":236},[152,278,280,283],{"class":154,"line":279},7,[152,281,282],{"class":240},"    labels",[152,284,256],{"class":236},[152,286,288,291],{"class":154,"line":287},8,[152,289,290],{"class":236},"      - ",[152,292,293],{"class":162},"status::wip\n",[152,295,297],{"class":154,"line":296},9,[152,298,231],{"emptyLinePlaceholder":230},[152,300,302,304,306,308],{"class":154,"line":301},10,[152,303,237],{"class":236},[152,305,241],{"class":240},[152,307,244],{"class":236},[152,309,310],{"class":162},"\"Request more information on old issue\"\n",[152,312,314,316],{"class":154,"line":313},11,[152,315,253],{"class":240},[152,317,256],{"class":236},[152,319,321,324],{"class":154,"line":320},12,[152,322,323],{"class":240},"   date",[152,325,256],{"class":236},[152,327,329,332,334],{"class":154,"line":328},13,[152,330,331],{"class":240},"    attribute",[152,333,244],{"class":236},[152,335,336],{"class":162},"updated_at\n",[152,338,340,343,345],{"class":154,"line":339},14,[152,341,342],{"class":240},"    condition",[152,344,244],{"class":236},[152,346,347],{"class":162},"older_than\n",[152,349,351,354,356],{"class":154,"line":350},15,[152,352,353],{"class":240},"    interval_type",[152,355,244],{"class":236},[152,357,358],{"class":162},"months\n",[152,360,362,365,367],{"class":154,"line":361},16,[152,363,364],{"class":240},"    interval",[152,366,244],{"class":236},[152,368,369],{"class":267},"12\n",[152,371,373,375],{"class":154,"line":372},17,[152,374,274],{"class":240},[152,376,256],{"class":236},[152,378,380,383,385],{"class":154,"line":379},18,[152,381,382],{"class":240},"    comment",[152,384,244],{"class":236},[152,386,388],{"class":387},"sD7c4","|\n",[152,390,392],{"class":154,"line":391},19,[152,393,394],{"class":162},"      {{author}} This issue has been open for more than 12 months, is this still an issue?\n",[12,396,397],{},"上記の設定では、2つのポリシーを定義しています。",[44,399,400,407],{},[47,401,402,403,406],{},"1つ目のポリシーは、ドラフトモードにあるすべてのイシューに",[27,404,405],{},"status::wip","ラベルを適用します。",[47,408,409],{},"2つ目のポリシーは、12か月間更新がないイシューに、その旨のコメントを追加します。",[137,411,412],{"start":250},[47,413,414],{},"ボットを実行します。",[12,416,417],{},"以下のコマンドを使用すると、手動でボットを実行できます。",[143,419,421],{"className":145,"code":420,"language":147,"meta":148,"style":148},"gitlab-triage -t \u003Cyour_api_token> -p \u003Cyour_project_id>\n",[27,422,423],{"__ignoreMap":148},[152,424,425,427,430,433,436,439,442,445,447,450,453],{"class":154,"line":155},[152,426,29],{"class":158},[152,428,429],{"class":267}," -t",[152,431,432],{"class":387}," \u003C",[152,434,435],{"class":162},"your_api_toke",[152,437,438],{"class":236},"n",[152,440,441],{"class":387},">",[152,443,444],{"class":267}," -p",[152,446,432],{"class":387},[152,448,449],{"class":162},"your_project_i",[152,451,452],{"class":236},"d",[152,454,455],{"class":387},">\n",[12,457,458,461,462,465,466,471,472,475,476,479],{},[27,459,460],{},"\u003Cyour_api_token>","の部分をご自身のGitLab\nAPIトークンに、また",[27,463,464],{},"\u003Cyour_project_id>","を",[22,467,470],{"href":468,"rel":469},"https://docs.gitlab.com/ja-jp/user/project/working_with_projects/#access-a-project-by-using-the-project-id",[],"ご自身のGitLabプロジェクトID","に変更してください。実行前にこれらのアクションの影響を確認したい場合は、",[27,473,474],{},"-n","または",[27,477,478],{},"--dry-run","を追加すれば、ポリシーをまずはテストできます。",[32,481,483],{"id":482},"gitlab-cicdによる自動化","GitLab CI/CDによる自動化",[12,485,486,487,492,493,496],{},"トリアージボットの実行を自動化するには、",[22,488,491],{"href":489,"rel":490},"https://about.gitlab.com/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation/",[],"GitLab\nCI/CD","と統合します。以下は",[27,494,495],{},".gitlab-ci.yml","の設定例です。",[143,498,500],{"className":216,"code":499,"language":218,"meta":148,"style":148},"triage:\n  script:\n    - gem install gitlab-triage\n    - gitlab-triage -t $GITLAB_TOKEN -p $CI_PROJECT_ID\n  only:\n    - schedules\n\n",[27,501,502,509,516,523,530,537],{"__ignoreMap":148},[152,503,504,507],{"class":154,"line":155},[152,505,506],{"class":240},"triage",[152,508,256],{"class":236},[152,510,511,514],{"class":154,"line":169},[152,512,513],{"class":240},"  script",[152,515,256],{"class":236},[152,517,518,521],{"class":154,"line":203},[152,519,520],{"class":236},"    - ",[152,522,146],{"class":162},[152,524,525,527],{"class":154,"line":250},[152,526,520],{"class":236},[152,528,529],{"class":162},"gitlab-triage -t $GITLAB_TOKEN -p $CI_PROJECT_ID\n",[152,531,532,535],{"class":154,"line":259},[152,533,534],{"class":240},"  only",[152,536,256],{"class":236},[152,538,539,541],{"class":154,"line":271},[152,540,520],{"class":236},[152,542,543],{"class":162},"schedules\n",[12,545,546,547,549,550,553,554,559,560,563,564,567],{},"上記の設定では、「triage」という名前のジョブを定義しています。このジョブは、",[27,548,29],{},"\ngemをインストールし、",[27,551,552],{},"$GITLAB_TOKEN","（定義済みの",[22,555,558],{"href":556,"rel":557},"https://docs.gitlab.com/ja-jp/ci/variables/",[],"CI/CD変数","）変数と",[27,561,562],{},"$CI_PROJECT_ID","変数を使用してボットを実行します。",[27,565,566],{},"only: schedules","によって、ジョブが必ずスケジュールに従って実行されることを保証します。",[12,569,570,575,576,579,580,582],{},[22,571,574],{"href":572,"rel":573},"https://docs.gitlab.com/ja-jp/ci/pipelines/schedules/",[],"スケジュール","を設定するには、プロジェクトの「",[50,577,578],{},"CI/CD","」設定にアクセスし、「",[50,581,574],{},"」に進みます。新しいスケジュールを作成したら、ボットを実行する頻度（毎日、毎時間など）を設定します。",[32,584,585],{"id":585},"高度なトリアージポリシー",[12,587,588,590],{},[27,589,29],{},"には、さらに複雑なトリアージポリシーを作成できるように、次のような高度な機能が用意されています。",[44,592,593,599,605],{},[47,594,595,598],{},[50,596,597],{},"正規表現","：正規表現を使用すると、より強力なパターン一致を実現できます。",[47,600,601,604],{},[50,602,603],{},"サマリーポリシー","：関連する複数のイシューを1つのサマリーイシューにまとめます。",[47,606],{},[12,608,609,612,613,618],{},[50,610,611],{},"カスタムアクション","：",[22,614,617],{"href":615,"rel":616},"https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage#can-i-customize",[],"Rubyコードブロック","を使用してカスタムアクションを定義し、GitLab\nAPI を使ったより複雑な操作を実行できます。",[12,620,621,622,627],{},"GitLabのデベロッパーアドボカシーチームによる、高度なトリアージボットの実際の使用例をご紹介します。全ポリシーは、",[22,623,626],{"href":624,"rel":625},"https://gitlab.com/gitlab-da/projects/devrel-bot/-/blob/master/.triage-policies.yml?ref_type=heads",[],"こちらのファイル","でご覧いただけます。",[143,629,631],{"className":216,"code":630,"language":218,"meta":148,"style":148},"- name: Issues where DA team member is an assignee outside DA-Meta project\ni.e. DevRel-Influenced\n  conditions:\n    assignee_member:\n      source: group\n      condition: member_of\n      source_id: 1008\n    state: opened\n    ruby: get_project_id != 18 \n    forbidden_labels:\n      - developer-advocacy\n  actions:   \n    labels:\n      - developer-advocacy\n      - DevRel-Influenced\n      - DA-Bot::Skip\n\n",[27,632,633,644,649,656,663,673,683,693,703,716,723,730,738,744,750,757],{"__ignoreMap":148},[152,634,635,637,639,641],{"class":154,"line":155},[152,636,237],{"class":236},[152,638,241],{"class":240},[152,640,244],{"class":236},[152,642,643],{"class":162},"Issues where DA team member is an assignee outside DA-Meta project\n",[152,645,646],{"class":154,"line":169},[152,647,648],{"class":162},"i.e. DevRel-Influenced\n",[152,650,651,654],{"class":154,"line":203},[152,652,653],{"class":240},"  conditions",[152,655,256],{"class":236},[152,657,658,661],{"class":154,"line":250},[152,659,660],{"class":240},"    assignee_member",[152,662,256],{"class":236},[152,664,665,668,670],{"class":154,"line":259},[152,666,667],{"class":240},"      source",[152,669,244],{"class":236},[152,671,672],{"class":162},"group\n",[152,674,675,678,680],{"class":154,"line":271},[152,676,677],{"class":240},"      condition",[152,679,244],{"class":236},[152,681,682],{"class":162},"member_of\n",[152,684,685,688,690],{"class":154,"line":279},[152,686,687],{"class":240},"      source_id",[152,689,244],{"class":236},[152,691,692],{"class":267},"1008\n",[152,694,695,698,700],{"class":154,"line":287},[152,696,697],{"class":240},"    state",[152,699,244],{"class":236},[152,701,702],{"class":162},"opened\n",[152,704,705,708,710,713],{"class":154,"line":296},[152,706,707],{"class":240},"    ruby",[152,709,244],{"class":236},[152,711,712],{"class":162},"get_project_id != 18",[152,714,715],{"class":236}," \n",[152,717,718,721],{"class":154,"line":301},[152,719,720],{"class":240},"    forbidden_labels",[152,722,256],{"class":236},[152,724,725,727],{"class":154,"line":313},[152,726,290],{"class":236},[152,728,729],{"class":162},"developer-advocacy\n",[152,731,732,735],{"class":154,"line":320},[152,733,734],{"class":240},"  actions",[152,736,737],{"class":236},":   \n",[152,739,740,742],{"class":154,"line":328},[152,741,282],{"class":240},[152,743,256],{"class":236},[152,745,746,748],{"class":154,"line":339},[152,747,290],{"class":236},[152,749,729],{"class":162},[152,751,752,754],{"class":154,"line":350},[152,753,290],{"class":236},[152,755,756],{"class":162},"DevRel-Influenced\n",[152,758,759,761],{"class":154,"line":361},[152,760,290],{"class":236},[152,762,763],{"class":162},"DA-Bot::Skip\n",[12,765,766,767,770],{},"こちらの例では、グループ全体のイシュー（IDが18のプロジェクトに含まれるイシューを除く）から、IDが1008のグループに所属し、",[27,768,769],{},"developer-advocacy","というラベルが付いていないメンバーが担当者であるイシューを割り出し、ラベルを適用しています。GitLabデベロッパーアドボカシーチームは、このポリシーを使用して、チームメンバーが担当しているものの、チームのプロジェクトとして割り当てられていないイシューを探し出しています。チームのラベルを追加することで、チーム外からのコントリビュートを特定・追跡しやすくなります。",[143,772,777],{"className":773,"code":775,"language":776,"meta":148},[774],"language-text","- name: Missing Due Dates\n  conditions:\n    ruby: missing_due_date\n    state: opened\n    labels:\n      - developer-advocacy\n    forbidden_labels:\n      - DA-Due::N/A\n      - DA-Bot::Skip\n      - DA-Status::FYI\n      - DA-Status::OnHold\n      - CFP\n      - DA-Bot::Triage\n  actions:\n    labels:\n      - DA-Bot-Auto-Due-Date\n    comment: |\n      /due #{get_current_quarter_last_date}\n\n","text",[27,778,775],{"__ignoreMap":148},[12,780,781,782,784],{},"上記の2つ目の例では、forbidden_labelsに含まれるラベルが適用されておらず、期限を過ぎていて、",[27,783,769],{},"ラベルが付いているイシューをすべて探し出します。スラッシュコマンドとRubyを使って生成した日付を用いてイシューにコメントすることで、自動的に期限が更新されます。",[12,786,787],{},"ポリシーで使用されているRubyスクリプトは、以下のように別のファイルで定義しています。この機能を使用すれば、フィルターとアクションを柔軟に扱えます。ご覧のように、ポリシーで使用したさまざまなRubyコマンド用に関数を作成しています。",[143,789,792],{"className":790,"code":791,"language":776,"meta":148},[774],"require 'json'\n\nrequire 'date'\n\nrequire \"faraday\"\n\nrequire 'dotenv/load'\n\n\nmodule DATriagePlugin\n  def last_comment_at\n    conn = Faraday.new(\n      url: notes_url+\"?sort=desc&order_by=created_at&pagination=keyset&per_page=1\",\n      headers: {'PRIVATE-TOKEN' => ENV.fetch(\"PRIV_KEY\"), 'Content-Type' => 'application/json' }\n    )\n\n    response = conn.get()\n    if response.status == 200\n      jsonData = JSON.parse(response.body)\n      if jsonData.length > 0\n        Date.parse(jsonData[0]['created_at'])\n      else\n        Date.parse(resource[:created_at])\n      end\n    else\n      Date.parse(resource[:created_at])\n    end\n  end\n\n  def notes_url\n    resource[:_links][:notes]\n  end\n\n  def get_project_id\n    resource[:project_id]\n  end\n\n  def get_current_quarter_last_date()\n    yr = Time.now.year\n    case Time.now.month\n    when 2..4\n      lm = 4\n    when 5..7\n      lm = 7\n    when 8..10\n      lm = 10\n    when 11..12\n      lm = 1\n      yr = yr + 1\n    else\n      lm = 1    \n    end\n\n    return Date.new(yr, lm, -1) \n  end\n\n  def one_week_to_due_date\n    if(resource[:due_date] == nil)\n      false\n    else\n      days_to_due = (Date.parse(resource[:due_date]) - Date.today).to_i\n      if(days_to_due > 0 && days_to_due \u003C 7)\n        true\n      else\n        false\n      end\n    end\n  end\n\n  def due_date_past\n    if(resource[:due_date] == nil)\n      false\n    else\n      Date.today > Date.parse(resource[:due_date])\n    end\n  end\n\n  def missing_due_date\n    if(resource[:due_date] == nil)\n      true\n    else\n      false\n    end\n  end\n\nend\n\n\nGitlab::Triage::Resource::Context.include DATriagePlugin\n",[27,793,791],{"__ignoreMap":148},[12,795,796],{},"トリアージボットを実行する際は、次のコマンドを使用します。",[143,798,801],{"className":799,"code":800,"language":776,"meta":148},[774],"`gitlab-triage -r ./triage_bot/issue_triage_plugin.rb --debug --token\n$PRIV_KEY --source-id gitlab-com --source groups`  \n",[27,802,800],{"__ignoreMap":148},[44,804,805,811,817,823,829],{},[47,806,807,810],{},[27,808,809],{},"-r","：トリアージを実行するための要件ファイルを渡します。この場合は、Ruby関数を渡します。",[47,812,813,816],{},[27,814,815],{},"--debug","：出力の一部としてデバッグ情報を表示します。",[47,818,819,822],{},[27,820,821],{},"--token","：有効なGitLab APIトークンを渡すために使用します。",[47,824,825,828],{},[27,826,827],{},"--source","：検索対象のイシューのソースがグループ内またはプロジェクト内かを指定します。",[47,830,831,834],{},[27,832,833],{},"--source-id",":： 選択したソースタイプのID（この場合はグループ）を受け取ります。",[12,836,837,838,843],{},"もう1つの実際の活用例としては、GitLab\n",[22,839,842],{"href":840,"rel":841},"https://gitlab.com/gitlab-org/quality/triage-ops",[],"triage-ops","プロジェクトが挙げられます。こちらはさらに複雑で、専用のトリアージボットの作成方法を学ぶのに最適です。",[32,845,846],{"id":846},"ベストプラクティス",[44,848,849,855,861,867,873],{},[47,850,851,854],{},[50,852,853],{},"まずは簡単なものから始める","：基本的なポリシーから始めて、必要に応じて徐々に複雑な設定にしていきましょう。",[47,856,857,860],{},[50,858,859],{},"テストは徹底的に行う","：本番環境にデプロイする前に、ステージング環境でポリシーをテストします。",[47,862,863,866],{},[50,864,865],{},"定期的にモニタリングする","：ボットの動作をモニタリングし、想定どおりに機能しているか確認してください。",[47,868,869,872],{},[50,870,871],{},"わかりやすい名前を付ける","：メンテナンスしやすいように、ポリシーには明確でわかりやすい名前を付けましょう。",[47,874],{},[12,876,877,880],{},[50,878,879],{},"フィルターの適用範囲に注意する","：何千ものイシューが存在する全グループを対象に、イシューを絞り込むのはおすすめしません。トリアージに時間がかかってしまう可能性があるだけでなく、GitLab\nAPIのレート制限によってプロセス自体が失敗に終わることもあります。",[44,882,883],{},[47,884],{},[12,886,887,890],{},[50,888,889],{},"トリアージの際にはラベルを使って優先順位付けする","：関係ないコメントやイシューがあふれて、ほかのユーザーの邪魔になることのないよう、トリアージを行う際はラベルを使用することをおすすめします。",[32,892,893],{"id":893},"ワークフローを制御する",[12,895,896,898],{},[27,897,29],{},"\ngemを使用すれば、GitLabワークフローを自動化して、新たなレベルの効率化を実現できます。まずはシンプルなトリアージボットの作成から始めて、徐々に高度な機能を使ってみてください。どれだけ多くの時間や作業負荷を削減できるか、きっと驚かれると思います！",[32,900,902],{"id":901},"gitlab入門シリーズ","GitLab入門シリーズ",[12,904,905],{},"「GitLab入門」シリーズのその他の記事をぜひご覧ください。",[44,907,908,915,922,928,934,941],{},[47,909,910],{},[22,911,914],{"href":912,"rel":913},"https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-mastering-project-management/",[],"GitLab入門：ユーザーの管理方法",[47,916,917],{},[22,918,921],{"href":919,"rel":920},"https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/",[],"GitLab入門：プロジェクトをGitLabにインポートする方法",[47,923,924],{},[22,925,927],{"href":912,"rel":926},[],"GitLab入門：プロジェクト管理をマスターする",[47,929,930],{},[22,931,5],{"href":932,"rel":933},"https://about.gitlab.com/ja-jp/blog/automating-agile-workflows-with-the-gitlab-triage-gem/",[],[47,935,936],{},[22,937,940],{"href":938,"rel":939},"https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-understanding-ci-cd/",[],"GitLab入門：CI/CDについて理解する",[47,942,943],{},[22,944,947],{"href":945,"rel":946},"https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-working-with-ci-cd-variables/",[],"GitLab入門：CI/CD変数を使用する",[949,950,951],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":148,"searchDepth":169,"depth":169,"links":953},[954,955,956,957,958,959,960,961],{"id":34,"depth":169,"text":34},{"id":74,"depth":169,"text":74},{"id":132,"depth":169,"text":132},{"id":482,"depth":169,"text":483},{"id":585,"depth":169,"text":585},{"id":846,"depth":169,"text":846},{"id":893,"depth":169,"text":893},{"id":901,"depth":169,"text":902},"product","2025-03-13","「GitLab入門」シリーズでは、イシューやマージリクエストのトリアージなどの繰り返し発生するタスクを自動化して、デベロッパーの貴重な時間を確保する方法をご紹介します。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png",{},"/ja-jp/blog/automating-agile-workflows-with-the-gitlab-triage-gem",{"ogTitle":5,"ogImage":968,"ogDescription":964,"ogSiteName":972,"noIndex":967,"ogType":973,"ogUrl":974,"title":5,"canonicalUrls":974,"description":964},"https://about.gitlab.com","article","https://about.gitlab.com/blog/automating-agile-workflows-with-the-gitlab-triage-gem","automating-agile-workflows-with-the-gitlab-triage-gem","ja-jp/blog/automating-agile-workflows-with-the-gitlab-triage-gem",[978,979,962,980,578],"DevSecOps platform","tutorial","agile","BlogPost","2025-10-07","V7hk6ddvE1evFS6KmU-ncLHND2QE14jT9uaIGXjENYQ",{"logo":985,"freeTrial":990,"sales":995,"login":1000,"items":1005,"search":1333,"minimal":1366,"duo":1383,"switchNav":1392,"pricingDeployment":1403},{"config":986},{"href":987,"dataGaName":988,"dataGaLocation":989},"/ja-jp/","gitlab logo","header",{"text":991,"config":992},"無料トライアルを開始",{"href":993,"dataGaName":994,"dataGaLocation":989},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":996,"config":997},"デモをリクエスト",{"href":998,"dataGaName":999,"dataGaLocation":989},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":1001,"config":1002},"サインイン",{"href":1003,"dataGaName":1004,"dataGaLocation":989},"https://gitlab.com/users/sign_in/","sign in",[1006,1035,1136,1141,1255,1311],{"text":1007,"config":1008,"menu":1010},"プラットフォーム",{"dataNavLevelOne":1009},"platform",{"type":1011,"columns":1012},"cards",[1013,1019,1027],{"title":1007,"description":1014,"link":1015},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":1016,"config":1017},"プラットフォームの詳細はこちら",{"href":1018,"dataGaName":1009,"dataGaLocation":989},"/ja-jp/platform/",{"title":1020,"description":1021,"link":1022},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":1023,"config":1024},"GitLab Duoのご紹介",{"href":1025,"dataGaName":1026,"dataGaLocation":989},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1028,"description":1029,"link":1030},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":1031,"config":1032},"詳細はこちら",{"href":1033,"dataGaName":1034,"dataGaLocation":989},"/ja-jp/why-gitlab/","why gitlab",{"text":1036,"left":230,"config":1037,"menu":1039},"製品",{"dataNavLevelOne":1038},"solutions",{"type":1040,"link":1041,"columns":1045,"feature":1115},"lists",{"text":1042,"config":1043},"すべてのソリューションを表示",{"href":1044,"dataGaName":1038,"dataGaLocation":989},"/ja-jp/solutions/",[1046,1070,1093],{"title":1047,"description":1048,"link":1049,"items":1054},"自動化","CI/CDと自動化でデプロイを加速",{"config":1050},{"icon":1051,"href":1052,"dataGaName":1053,"dataGaLocation":989},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[1055,1058,1061,1066],{"text":578,"config":1056},{"href":1057,"dataGaLocation":989,"dataGaName":578},"/ja-jp/solutions/continuous-integration/",{"text":1020,"config":1059},{"href":1025,"dataGaLocation":989,"dataGaName":1060},"gitlab duo agent platform - product menu",{"text":1062,"config":1063},"ソースコード管理",{"href":1064,"dataGaLocation":989,"dataGaName":1065},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":1067,"config":1068},"自動化されたソフトウェアデリバリー",{"href":1052,"dataGaLocation":989,"dataGaName":1069},"Automated software delivery",{"title":1071,"description":1072,"link":1073,"items":1078},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":1074},{"href":1075,"dataGaName":1076,"dataGaLocation":989,"icon":1077},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1079,1083,1088],{"text":1080,"config":1081},"アプリケーションセキュリティテスト",{"href":1075,"dataGaName":1082,"dataGaLocation":989},"Application security testing",{"text":1084,"config":1085},"ソフトウェアサプライチェーンセキュリティ",{"href":1086,"dataGaLocation":989,"dataGaName":1087},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":1089,"config":1090},"ソフトウェアコンプライアンス",{"href":1091,"dataGaName":1092,"dataGaLocation":989},"/ja-jp/solutions/software-compliance/","software compliance",{"title":1094,"link":1095,"items":1100},"測定",{"config":1096},{"icon":1097,"href":1098,"dataGaName":1099,"dataGaLocation":989},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[1101,1105,1110],{"text":1102,"config":1103},"可視性と測定",{"href":1098,"dataGaLocation":989,"dataGaName":1104},"Visibility and Measurement",{"text":1106,"config":1107},"バリューストリーム管理",{"href":1108,"dataGaLocation":989,"dataGaName":1109},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":1111,"config":1112},"分析とインサイト",{"href":1113,"dataGaLocation":989,"dataGaName":1114},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":1116,"type":1040,"items":1117},"GitLabが活躍する場所",[1118,1124,1130],{"text":1119,"config":1120},"大企業",{"icon":1121,"href":1122,"dataGaLocation":989,"dataGaName":1123},"Building","/ja-jp/enterprise/","enterprise",{"text":1125,"config":1126},"スモールビジネス",{"icon":1127,"href":1128,"dataGaLocation":989,"dataGaName":1129},"Work","/ja-jp/small-business/","small business",{"text":1131,"config":1132},"公共部門",{"icon":1133,"href":1134,"dataGaLocation":989,"dataGaName":1135},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":1137,"config":1138},"価格",{"href":1139,"dataGaName":1140,"dataGaLocation":989,"dataNavLevelOne":1140},"/ja-jp/pricing/","pricing",{"text":1142,"config":1143,"menu":1145},"関連リソース",{"dataNavLevelOne":1144},"resources",{"type":1040,"link":1146,"columns":1150,"feature":1244},{"text":1147,"config":1148},"すべてのリソースを表示",{"href":1149,"dataGaName":1144,"dataGaLocation":989},"/ja-jp/resources/",[1151,1184,1211],{"title":1152,"items":1153},"はじめに",[1154,1159,1164,1169,1174,1179],{"text":1155,"config":1156},"インストール",{"href":1157,"dataGaName":1158,"dataGaLocation":989},"/ja-jp/install/","install",{"text":1160,"config":1161},"クイックスタートガイド",{"href":1162,"dataGaName":1163,"dataGaLocation":989},"/ja-jp/get-started/","quick setup checklists",{"text":1165,"config":1166},"学ぶ",{"href":1167,"dataGaLocation":989,"dataGaName":1168},"https://university.gitlab.com/","learn",{"text":1170,"config":1171},"製品ドキュメント",{"href":1172,"dataGaName":1173,"dataGaLocation":989},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":1175,"config":1176},"ベストプラクティスビデオ",{"href":1177,"dataGaName":1178,"dataGaLocation":989},"/ja-jp/getting-started-videos/","best practice videos",{"text":1180,"config":1181},"インテグレーション",{"href":1182,"dataGaName":1183,"dataGaLocation":989},"/ja-jp/integrations/","integrations",{"title":1185,"items":1186},"検索する",[1187,1192,1197,1202,1206],{"text":1188,"config":1189},"お客様成功事例",{"href":1190,"dataGaName":1191,"dataGaLocation":989},"/ja-jp/customers/","customer success stories",{"text":1193,"config":1194},"ブログ",{"href":1195,"dataGaName":1196,"dataGaLocation":989},"/ja-jp/blog/","blog",{"text":1198,"config":1199},"Demo Hub",{"href":1200,"dataGaName":1201,"dataGaLocation":989},"/ja-jp/demo-hub/","demo hub",{"text":1203,"config":1204},"The Source",{"href":1205,"dataGaName":1196,"dataGaLocation":989},"/ja-jp/the-source/",{"text":1207,"config":1208},"リモート",{"href":1209,"dataGaName":1210,"dataGaLocation":989},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1212,"items":1213},"つなげる",[1214,1219,1224,1229,1234,1239],{"text":1215,"config":1216},"GitLabサービス",{"href":1217,"dataGaName":1218,"dataGaLocation":989},"/ja-jp/services/","services",{"text":1220,"config":1221},"コントリビュート",{"href":1222,"dataGaName":1223,"dataGaLocation":989},"https://contributors.gitlab.com","contribute",{"text":1225,"config":1226},"コミュニティ",{"href":1227,"dataGaName":1228,"dataGaLocation":989},"/community/","community",{"text":1230,"config":1231},"フォーラム",{"href":1232,"dataGaName":1233,"dataGaLocation":989},"https://forum.gitlab.com/","forum",{"text":1235,"config":1236},"イベント",{"href":1237,"dataGaName":1238,"dataGaLocation":989},"/events/","events",{"text":1240,"config":1241},"パートナー",{"href":1242,"dataGaName":1243,"dataGaLocation":989},"/ja-jp/partners/","partners",{"config":1245,"title":1248,"text":1249,"link":1250},{"background":1246,"textColor":1247},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":1251,"config":1252},"最新情報を読む",{"href":1253,"dataGaName":1254,"dataGaLocation":989},"/ja-jp/whats-new/","whats new",{"text":1256,"config":1257,"menu":1259},"企業情報",{"dataNavLevelOne":1258},"company",{"type":1040,"columns":1260},[1261],{"items":1262},[1263,1268,1274,1276,1281,1286,1291,1296,1301,1306],{"text":1264,"config":1265},"GitLabについて",{"href":1266,"dataGaName":1267,"dataGaLocation":989},"/ja-jp/company/","about",{"text":1269,"config":1270,"footerGa":1273},"採用情報",{"href":1271,"dataGaName":1272,"dataGaLocation":989},"/jobs/","jobs",{"dataGaName":1272},{"text":1235,"config":1275},{"href":1237,"dataGaName":1238,"dataGaLocation":989},{"text":1277,"config":1278},"経営陣",{"href":1279,"dataGaName":1280,"dataGaLocation":989},"/company/team/e-group/","leadership",{"text":1282,"config":1283},"ハンドブック",{"href":1284,"dataGaName":1285,"dataGaLocation":989},"https://handbook.gitlab.com/","handbook",{"text":1287,"config":1288},"投資家向け情報",{"href":1289,"dataGaName":1290,"dataGaLocation":989},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1292,"config":1293},"トラストセンター",{"href":1294,"dataGaName":1295,"dataGaLocation":989},"/ja-jp/security/","trust center",{"text":1297,"config":1298},"AI Transparency Center",{"href":1299,"dataGaName":1300,"dataGaLocation":989},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1302,"config":1303},"ニュースレター",{"href":1304,"dataGaName":1305,"dataGaLocation":989},"/company/contact/#contact-forms","newsletter",{"text":1307,"config":1308},"プレス",{"href":1309,"dataGaName":1310,"dataGaLocation":989},"/press/","press",{"text":1312,"config":1313,"menu":1314},"お問い合わせ",{"dataNavLevelOne":1258},{"type":1040,"columns":1315},[1316],{"items":1317},[1318,1323,1328],{"text":1319,"config":1320},"お問い合わせはこちら",{"href":1321,"dataGaName":1322,"dataGaLocation":989},"/ja-jp/sales/","talk to sales",{"text":1324,"config":1325},"サポートを受ける",{"href":1326,"dataGaName":1327,"dataGaLocation":989},"https://support.gitlab.com/hc/en-us","support portal",{"text":1329,"config":1330},"カスタマーポータル",{"href":1331,"dataGaName":1332,"dataGaLocation":989},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1334,"login":1335,"suggestions":1342},"閉じる",{"text":1336,"link":1337},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":1338,"config":1339},"GitLab.com",{"href":1003,"dataGaName":1340,"dataGaLocation":1341},"search login","search",{"text":1343,"default":1344},"提案",[1345,1347,1352,1354,1358,1362],{"text":1020,"config":1346},{"href":1025,"dataGaName":1020,"dataGaLocation":1341},{"text":1348,"config":1349},"コード提案（AI）",{"href":1350,"dataGaName":1351,"dataGaLocation":1341},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":578,"config":1353},{"href":1057,"dataGaName":578,"dataGaLocation":1341},{"text":1355,"config":1356},"GitLab on AWS",{"href":1357,"dataGaName":1355,"dataGaLocation":1341},"/ja-jp/partners/technology-partners/aws/",{"text":1359,"config":1360},"GitLab on Google Cloud",{"href":1361,"dataGaName":1359,"dataGaLocation":1341},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":1363,"config":1364},"GitLabを選ぶ理由",{"href":1033,"dataGaName":1365,"dataGaLocation":1341},"Why GitLab?",{"freeTrial":1367,"mobileIcon":1371,"desktopIcon":1376,"secondaryButton":1379},{"text":991,"config":1368},{"href":1369,"dataGaName":994,"dataGaLocation":1370},"https://gitlab.com/-/trials/new/","nav",{"altText":1372,"config":1373},"GitLabアイコン",{"src":1374,"dataGaName":1375,"dataGaLocation":1370},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1372,"config":1377},{"src":1378,"dataGaName":1375,"dataGaLocation":1370},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1152,"config":1380},{"href":1381,"dataGaName":1382,"dataGaLocation":1370},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":1384,"mobileIcon":1388,"desktopIcon":1390},{"text":1385,"config":1386},"GitLab Duoの詳細について",{"href":1025,"dataGaName":1387,"dataGaLocation":1370},"gitlab duo",{"altText":1372,"config":1389},{"src":1374,"dataGaName":1375,"dataGaLocation":1370},{"altText":1372,"config":1391},{"src":1378,"dataGaName":1375,"dataGaLocation":1370},{"button":1393,"mobileIcon":1398,"desktopIcon":1400},{"text":1394,"config":1395},"/switch",{"href":1396,"dataGaName":1397,"dataGaLocation":1370},"#contact","switch",{"altText":1372,"config":1399},{"src":1374,"dataGaName":1375,"dataGaLocation":1370},{"altText":1372,"config":1401},{"src":1402,"dataGaName":1375,"dataGaLocation":1370},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1404,"mobileIcon":1409,"desktopIcon":1411},{"text":1405,"config":1406},"料金ページに戻る",{"href":1139,"dataGaName":1407,"dataGaLocation":1370,"icon":1408},"back to pricing","GoBack",{"altText":1372,"config":1410},{"src":1374,"dataGaName":1375,"dataGaLocation":1370},{"altText":1372,"config":1412},{"src":1378,"dataGaName":1375,"dataGaLocation":1370},{"title":1414,"button":1415,"config":1419},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":1031,"config":1416},{"href":1417,"dataGaName":1418,"dataGaLocation":989},"/ja-jp/gitlab-orbit/","orbit",{"layout":1420,"disabled":967},"release",{"data":1422},{"text":1423,"source":1424,"edit":1430,"contribute":1435,"config":1440,"items":1445,"minimal":1654},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":1425,"config":1426},"ページのソースを表示",{"href":1427,"dataGaName":1428,"dataGaLocation":1429},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1431,"config":1432},"このページを編集",{"href":1433,"dataGaName":1434,"dataGaLocation":1429},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1436,"config":1437},"ご協力をお願いします",{"href":1438,"dataGaName":1439,"dataGaLocation":1429},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1441,"facebook":1442,"youtube":1443,"linkedin":1444},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1446,1491,1544,1587,1621],{"title":1137,"links":1447,"subMenu":1462},[1448,1452,1457],{"text":1449,"config":1450},"プランの表示",{"href":1139,"dataGaName":1451,"dataGaLocation":1429},"view plans",{"text":1453,"config":1454},"Premiumを選ぶ理由",{"href":1455,"dataGaName":1456,"dataGaLocation":1429},"/ja-jp/pricing/premium/","why premium",{"text":1458,"config":1459},"Ultimateを選ぶ理由",{"href":1460,"dataGaName":1461,"dataGaLocation":1429},"/ja-jp/pricing/ultimate/","why ultimate",[1463],{"title":1312,"links":1464},[1465,1467,1469,1471,1476,1481,1486],{"text":1312,"config":1466},{"href":1321,"dataGaName":999,"dataGaLocation":1429},{"text":1324,"config":1468},{"href":1326,"dataGaName":1327,"dataGaLocation":1429},{"text":1329,"config":1470},{"href":1331,"dataGaName":1332,"dataGaLocation":1429},{"text":1472,"config":1473},"ステータス",{"href":1474,"dataGaName":1475,"dataGaLocation":1429},"https://status.gitlab.com/","status",{"text":1477,"config":1478},"利用規約",{"href":1479,"dataGaName":1480,"dataGaLocation":1429},"/terms/","terms of use",{"text":1482,"config":1483},"プライバシーに関する声明",{"href":1484,"dataGaName":1485,"dataGaLocation":1429},"/ja-jp/privacy/","privacy statement",{"text":1487,"config":1488},"Cookie 優先設定",{"dataGaName":1489,"dataGaLocation":1429,"id":1490,"isOneTrustButton":230},"cookie preferences","ot-sdk-btn",{"title":1036,"links":1492,"subMenu":1501},[1493,1497],{"text":1494,"config":1495},"DevSecOpsプラットフォーム",{"href":1018,"dataGaName":1496,"dataGaLocation":1429},"devsecops platform",{"text":1498,"config":1499},"AI支援開発",{"href":1025,"dataGaName":1500,"dataGaLocation":1429},"ai-assisted development",[1502],{"title":1503,"links":1504},"トピック",[1505,1509,1514,1519,1524,1529,1534,1539],{"text":578,"config":1506},{"href":1507,"dataGaName":1508,"dataGaLocation":1429},"/ja-jp/topics/ci-cd/","cicd",{"text":1510,"config":1511},"GitOps",{"href":1512,"dataGaName":1513,"dataGaLocation":1429},"/ja-jp/topics/gitops/","gitops",{"text":1515,"config":1516},"DevOps",{"href":1517,"dataGaName":1518,"dataGaLocation":1429},"/ja-jp/topics/devops/","devops",{"text":1520,"config":1521},"バージョン管理",{"href":1522,"dataGaName":1523,"dataGaLocation":1429},"/ja-jp/topics/version-control/","version control",{"text":1525,"config":1526},"DevSecOps",{"href":1527,"dataGaName":1528,"dataGaLocation":1429},"/ja-jp/topics/devsecops/","devsecops",{"text":1530,"config":1531},"クラウドネイティブ",{"href":1532,"dataGaName":1533,"dataGaLocation":1429},"/ja-jp/topics/cloud-native/","cloud native",{"text":1535,"config":1536},"コーディングのためのAI",{"href":1537,"dataGaName":1538,"dataGaLocation":1429},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1540,"config":1541},"エージェント型AI",{"href":1542,"dataGaName":1543,"dataGaLocation":1429},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1545,"links":1546},"ソリューション",[1547,1550,1552,1557,1561,1564,1567,1570,1572,1574,1577,1582],{"text":1080,"config":1548},{"href":1075,"dataGaName":1549,"dataGaLocation":1429},"Application Security Testing",{"text":1067,"config":1551},{"href":1052,"dataGaName":1053,"dataGaLocation":1429},{"text":1553,"config":1554},"アジャイル開発",{"href":1555,"dataGaName":1556,"dataGaLocation":1429},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1558,"config":1559},"SCM",{"href":1064,"dataGaName":1560,"dataGaLocation":1429},"source code management",{"text":578,"config":1562},{"href":1057,"dataGaName":1563,"dataGaLocation":1429},"continuous integration & delivery",{"text":1106,"config":1565},{"href":1108,"dataGaName":1566,"dataGaLocation":1429},"value stream management",{"text":1510,"config":1568},{"href":1569,"dataGaName":1513,"dataGaLocation":1429},"/ja-jp/solutions/gitops/",{"text":1119,"config":1571},{"href":1122,"dataGaName":1123,"dataGaLocation":1429},{"text":1125,"config":1573},{"href":1128,"dataGaName":1129,"dataGaLocation":1429},{"text":1575,"config":1576},"公共機関",{"href":1134,"dataGaName":1135,"dataGaLocation":1429},{"text":1578,"config":1579},"教育",{"href":1580,"dataGaName":1581,"dataGaLocation":1429},"/ja-jp/solutions/education/","education",{"text":1583,"config":1584},"金融サービス",{"href":1585,"dataGaName":1586,"dataGaLocation":1429},"/ja-jp/solutions/finance/","financial services",{"title":1588,"links":1589},"リソース",[1590,1592,1594,1596,1600,1602,1605,1607,1609,1611,1613,1615,1617,1619],{"text":1155,"config":1591},{"href":1157,"dataGaName":1158,"dataGaLocation":1429},{"text":1160,"config":1593},{"href":1162,"dataGaName":1163,"dataGaLocation":1429},{"text":1165,"config":1595},{"href":1167,"dataGaName":1168,"dataGaLocation":1429},{"text":1170,"config":1597},{"href":1598,"dataGaName":1599,"dataGaLocation":1429},"https://docs.gitlab.com/ja-jp","docs",{"text":1193,"config":1601},{"href":1195,"dataGaName":1196,"dataGaLocation":1429},{"text":1603,"config":1604},"最新リリース",{"href":1253,"dataGaName":1254,"dataGaLocation":1429},{"text":1188,"config":1606},{"href":1190,"dataGaName":1191,"dataGaLocation":1429},{"text":1207,"config":1608},{"href":1209,"dataGaName":1210,"dataGaLocation":1429},{"text":1215,"config":1610},{"href":1217,"dataGaName":1218,"dataGaLocation":1429},{"text":1220,"config":1612},{"href":1222,"dataGaName":1223,"dataGaLocation":1429},{"text":1225,"config":1614},{"href":1227,"dataGaName":1228,"dataGaLocation":1429},{"text":1230,"config":1616},{"href":1232,"dataGaName":1233,"dataGaLocation":1429},{"text":1235,"config":1618},{"href":1237,"dataGaName":1238,"dataGaLocation":1429},{"text":1240,"config":1620},{"href":1242,"dataGaName":1243,"dataGaLocation":1429},{"title":1622,"links":1623},"会社情報",[1624,1626,1628,1630,1632,1634,1638,1643,1645,1647,1649],{"text":1264,"config":1625},{"href":1266,"dataGaName":1258,"dataGaLocation":1429},{"text":1269,"config":1627},{"href":1271,"dataGaName":1272,"dataGaLocation":1429},{"text":1277,"config":1629},{"href":1279,"dataGaName":1280,"dataGaLocation":1429},{"text":1282,"config":1631},{"href":1284,"dataGaName":1285,"dataGaLocation":1429},{"text":1287,"config":1633},{"href":1289,"dataGaName":1290,"dataGaLocation":1429},{"text":1635,"config":1636},"Sustainability",{"href":1637,"dataGaName":1635,"dataGaLocation":1429},"/sustainability/",{"text":1639,"config":1640},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1641,"dataGaName":1642,"dataGaLocation":1429},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1292,"config":1644},{"href":1294,"dataGaName":1295,"dataGaLocation":1429},{"text":1302,"config":1646},{"href":1304,"dataGaName":1305,"dataGaLocation":1429},{"text":1307,"config":1648},{"href":1309,"dataGaName":1310,"dataGaLocation":1429},{"text":1650,"config":1651},"現代奴隷制の透明性に関する声明",{"href":1652,"dataGaName":1653,"dataGaLocation":1429},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1655},[1656,1658,1661],{"text":1477,"config":1657},{"href":1479,"dataGaName":1480,"dataGaLocation":1429},{"text":1659,"config":1660},"Cookieの設定",{"dataGaName":1489,"dataGaLocation":1429,"id":1490,"isOneTrustButton":230},{"text":1482,"config":1662},{"href":1484,"dataGaName":1485,"dataGaLocation":1429},[1664],{"id":1665,"title":1666,"body":966,"config":1667,"content":1669,"description":966,"extension":1672,"meta":1673,"navigation":230,"path":1674,"seo":1675,"stem":1676,"__hash__":1677},"blogAuthors/en-us/blog/authors/gitlab.yml","Gitlab",{"template":1668},"BlogAuthor",{"name":7,"config":1670},{"headshot":1671,"ctfId":7},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","yml",{},"/en-us/blog/authors/gitlab",{},"en-us/blog/authors/gitlab","XCBKIcPoCs6zi2oHG7o-bAp52Jhaw8_zGhIJ2jNrEjU",[1679,1687,1695],{"title":1680,"description":1681,"heroImage":1682,"category":962,"date":1683,"authors":1684,"slug":1686,"externalUrl":966},"「作業アイテム作成」トリガーで割り当てを自動化する方法","作業アイテムの割り当てを手作業なしで瞬時に行うAI機能について、順を追って解説するガイドです。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-07-20",[1685],"Cesar Saavedra","how-to-use-a-work-item-created-trigger",{"title":1688,"description":1689,"heroImage":1690,"category":962,"date":1691,"authors":1692,"slug":1694,"externalUrl":966},"GitLab 19.2リリース","GitLab 19.2でリリースした最新機能を公開します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1783980535/t3gez0gpayfndrhncunf.png","2026-07-16",[1693],"GitLab Japan Team","gitlab-19-2-release",{"title":1696,"description":1697,"heroImage":1698,"category":962,"date":1699,"authors":1700,"slug":1703,"externalUrl":966},"GitLabの制限付きアクセスが進化。シート超過を防ぎ、コストを予測可能に","GitLabの制限付きアクセス機能が、シートの超過を防ぎ、ID プロバイダーと連携し、 ライセンスコストを予測しやすくする仕組みについて解説します。\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774375772/kpaaaiqhokevxxeoxvu0.png","2026-07-06",[1701,1702],"Magdalena Frankiewicz","Priyanka Palanikumar","gitlab-restricted-access-improvements",{"promotions":1705},[1706,1720,1731,1743],{"id":1707,"categories":1708,"header":1710,"text":1711,"button":1712,"image":1717},"ai-modernization",[1709],"ai","AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1713,"config":1714},"AI成熟度スコアを確認する",{"href":1715,"dataGaName":1716,"dataGaLocation":1196},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1718},{"src":1719},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1721,"categories":1722,"header":1723,"text":1711,"button":1724,"image":1728},"devops-modernization",[962,1528],"単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1725,"config":1726},"DevOps成熟度スコアを確認しましょう",{"href":1727,"dataGaName":1716,"dataGaLocation":1196},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1729},{"src":1730},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1732,"categories":1733,"header":1735,"text":1711,"button":1736,"image":1740},"security-modernization",[1734],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1737,"config":1738},"セキュリティ成熟度スコアを確認しましょう",{"href":1739,"dataGaName":1716,"dataGaLocation":1196},"/ja-jp/assessments/security-modernization-assessment/",{"config":1741},{"src":1742},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1744,"paths":1745,"header":1748,"text":1749,"button":1750,"image":1755},"github-azure-migration",[1746,1747],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1751,"config":1752},"GitLabとGitHubの比較を見る",{"href":1753,"dataGaName":1754,"dataGaLocation":1196},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1756},{"src":1730},{"header":1758,"blurb":1759,"button":1760,"secondaryButton":1764},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":991,"config":1761},{"href":1762,"dataGaName":994,"dataGaLocation":1763},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1312,"config":1765},{"href":1321,"dataGaName":999,"dataGaLocation":1763},1786803752015]