Add @toothstone to team alasca-focis (#345) #27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| # Stale Repository Identifier | |
| # This GitHub Action implements the repository activity monitoring requirements outlined in the Sovereign Cloud Stack Procedural Standard (SCS-0006). | |
| # Functionality | |
| # - Identifies repositories within the SovereignCloudStack organization that have been inactive for 335 or 365 days | |
| # - Reports stale repositories based on recent pushes, releases, and pull requests | |
| # - Automatically creates or updates a GitHub issue with the stale repository report | |
| # - Runs monthly (on the 1st at 01:00 UTC) and can be manually triggered | |
| # | |
| # Limitations | |
| # - The action does not exclude auto-generated PRs (e.g., Renovate, Dependabot) | |
| # - It does not handle repositories with no remaining codeowners as stale | |
| # | |
| # TODO: These limitations must be implemented via post-processing or contributed upstream. | |
| name: stale repo identifier | |
| "on": | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| schedule: | |
| - cron: "0 1 1 * *" # Runs monthly: at 01:00 UTC on the 1st day of every month | |
| permissions: | |
| contents: read | |
| issues: write | |
| jobs: | |
| build: | |
| name: Stale repo identifier | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| days: [335, 365] | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run stale_repos tool | |
| uses: github/[email protected] | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ORGANIZATION: SovereignCloudStack | |
| INACTIVE_DAYS: ${{ matrix.days }} | |
| ACTIVITY_METHOD: "pushed" | |
| ADDITIONAL_METRICS: "release,pr" | |
| - name: Rename report file | |
| run: mv stale_repos.md stale_repos_${{ matrix.days }}.md | |
| - name: Upload stale report artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: stale_repos_report_${{ matrix.days }} | |
| path: stale_repos_${{ matrix.days }}.md | |
| create-issue: | |
| name: Create or update stale repo issue | |
| runs-on: ubuntu-latest | |
| needs: build # Runs after all matrix jobs finish | |
| permissions: | |
| issues: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download all stale report artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: stale_reports | |
| - name: Merge reports | |
| run: | | |
| echo "# Stale Repository Report" > final_stale_repos.md | |
| for file in stale_reports/**/stale_repos_*.md; do | |
| cat "$file" >> final_stale_repos.md | |
| echo "" >> final_stale_repos.md | |
| done | |
| - name: Check for the stale report issue | |
| run: | | |
| ISSUE_NUMBER=$(gh search issues "Stale repository report" --match title --json number --jq ".[0].number") | |
| echo "issue_number=$ISSUE_NUMBER" >> "$GITHUB_ENV" | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Create or update issue | |
| uses: peter-evans/create-issue-from-file@v5 | |
| with: | |
| issue-number: ${{ env.issue_number }} | |
| title: Stale repository report | |
| content-filepath: ./final_stale_repos.md | |
| token: ${{ secrets.GITHUB_TOKEN }} |