Training Provisioning Process

Overview


The following outlines the procedures for provisioning new /wiki/spaces/~jcrocker/pages/2064444 users with a training course curriculum, and obtaining and executing the scripts necessary to do so.



Table of Contents

Obtaining the Scripts


Several bash scripts have been created to facilitate provisioning users. Pull down the Development Operations repository - within it you will find the following:


Repository Structure
  • JIRA
    • executables
      • jira-cli-3.9.0
      • ...
    • scripts
      • include
        • jira_constants.sh
        • jira_credentials.sh
      • assign_training.sh
      • add_course.sh
      • ..

Executables

Contains versions of the open-source JIRA command line client (to be referenced by the utilities in the scripts directory.

Scripts

The scripts directory contains both the utilities necessary to provision new users as well as helpers in the include directory to facilitate these files. They will be discussed in detail in the Executing the Scripts section.

Include

jira_constants.sh

Contains any constants and helper functions for general use by the utilities in the top-level scripts directory. The active executable version is also defined here.

jira_credentials.sh

Contains the JIRA server URL, the username and the password to use for authentication:

#!/bin/sh

SERVER=https://solutechnology.atlassian.net
USER=[enter username]
PASSWORD="[enter password]"

Update jira_credentials.sh with your own username and password, then add it to your .gitignore so you don't accidentally push your username and password to the shared repository.

Do not include the square brackets. The password needs to be enclosed by quotation marks.

Your username is your first initial and last name. Do not include the "@solutechnology.com"

Executing the Scripts


Any of the scripts in the scripts directory can be executed from the command line using standard syntax.

./[name-of-script] [argument-1] [argument-2] [...]

add_course.sh

Adds a new course to the backlog of available training courses.

Syntax

./add_course.sh "[course-name]" "[short-name]" "[category-list]" "[difficulty]" "[course-tracks]" "[course-url]" [sequence-id]

Example Usage

./add_course.sh "Explore and Master Chrome DevTools" "Chrome-DevTools" "Tools Browsers" "Intermediate" "Developer, Tester" "http://discover-devtools.codeschool.com/" 33

assign_training.sh

Assigns the default curriculum for the given course track to the named employee.

The target employee's account must be created prior to executing the assign_training.sh script.

Syntax

./assign_training.sh "[employee-name]" "[role-code]" [-s]

Example Usage

The following command will assign front-end developer training courses, including stretch courses, to Jake Peralta.

./assign_training.sh "Jake Peralta" "FE-DEV" -s

The `stretch` parameter takes a `-s` input flag that must be specified at the end of the command. When a role is given the stretch flag, the additional training will be applied if there is a stretch backlog associated with the role.

Role Codes

Technical Roles
RoleRole CodeStretch?
Front-End DeveloperFE-DEVyes
Back-End DeveloperBE-DEVyes
Python DeveloperPYTHON-DEVno
Co-opCO-OPyes
Test EngineerTESTyes
Test Automation EngineerTAno
Non-Technical Roles
RoleRole CodeStretch?
Scrum MasterSMno
Business AnalystBAno

assign_course.sh

Adds the course(s) associated to the given course ID to the curriculum from the named employee.

Syntax

./assign_course.sh "[employee-name]" "[course-backlog-id-list]" 

Example Usage

./assign_course.sh "Mark Chadbourne" "ONB-921 ONB-1128"

Any script that takes an employee name as an argument assumes the username associated to their account take the format of [first-initial][last-name] (i.e. Mark Chadbourne's username is mchadbourne)

add_agile_project.sh

Create a project with the given name/Key and assign a user to be the project lead.

Syntax

./add_agile_project.sh "[project-key]" "[project-name]" "[description]" "[lead]"

Example Usage

./add_agile_project.sh "TES" "Test Project" "This is a test project" "mchadbourne"

delete_project.sh

Delete a project with the given key.

Syntax

./delete_project.sh "[project-key]"

Example Usage

./delete_project.sh "TES"

add_user.sh

Create a new user with a temporary password.

Syntax

./add_user.sh "[user-full-name]"

Example Usage

./add_user.sh "Mark Chadbourne"