diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/repo_state.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/repo_state.rs b/src/lib/repo_state.rs index f061158..aa60f54 100644 --- a/src/lib/repo_state.rs +++ b/src/lib/repo_state.rs | |||
| @@ -30,6 +30,24 @@ impl RepoState { | |||
| 30 | } | 30 | } |
| 31 | } | 31 | } |
| 32 | } | 32 | } |
| 33 | // Include a HEAD if one isn't listed to prevent errors when users git config | ||
| 34 | // default branch isn't in the state event | ||
| 35 | if !state.contains_key("HEAD") { | ||
| 36 | if state.contains_key("refs/heads/master") { | ||
| 37 | state.insert("HEAD".to_string(), "ref: refs/heads/master".to_string()); | ||
| 38 | } else if state.contains_key("refs/heads/main") { | ||
| 39 | state.insert("HEAD".to_string(), "ref: refs/heads/main".to_string()); | ||
| 40 | } else if let Some(tag) = event | ||
| 41 | .tags | ||
| 42 | .iter() | ||
| 43 | .find(|t| t.len() > 1 && t.as_slice()[0].starts_with("refs/heads/")) | ||
| 44 | { | ||
| 45 | state.insert( | ||
| 46 | "HEAD".to_string(), | ||
| 47 | format!("ref: {}", tag.clone().to_vec()[0]), | ||
| 48 | ); | ||
| 49 | } | ||
| 50 | } | ||
| 33 | Ok(RepoState { | 51 | Ok(RepoState { |
| 34 | identifier: event | 52 | identifier: event |
| 35 | .tags | 53 | .tags |