Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2023-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

Issue の作成をスケジュールする

GitHub Actions を使用して、毎日の会議や四半期ごとのレビューなどの Issue を定期的に作成できます。

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

はじめに

このチュートリアルでは、imjohnbo/issue-bot アクションを使用して定期的に Issue を作成する方法について説明します。 たとえば、Issue を毎週作成して Team 会議のアジェンダとして使用できます。

チュートリアルでは、imjohnbo/issue-bot アクションを使用するワークフロー ファイルをまず作成します。 次に、ニーズに合わせてワークフローをカスタマイズします。

ワークフローの作成

  1. このプロジェクト管理ワークフローを適用したいリポジトリを選択してください。 書き込みアクセス権を持つ既存のリポジトリを利用することも、新しいリポジトリを作成することもできます。 リポジトリの作成について詳しくは、「新しいリポジトリの作成」をご覧ください。

  2. リポジトリに .github/workflows/YOUR_WORKFLOW.yml というファイルを作成します (YOUR_WORKFLOW は任意の名前に置き換えます)。 これがワークフローファイルです。 GitHub で新しいファイルを作成する方法について詳しくは、「新しいファイルの作成」を参照してください。

  3. 次の YAML コンテンツをワークフローファイルにコピーします。

    YAML
    # このワークフローはGitHubによって認定されていないアクションを使用します。
    # それらはサードパーティによって提供され、
    # 別個の利用規約、プライバシーポリシー、
    # ドキュメントを参照してください。
    
    # GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。
    # 新しいバージョンを取得するには、SHA を更新する必要があります。
    # タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。
    
    name: Weekly Team Sync
    on:
      schedule:
        - cron: 20 07 * * 1
    
    jobs:
      create_issue:
        name: Create team sync issue
        runs-on: ubuntu-latest
        permissions:
          issues: write
        steps:
          - name: Create team sync issue
            uses: imjohnbo/issue-bot@3d96848fb5e9a4a473bb81ae62b4b4866a56e93a
            with:
              assignees: "monalisa, doctocat, hubot"
              labels: "weekly sync, docs-team"
              title: "Team sync"
              body: |
                ### Agenda
    
                - [ ] Start the recording
                - [ ] Check-ins
                - [ ] Discussion points
                - [ ] Post the recording
    
                ### Discussion Points
                Add things to discuss below
    
                - [Work this week](https://github.com/orgs/github/projects/3)
              pinned: false
              close-previous: false
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    
  4. ワークフローファイルのパラメータをカスタマイズします。

    • on.schedule の値を変更して、このワークフローを実行する日時を指定します。 上記の例では、ワークフローは毎週月曜日の 7:20 UTC に実行されます。 スケジュールされたワークフローについて詳しくは、「ワークフローをトリガーするイベント」を参照してください。
    • assignees の値を、Issue に割り当てる GitHub のユーザー名のリストに変更します。
    • labels の値を、Issue に適用するラベルのリストに変更します。
    • title の値を、Issue のタイトルに変更します。
    • body の値を、Issue の本文のテキストに変更します。 | 文字を使用すると、このパラメーターに複数行の値を使用できます。
    • この Issue をリポジトリにピン止めする場合は、pinnedtrue に設定します。 ピン留めされたイシューについて詳しくは、「Issue をリポジトリにピン止めする」を参照してください。
    • 新しい Issue が作成されるたびにこのワークフローで生成された以前の Issue をクローズする場合は、close-previoustrue に設定します。 ワークフローにより、labels フィールドで定義されているラベルを持つ最新の Issue が閉じられます。 間違った Issue をクローズしないようにするには、一意のラベルまたはラベルの組み合わせを使用します。
  5. ワークフローファイルを、リポジトリのデフォルトブランチにコミットしてください。 詳しくは、「新しいファイルの作成」を参照してください。

予想される結果

schedule パラメーター (たとえば、毎週月曜日の 7:20 UTC) に基づき、ワークフローにより、指定した担当者、ラベル、タイトル、本文を使用して新しい Issue が作成されます。 pinnedtrue に設定すると、ワークフローによって Issue がリポジトリにピン留めされます。 close-previous を true に設定すると、ワークフローによりラベルが一致する最新の Issue がクローズされます。

注: GitHub Actions のワークフローの実行によって高い負荷がかかっている間、schedule イベントが遅延する可能性があります。 高負荷の時間帯には、毎時の開始時点が含まれます。 負荷が十分に高い場合、キューに登録されたジョブの一部が削除される可能性があります。 遅延の可能性を減らすために、Ⅰ時間の中の別の時間帯に実行されるようワークフローをスケジューリングしてください。

ワークフローの実行履歴を表示して、このワークフローが定期的に実行されているかどうかを確認できます。 詳しくは、「ワークフロー実行の履歴を表示する」を参照してください。

次のステップ

  • 担当者のローテーションや Issue テンプレートの使用など、imjohnbo/issue-bot アクションで実行できる他の操作の詳細については、imjohnbo/issue-bot アクションのドキュメントを参照してください。
  • このアクションを使用するワークフローの例については GitHub を検索してください。