diff --git a/.github/workflows/close-discussion.yml b/.github/workflows/close-discussion.yml deleted file mode 100644 index 21b3d7c8b..000000000 --- a/.github/workflows/close-discussion.yml +++ /dev/null @@ -1,164 +0,0 @@ -name: Close Discussion on PR Merge - -on: - push: - branches: - - main - -permissions: - contents: read - discussions: write - -jobs: - close-discussion: - if: github.repository == 'community-scripts/ProxmoxVE' - runs-on: ubuntu-latest - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Set Up Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Install Dependencies - run: npm install zx @octokit/graphql - - - name: Close Discussion - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_SHA: ${{ github.sha }} - GITHUB_REPOSITORY: ${{ github.repository }} - run: | - npx zx << 'EOF' - import { graphql } from "@octokit/graphql"; - - (async function () { - try { - const token = process.env.GITHUB_TOKEN; - const commitSha = process.env.GITHUB_SHA; - const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/"); - - if (!token || !commitSha || !owner || !repo) { - console.log("Missing required environment variables."); - process.exit(1); - } - - const graphqlWithAuth = graphql.defaults({ - headers: { authorization: `Bearer ${token}` }, - }); - - // Find PR from commit SHA - const searchQuery = ` - query($owner: String!, $repo: String!, $sha: GitObjectID!) { - repository(owner: $owner, name: $repo) { - object(oid: $sha) { - ... on Commit { - associatedPullRequests(first: 1) { - nodes { - number - body - } - } - } - } - } - } - `; - - const prResult = await graphqlWithAuth(searchQuery, { - owner, - repo, - sha: commitSha, - }); - - const pr = prResult.repository.object.associatedPullRequests.nodes[0]; - if (!pr) { - console.log("No PR found for this commit."); - return; - } - - const prNumber = pr.number; - const prBody = pr.body; - - const match = prBody.match(/#(\d+)/); - if (!match) { - console.log("No discussion ID found in PR body."); - return; - } - - const discussionNumber = match[1]; - console.log(`Extracted Discussion Number: ${discussionNumber}`); - - // Fetch GraphQL discussion ID - const discussionQuery = ` - query($owner: String!, $repo: String!, $number: Int!) { - repository(owner: $owner, name: $repo) { - discussion(number: $number) { - id - } - } - } - `; - - let discussionQLId; - try { - const discussionResponse = await graphqlWithAuth(discussionQuery, { - owner, - repo, - number: parseInt(discussionNumber, 10), - }); - - discussionQLId = discussionResponse.repository.discussion.id; - if (!discussionQLId) { - console.log("Failed to fetch discussion GraphQL ID."); - return; - } - } catch (error) { - console.error("Discussion not found or error occurred while fetching discussion:", error); - return; - } - - // Post comment - const commentMutation = ` - mutation($discussionId: ID!, $body: String!) { - addDiscussionComment(input: { discussionId: $discussionId, body: $body }) { - comment { id body } - } - } - `; - - const commentResponse = await graphqlWithAuth(commentMutation, { - discussionId: discussionQLId, - body: `Merged with PR #${prNumber}`, - }); - - const commentId = commentResponse.addDiscussionComment.comment.id; - if (!commentId) { - console.log("Failed to post the comment."); - return; - } - - console.log(`Comment Posted Successfully! Comment ID: ${commentId}`); - - // Mark comment as answer - const markAnswerMutation = ` - mutation($id: ID!) { - markDiscussionCommentAsAnswer(input: { id: $id }) { - discussion { id title } - } - } - `; - - await graphqlWithAuth(markAnswerMutation, { id: commentId }); - - console.log("Comment marked as answer successfully!"); - - } catch (error) { - console.error("Error:", error); - process.exit(1); - } - })(); - EOF diff --git a/.github/workflows/create-docker-for-runner.yml b/.github/workflows/create-docker-for-runner.yml deleted file mode 100644 index eee54c9e3..000000000 --- a/.github/workflows/create-docker-for-runner.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build and Publish Docker Image - -on: - push: - branches: - - main - paths: - - '.github/runner/docker/**' - schedule: - - cron: '0 0 * * *' - -jobs: - build: - if: github.repository == 'community-scripts/ProxmoxVE' - runs-on: ubuntu-latest #To ensure it always builds we use the github runner with all the right tooling - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Log in to GHCR - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Docker image - run: | - repo_name=${{ github.repository }} # Get repository name - repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]') # Convert to lowercase - docker build -t ghcr.io/$repo_name_lower/gh-runner-self:latest -f .github/runner/docker/gh-runner-self.dockerfile . - - - name: Push Docker image to GHCR - run: | - repo_name=${{ github.repository }} # Get repository name - repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]') # Convert to lowercase - docker push ghcr.io/$repo_name_lower/gh-runner-self:latest diff --git a/.github/workflows/delete-json-branch.yml b/.github/workflows/delete-json-branch.yml deleted file mode 100644 index dfd097b01..000000000 --- a/.github/workflows/delete-json-branch.yml +++ /dev/null @@ -1,29 +0,0 @@ - -name: Delete JSON date PR Branch - -on: - pull_request: - types: [closed] - branches: - - main - -jobs: - delete_branch: - if: github.repository == 'community-scripts/ProxmoxVE' - runs-on: ubuntu-latest - steps: - - name: Checkout the code - uses: actions/checkout@v3 - - - name: Delete PR Update Branch - if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'pr-update-json-') - run: | - PR_BRANCH="${{ github.event.pull_request.head.ref }}" - echo "Deleting branch $PR_BRANCH..." - - # Avoid deleting the default branch (e.g., main) - if [[ "$PR_BRANCH" != "main" ]]; then - git push origin --delete "$PR_BRANCH" - else - echo "Skipping deletion of the main branch" - fi