diff options
Diffstat (limited to 'docs/repo-hooks.md')
| -rw-r--r-- | docs/repo-hooks.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/repo-hooks.md b/docs/repo-hooks.md index cbb1aac7..a56f261c 100644 --- a/docs/repo-hooks.md +++ b/docs/repo-hooks.md | |||
| @@ -133,3 +133,43 @@ def main(project_list, worktree_list=None, **kwargs): | |||
| 133 | kwargs: Leave this here for forward-compatibility. | 133 | kwargs: Leave this here for forward-compatibility. |
| 134 | """ | 134 | """ |
| 135 | ``` | 135 | ``` |
| 136 | |||
| 137 | ### post-sync | ||
| 138 | |||
| 139 | This hook runs when `repo sync` completes without errors. | ||
| 140 | |||
| 141 | Note: This includes cases where no actual checkout may occur. The hook will still run. | ||
| 142 | For example: | ||
| 143 | - `repo sync -n` performs network fetches only and skips the checkout phase. | ||
| 144 | - `repo sync <project>` only updates the specified project(s). | ||
| 145 | - Partial failures may still result in a successful exit. | ||
| 146 | |||
| 147 | This hook is useful for post-processing tasks such as setting up git hooks, | ||
| 148 | bootstrapping configuration files, or running project initialization logic. | ||
| 149 | |||
| 150 | The hook is defined using the existing `<repo-hooks>` manifest block and is | ||
| 151 | optional. If the hook script fails or is missing, `repo sync` will still | ||
| 152 | complete successfully, and the error will be printed as a warning. | ||
| 153 | |||
| 154 | Example: | ||
| 155 | |||
| 156 | ```xml | ||
| 157 | <project name="myorg/dev-tools" path="tools" revision="main" /> | ||
| 158 | <repo-hooks in-project="myorg/dev-tools" enabled-list="post-sync"> | ||
| 159 | <hook name="post-sync" /> | ||
| 160 | </repo-hooks> | ||
| 161 | ``` | ||
| 162 | |||
| 163 | The `post-sync.py` file should be defined like: | ||
| 164 | |||
| 165 | ```py | ||
| 166 | def main(repo_topdir=None, **kwargs): | ||
| 167 | """Main function invoked directly by repo. | ||
| 168 | |||
| 169 | We must use the name "main" as that is what repo requires. | ||
| 170 | |||
| 171 | Args: | ||
| 172 | repo_topdir: The absolute path to the top-level directory of the repo workspace. | ||
| 173 | kwargs: Leave this here for forward-compatibility. | ||
| 174 | """ | ||
| 175 | ``` | ||
