This document will serve for collaboration to identify the operating principles of a centralized PowerCLI Community Repository on GitHub.
The central PowerCLI repo will be located at: https://github.com/vmware/PowerCLI-Example-Scripts
The repository has been provided to allow the community to share resources that leverage VMware’s PowerCLI. This can include:
This section will provide guidance on information which should be included with each submitted PowerCLI resource. Information listed in the Suggested Information will not be required for commit of a pull request to the repo, but will certainly increase ease of use for users of the resource.
To comply with VMware's Client License Agreement (CLA), each commit in a Pull Request requires a sign-off acknowledging the Developer Certificate of Origin (DCO) https://cla.vmware.com/dco before your changes are merged. Your commit should be in the following format:
The body of your commit message
Signed-off-by: John Doe <john.doe@email.org>
The text can either be manually added to your commit body, or you can add either -s
or --signoff
to your usual git commit commands.
The e-mail address used to sign must match the public e-mail address of the Git author.
git commit --signoff --message 'This is my commit message'
If you have authored a commit that is missing the signed-off-by line, you can amend your commits and push them to GitHub with the following:
git commit --amend --signoff
If you've pushed your changes to GitHub already, you'll need to force push your branch after this with:
git push -f
The following information must be included with each submitted scripting resource. Please include the information in the appropriate location based upon the submitted scripting resource.
Script: Top few lines
Module: Module manifest
<#
Script name: script_name.ps1
Created on: 07/07/2016
Author: Author Name, @TwitterHandle
Description: The purpose of the script is to …
Dependencies: None known
#>
The following information should be included when possible. Inclusion of information provides valuable information to consumers of the resource.
<#
Script name: script_name.ps1
Created on: 07/07/2016
Author: Author Name, @TwitterHandle
Description: The purpose of the script is to …
Dependencies: None known
===Tested Against Environment====
vSphere Version: 6.0
PowerCLI Version: PowerCLI 6.3 R1
PowerShell Version: 5.0
OS Version: Windows 10
Keyword: VM
#>
This section describes guidelines put in place to maintain a standard of quality while also promoting broader contribution.
Ownership of any and all submitted resources are maintained by the submitter. This ownership also includes maintenance of any and all submitted resources.
Any bugs or other issues should be filed within GitHub by way of the repository’s Issue Tracker.
Any community member can resolve issues within the repository, however only the owner or a board member can approve the update. Once approved, assuming the resolution involves a pull request, only a board member will be able to merge and close the request.
Join in on the discussion within the VMware Code Slack team's PowerCLI channel: https://code.vmware.com/slack/
It is highly recommended to add any and all submitted resources to the VMware Sample Exchange: https://developercenter.vmware.com/samples
Sample Exchange can be allowed to access your GitHub resources, by way of a linking process, where they can be indexed and searched by the community. There are VMware social media accounts which will advertise resources posted to the site and there's no additional accounts needed, as the VMware Sample Exchange uses MyVMware credentials.
The VMware Technology Preview License Agreement: https://github.com/vmware/PowerCLI-Example-Scripts/blob/master/LICENSE.md
Board members are volunteers from the PowerCLI community and VMware staff members, board members are not held responsible for any issues which may occur from running of scripts inside this repository.
Members:
Items added to the repository, including items from the Board members, require a review and approval from at least one board member before being added to the repository. The approving member/s will have verified for a lack of malicious code. Once an “Approved for Merge” comment has been added from a board member, the pull can then be committed to the repository.