├── .github
├── FUNDING.yml
└── workflows
│ └── main.yml
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
└── git_star_boost.ps1
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: luizbizzio
2 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Git Star Boost 🚀⭐
2 |
3 | on:
4 | push:
5 | branches:
6 | - main # Roda no push para a branch 'main'
7 | schedule:
8 | - cron: '0 0 * * *' # Roda todos os dias à meia-noite (formato cron)
9 |
10 | jobs:
11 | boost:
12 | runs-on: windows-latest # Usando o runner Windows
13 |
14 | steps:
15 | # Passo 1: Checkout do repositório
16 | - name: Checkout repository
17 | uses: actions/checkout@v3
18 |
19 | # Passo 2: Executar o script PowerShell
20 | - name: Run Git Star Boost Script
21 | run: |
22 | # Define o caminho onde os repositórios Git estão localizados
23 | $reposPath = $env:GITHUB_WORKSPACE # Usa o diretório onde o repositório foi clonado
24 |
25 | # Lista de repositórios a serem ignorados
26 | $blacklist = @("repo1", "repo2", "repo3", "repo4") # Adicione os repositórios que você quer ignorar
27 |
28 | # Obtém todos os repositórios no diretório especificado
29 | $repos = Get-ChildItem -Path $reposPath -Directory | Where-Object { Test-Path (Join-Path $_.FullName ".git") }
30 |
31 | # Verifica se o GPG (para assinar commits) está disponível no sistema
32 | $gpgAvailable = (Get-Command gpg -ErrorAction SilentlyContinue) -ne $null
33 | $gpgConfigured = $false
34 |
35 | # Se o GPG estiver disponível, verifica se está configurado para assinar commits no Git
36 | if ($gpgAvailable) {
37 | $gpgConfigured = git config --global user.signingkey
38 | }
39 |
40 | # Itera sobre cada repositório encontrado
41 | foreach ($repo in $repos) {
42 | $repoPath = $repo.FullName
43 |
44 | # Pula repositórios que estão na lista negra
45 | if ($blacklist -contains $repo.Name) {
46 | Write-Host "Skipping repository $repo.Name"
47 | continue # Pula para o próximo repositório
48 | }
49 |
50 | # Verifica se o diretório é um repositório Git válido
51 | $gitFolder = Join-Path $repoPath ".git"
52 | if (Test-Path $gitFolder) {
53 | Write-Host "Git repository found: $repoPath"
54 |
55 | Set-Location -Path $repoPath # Muda para o diretório do repositório
56 |
57 | # Atualiza o repositório com as últimas mudanças
58 | git pull
59 | git status
60 | git stash -u
61 | git reset --hard
62 | git clean -fd
63 |
64 | # Busca commits com a mensagem '#UPDATE' e remove-os
65 | $commitHashes = git log --oneline | Select-String "#UPDATE" | ForEach-Object { $_.Line.Split(' ')[0] }
66 | foreach ($commitHash in $commitHashes) {
67 | Write-Host "Removing commit $commitHash with the '#UPDATE' message"
68 | git rebase --onto $commitHash^ $commitHash # Remove o commit do histórico
69 | }
70 |
71 | # Cria um arquivo temporário para fazer um commit sem alterar o conteúdo do repositório
72 | $fileName = Join-Path $repoPath "temp_file"
73 | New-Item -Path $fileName -ItemType File -Force # Cria o arquivo temporário
74 |
75 | git add $fileName
76 |
77 | # Cria o commit (com ou sem assinatura GPG)
78 | if ($gpgConfigured) {
79 | git commit --gpg-sign -m "#TEMP"
80 | } else {
81 | git commit -m "#TEMP"
82 | }
83 |
84 | # Remove o arquivo temporário após o commit
85 | Remove-Item $fileName
86 |
87 | git rm $fileName
88 |
89 | # Cria o commit final
90 | if ($gpgConfigured) {
91 | git commit --gpg-sign -m "#UPDATE"
92 | } else {
93 | git commit -m "#UPDATE"
94 | }
95 |
96 | # Força o push para o repositório remoto (sobrescreve a história)
97 | git push --force
98 | git stash pop
99 | git status
100 |
101 | } else {
102 | Write-Host ".git not found: $repoPath"
103 | }
104 | }
105 |
106 | Write-Host "Done!"
107 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | contact@luizbizzio.com.
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder](https://github.com/mozilla/diversity).
123 |
124 | [homepage]: https://www.contributor-covenant.org
125 |
126 | For answers to common questions about this code of conduct, see the FAQ at
127 | https://www.contributor-covenant.org/faq. Translations are available at
128 | https://www.contributor-covenant.org/translations.
129 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024-2025 Luiz Bizzio
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Git Auto Commit 🚀📤
2 |
3 | **Git Auto Commit** keeps your Git repository **always fresh** and **relevant** on GitHub by matically updating it with a **new commit** each time it runs. The best part? It **keeps your profile active** without cluttering your commit history. Perfect for boosting visibility and engagement!
4 |
5 | ## Always Recently Updated ✅
6 | Did you know? This repository will always receive a **commit/update every 3 hours**, ensuring it stays fresh and relevant on GitHub. This is automated to keep your GitHub profile **active** and engaging!
7 |
8 | ## Purpose 🎯
9 |
10 | **Git Star Boost** is designed to:
11 |
12 | - 🔄 **Keep your repository up-to-date** with regular commits, ensuring it’s always fresh and relevant.
13 | - ❌ **Avoid commit clutter** by deleting the last commit made by the script, then creating a new one, so no multiple commits pile up.
14 | - 🌟 **Enhance your GitHub profile** by showing a recent commit, keeping your activity visible and boosting engagement.
15 |
16 | It’s perfect for **boosting engagement** and **visibility** on GitHub without creating unnecessary commit history.
17 |
18 | ---
19 |
20 | ## How It Works 🔧
21 |
22 | 1. **Regular Updates** 🚀
23 | The script matically fetches the latest changes from the remote repository using `git pull`, ensuring your local repository is synchronized with the remote and up-to-date. This step ensures that any new changes in the remote repository are reflected locally.
24 |
25 | 2. **No Commit Clutter** ❌
26 | Upon execution, the script identifies the last commit made by the script itself and uses `git rebase` to remove that commit from the repository's history. Afterward, a new commit is created with a fresh message (`#UPDATE`), maintaining the repository's up-to-date status without accumulating multiple commits. The commit history is kept clean and concise, showing only the most recent change.
27 |
28 | 3. **Increased Visibility** 📅
29 | Each time the script runs, a new commit is created with a consistent message (e.g., `#UPDATE`). This new commit appears in the commit history on GitHub and is reflected in your GitHub profile, ensuring your profile remains active and showing regular activity. This makes your profile appear as if you’re continuously contributing, even if you're not actively making changes to the project.
30 |
31 | 4. **Enhanced Engagement** 🔥
32 | The frequent commits trigger activity on your GitHub profile, creating an impression of ongoing work. GitHub’s activity feed displays these regular commits, which increases visibility on your repositories. As a result, more users may notice and engage with your projects, contributing to higher interaction and potential collaboration.
33 |
34 | ## Features ⚡
35 |
36 | - 🔄 **Keeps repositories up-to-date** by pulling the latest changes from remote.
37 | - 💥 **No cluttered commit history**: Only the most recent commit is shown.
38 | - 👀 **Boosts profile activity** with a fresh commit each time, increasing visibility.
39 | - 🚀 **Improves engagement** by showing continuous activity without managing a long commit history.
40 |
41 | ## Requirements ⚙️
42 |
43 | - **PowerShell**: The script is written for PowerShell.
44 | - **Git**: Git must be installed and available in your system’s PATH.
45 | - **Personal Acess Token**: You can find it in Developer Options on Github Settings
46 | - **GPG (optional)**: If you want to sign commits, GPG must be installed and configured.
47 |
48 | ## Usage 🏃♂️
49 |
50 | 1. Create a new **PowerShell script** (`.ps1` file) and paste the following code inside it. 🧑🏻💻
51 | 2. Update the `$reposPath` variable to point to your local Git repositories. 📂
52 | 4. Define your GitHub username and your Personal Access Token. 🪪
53 | 5. (Optional) Add repositories to the `$blacklist` to skip certain repositories. 🚫
54 | 6. Run the script regularly to keep your repositories up-to-date and your profile active. ⏰
55 |
56 | ```ps1
57 | # Infinite loop to run the script every hour
58 | while ($true) {
59 | # Define the path where all your Git repositories are located
60 | $reposPath = "C:\Github\" # Path to your local repositories
61 |
62 | # List of repositories to skip (blacklist)
63 | $blacklist = @("repo1", "repo2", "repo3", "repo4") # Names of repositories to ignore
64 |
65 | # Get all the directories (repositories) inside the specified path
66 | $repos = Get-ChildItem -Path $reposPath -Directory # Retrieves all directories in the given path
67 |
68 | # Check if GPG (used for signing commits) is available on your system
69 | $gpgAvailable = (Get-Command gpg -ErrorAction SilentlyContinue) -ne $null # Checks if GPG is installed
70 | $gpgConfigured = $false # Default value for GPG configuration
71 |
72 | # Set GitHub username and token for authentication
73 | $gitHubUsername = "github_username" # GitHub username
74 | $gitHubToken = "github_personal_token" # GitHub token for authentication
75 |
76 | # Iterate over each repository found
77 | foreach ($repo in $repos) {
78 | # Get the full path of the current repository
79 | $repoPath = $repo.FullName
80 |
81 | # Skip repositories that are in the blacklist
82 | if ($blacklist -contains $repo.Name) {
83 | continue # Skip to the next repository in the list
84 | }
85 |
86 | # Check if the directory is a valid Git repository (it should contain a .git folder)
87 | $gitFolder = Join-Path $repoPath ".git" # Build the path to the .git folder
88 | if (Test-Path $gitFolder) { # If the .git folder exists, it's a Git repository
89 |
90 | # Change to the repository directory
91 | Set-Location -Path $repoPath # Navigate to the repository directory
92 |
93 | # Update the repository by pulling the latest changes
94 | git remote set-url origin "https://${gitHubUsername}:${gitHubToken}@github.com/${gitHubUsername}/$($repo.Name).git" # Set the remote URL with the GitHub token
95 | git pull # Fetch the latest updates from the remote repository
96 | git status # Show the current status of the repository (modified files, etc.)
97 | git stash -u # Save untracked files to prevent losing them during the reset
98 |
99 | # Discard any uncommitted changes by resetting the repository to the last commit
100 | git reset --hard # Reset the repository to the last commit, discarding local changes
101 | git clean -fd # Remove any untracked files and directories
102 |
103 | # Search for commits with the message '#UPDATE' and remove them from history
104 | $commitHashes = git log --oneline | Select-String "#UPDATE" | ForEach-Object { $_.Line.Split(' ')[0] } # Get all commit hashes with the message '#UPDATE'
105 |
106 | # For each commit with the '#UPDATE' message, remove it from the repository's history
107 | foreach ($commitHash in $commitHashes) {
108 | git rebase --onto $commitHash^ $commitHash # Rebase to remove the commit from the history
109 | }
110 |
111 | # Create a temporary file to trigger a commit without changing the content of the repository
112 | $fileName = Join-Path $repoPath "temp_file" # Define the temporary file name
113 | New-Item -Path $fileName -ItemType File -Force # Create the temporary file in the repository
114 |
115 | # Stage the temporary file for commit
116 | git add $fileName # Add the temporary file to the staging area
117 |
118 | # Create a commit with the temporary file (optional: sign with GPG if configured)
119 | if ($gpgConfigured) {
120 | git commit --gpg-sign --no-edit -m "#TEMP" # Commit with GPG signing
121 | } else {
122 | git commit --no-edit -m "#TEMP" # Commit without GPG signing
123 | }
124 |
125 | # Remove the temporary file after committing
126 | Remove-Item $fileName # Delete the temporary file from the local repository
127 |
128 | # Remove the file from Git tracking
129 | git rm $fileName # Remove the file from the staging area
130 |
131 | # Create another commit with the message '#UPDATE' (again, optional: sign with GPG)
132 | if ($gpgConfigured) {
133 | git commit --gpg-sign --no-edit -m "#UPDATE" # Commit with GPG signing
134 | } else {
135 | git commit --no-edit -m "#UPDATE" # Commit without GPG signing
136 | }
137 |
138 | # Force push the changes to the remote repository (overwrites history)
139 | git push --force # Push the changes to the remote repository, overwriting history
140 |
141 | # Restore the previously stashed changes (if any)
142 | git stash pop # Apply the saved untracked changes back to the working directory
143 | git status # Show the final status of the repository
144 |
145 | } else {
146 | Write-Host ".git not found: $repoPath" # Print a message if the directory isn't a Git repository
147 | }
148 | }
149 |
150 | # Wait for 10 hours (36000 seconds) before repeating
151 | Start-Sleep -Seconds 36000
152 | }
153 |
154 | # Final message after processing all repositories
155 | Write-Host "Done!" # Indicate that the script has finished running
156 | ```
157 |
158 | ## Notes 📝
159 |
160 | - **Windows Task scheduler:** You can configure Windows Task Scheduler to run the script automatically at logon. The script will then repeat every 10 hours, keeping your repositories updated without manual intervention. 🕐
161 |
162 | - **Using the Blacklist**: You can use the `$blacklist` variable to **skip specific repositories** from being processed by the script. Just add the names of repositories you want to exclude in the array. This is useful if you have certain projects you don't want the script to touch. 🚫
163 |
164 | - **GPG Commit Verification:** The script matically detects if you have GPG set up for signing commits. You do not need to configure the script for verified commits — it will sign them if GPG is configured on your system. 🔑
165 |
166 | - **Repository Responsibility:** You are responsible for the use and content of your repositories. This script modifies commit history, so use it in accordance with your project's needs. ⚠️
167 |
168 | ---
169 |
170 | ## License 📄
171 |
172 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
173 |
--------------------------------------------------------------------------------
/git_star_boost.ps1:
--------------------------------------------------------------------------------
1 | # Infinite loop to run the script every hour
2 | while ($true) {
3 | # Define the path where all your Git repositories are located
4 | $reposPath = "C:\Github\" # Path to your local repositories
5 |
6 | # List of repositories to skip (blacklist)
7 | $blacklist = @("repo1", "repo2", "repo3", "repo4") # Names of repositories to ignore
8 |
9 | # Get all the directories (repositories) inside the specified path
10 | $repos = Get-ChildItem -Path $reposPath -Directory # Retrieves all directories in the given path
11 |
12 | # Check if GPG (used for signing commits) is available on your system
13 | $gpgAvailable = (Get-Command gpg -ErrorAction SilentlyContinue) -ne $null # Checks if GPG is installed
14 | $gpgConfigured = $false # Default value for GPG configuration
15 |
16 | # Set GitHub username and token for authentication
17 | $gitHubUsername = "github_username" # GitHub username
18 | $gitHubToken = "github_personal_token" # GitHub token for authentication
19 |
20 | # Iterate over each repository found
21 | foreach ($repo in $repos) {
22 | # Get the full path of the current repository
23 | $repoPath = $repo.FullName
24 |
25 | # Skip repositories that are in the blacklist
26 | if ($blacklist -contains $repo.Name) {
27 | continue # Skip to the next repository in the list
28 | }
29 |
30 | # Check if the directory is a valid Git repository (it should contain a .git folder)
31 | $gitFolder = Join-Path $repoPath ".git" # Build the path to the .git folder
32 | if (Test-Path $gitFolder) { # If the .git folder exists, it's a Git repository
33 |
34 | # Change to the repository directory
35 | Set-Location -Path $repoPath # Navigate to the repository directory
36 |
37 | # Update the repository by pulling the latest changes
38 | git remote set-url origin "https://${gitHubUsername}:${gitHubToken}@github.com/${gitHubUsername}/$($repo.Name).git" # Set the remote URL with the GitHub token
39 | git pull # Fetch the latest updates from the remote repository
40 | git status # Show the current status of the repository (modified files, etc.)
41 | git stash -u # Save untracked files to prevent losing them during the reset
42 |
43 | # Discard any uncommitted changes by resetting the repository to the last commit
44 | git reset --hard # Reset the repository to the last commit, discarding local changes
45 | git clean -fd # Remove any untracked files and directories
46 |
47 | # Search for commits with the message '#UPDATE' and remove them from history
48 | $commitHashes = git log --oneline | Select-String "#UPDATE" | ForEach-Object { $_.Line.Split(' ')[0] } # Get all commit hashes with the message '#UPDATE'
49 |
50 | # For each commit with the '#UPDATE' message, remove it from the repository's history
51 | foreach ($commitHash in $commitHashes) {
52 | git rebase --onto $commitHash^ $commitHash # Rebase to remove the commit from the history
53 | }
54 |
55 | # Create a temporary file to trigger a commit without changing the content of the repository
56 | $fileName = Join-Path $repoPath "temp_file" # Define the temporary file name
57 | New-Item -Path $fileName -ItemType File -Force # Create the temporary file in the repository
58 |
59 | # Stage the temporary file for commit
60 | git add $fileName # Add the temporary file to the staging area
61 |
62 | # Create a commit with the temporary file (optional: sign with GPG if configured)
63 | if ($gpgConfigured) {
64 | git commit --gpg-sign --no-edit -m "#TEMP" # Commit with GPG signing
65 | } else {
66 | git commit --no-edit -m "#TEMP" # Commit without GPG signing
67 | }
68 |
69 | # Remove the temporary file after committing
70 | Remove-Item $fileName # Delete the temporary file from the local repository
71 |
72 | # Remove the file from Git tracking
73 | git rm $fileName # Remove the file from the staging area
74 |
75 | # Create another commit with the message '#UPDATE' (again, optional: sign with GPG)
76 | if ($gpgConfigured) {
77 | git commit --gpg-sign --no-edit -m "#UPDATE" # Commit with GPG signing
78 | } else {
79 | git commit --no-edit -m "#UPDATE" # Commit without GPG signing
80 | }
81 |
82 | # Force push the changes to the remote repository (overwrites history)
83 | git push --force # Push the changes to the remote repository, overwriting history
84 |
85 | # Restore the previously stashed changes (if any)
86 | git stash pop # Apply the saved untracked changes back to the working directory
87 | git status # Show the final status of the repository
88 |
89 | } else {
90 | Write-Host ".git not found: $repoPath" # Print a message if the directory isn't a Git repository
91 | }
92 | }
93 |
94 | # Wait for 10 hours (36000 seconds) before repeating
95 | Start-Sleep -Seconds 36000
96 | }
97 |
98 | # Final message after processing all repositories
99 | Write-Host "Done!" # Indicate that the script has finished running
100 |
--------------------------------------------------------------------------------